|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.09.2011, 12:38 | #1 |
Пользователь
Регистрация: 16.10.2010
Сообщений: 11
|
Средства Поддержки Клавиатуры(Assembler)
Добрый день.Столкнулся с такой задачей: разработать программу,которая,используя функции прерывания INT 16h,позволит считать скан-код,ASCII-код и состояние клавиш сдвига.
С задачей считывания скан и ASCII кода справился таким образом Код:
Попытался сделать это таким образом,но у меня ничего не получилось: Код:
0 - левый CTRL нажат 1 - левый ALT нажат 2 - правый CTRL нажат 3 - правый ALT нажат 4 - scroll-lock нажат 5 - num-lock нажат 6 - caps-lock нажат 7 - system request нажат AL = 0 - правый Shift нажат 1 - левый Shift нажат 2 - CTRL нажат 3 - ALT отжат 4 - scroll-lock влючен 5 - num-lock включен 6 - caps-lock включен 7 - insert включен Отсюда вопрос: как получить правильное значение флага клавиатуры?Спасибо. |
17.09.2011, 12:43 | #2 |
Пользователь
Регистрация: 16.10.2010
Сообщений: 11
|
Догадываюсь,что не зря мне говорили,что флаги AH расположены в BIOS Data Area по адресу 40:18,а AL по адресу 40:17,только вот как считать оттуда какой флаг в данный момент туда занесен и определить,какая клавиша нажата я пока не могу разобраться.
|
17.09.2011, 13:41 | #3 |
Пользователь
Регистрация: 16.10.2010
Сообщений: 11
|
Подозреваю,что нужно использовать битовую маску для определение того,какой бит сейчас = 1,скажем 11111111 & 00000010 = 00000010 - т,е. левый альт нажат (AH),но только вот как маску применить к значению,хранящемуся по вот этому адресу 40:18?
|
17.09.2011, 21:45 | #4 |
Форумчанин
Регистрация: 31.05.2009
Сообщений: 786
|
Есть две команды для проверки определенных бит (Логического И): AND и TEST. Первая изменяет и результат и флаги, вторая - только флаги.
Код:
|
17.09.2011, 22:14 | #5 |
Пользователь
Регистрация: 16.10.2010
Сообщений: 11
|
Спасибо,разобрался!
|
24.09.2011, 10:38 | #6 |
Пользователь
Регистрация: 16.10.2010
Сообщений: 11
|
Снова нужна помощь.Пытаюсь отследить нажатие комбинации клавиш Shift+Alt+F7
Код:
|
24.09.2011, 11:38 | #7 |
Пользователь
Регистрация: 16.10.2010
Сообщений: 11
|
Нашел такой вот вариант проверки на Shift+F4
Код:
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ввод с клавиатуры и поиск/Assembler/TASM for Dos | Rifler | Помощь студентам | 8 | 03.09.2010 08:22 |
Assembler - ввод данных (имени и фамилии) с клавиатуры и вывод на экран | МартинИ | Помощь студентам | 1 | 25.05.2010 00:40 |
как ввести с клавиатуры двузначные и отрицательные числа - Assembler | Варвара | Помощь студентам | 5 | 20.12.2009 14:29 |
Разработать резедентную Assembler-программу ключ клавиатуры | gogi73 | Фриланс | 1 | 15.06.2009 15:51 |