Проверка нажатия клавиши - Assembler
Формулировка задачи:
Процедура проверки нажатия клавиши. Как сделать так, чтобы вместо проверки на нажатие CTRL+C была проверка на нажатие LEFT SHIFT ?
key proc near mov ah,1 ;если нет нажатия, то переходим далее int 16h jz key4 mov ah,0 ;иначе - считываем нажатую клавишу int 16h cmp ah,2eh ;если нажали не C, то переходим далее jne key2 mov ah,2 ;если нажали не CTRL, то переходим далее int 16h and al,00000100b jz key2 jmp exit ;иначе - переходим к выходу из программы key2: cmp ah,1 ;если нажали ESC, то jne key3 mov stop,1 ;устанавливаем признак останова строки jmp key4 key3: cmp al,' ' ;если нажали пробел, то jne key mov stop,0 ;сбрасываем признак останова строки key4: cmp stop,0 ;если признак останова не сброшен, то jne key ;переходим к началу подпрограммы ret key endp
Решение задачи: «Проверка нажатия клавиши»
textual
Листинг программы
key proc near mov ah, 2 int 16h test al, 2 jnz exit ; нажата левая шифт mov ah, 1 int 16h jz key ; переход на начало подпрограммы если ничего не нажато ;че-то нажато помимо шифтов и котролов mov ah, 0 int 16h ;в al ASCII код нажатой клавиши, в ah скан-код ; ...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д