#ассемблер
Здраствуйте! Мне нужно при нажатии NumLock в консоли выводить "1". Но проблема в том, что когда я читаю символы с помощью int 16h: mov ah,10h int 16h Программа ждет нажатия клавиши, а когда я нажимаю Numlock, то прога продолжает ожидать нажатия клавиш... Как сделать так, чтобы при нажатии 1 выводилось 1, а при нажатии Numlock - 2? Спасибо!
Ответы
Ответ 1
Функция 10h с прерыванием int 16h проверяет наличие символа в буфере клавиатуры, но клавиши num lock, caps lock, scroll lock, ctrl, shift... не заносятся в буфер клавиатуры. Для того что бы определить нажат ли NumLock можно использовать функцию 12h и прерывание 16h, она вернёт в регистр AL состояние клавиатуры. Бит Название клавиши 0 левый Ctrl 1 Левый Alt 2 Правый ctrl 3 Правый alt 4 ScrollLock 5 NumLock 6 Caps Lock 7 SysReq
Комментариев нет:
Отправить комментарий