Проверка нажатия клавиши - 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 скан-код
;   ...

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы