Проверка нажатия управляющих клавиш - Assembler
Формулировка задачи:
Здравствуйте. Помогите, пожалуйста, начинающему. Следующий код должен выводить сообщение в случае нажатия клавиши, а именно: Правого шифта. Не работает, а точнее сообщение выводится в любом случае(( Заранее спасибо!
use16 org 100h jmp start ;--------------------- shiftt db 'RIGHT SHIFT PRESSED$' ;--------------------- start: mov ax,03h int 10h prog: xor al,al mov ah,02h int 16h test al,00000001b jz me me: mov ah,09h mov dx,shiftt int 21h mov ah,08h int 21h mov ax,4c00h int 21h
Решение задачи: «Проверка нажатия управляющих клавиш»
textual
Листинг программы
prog: mov ah,02h int 16h test al,00000001b jz prog mov ah,09h mov dx,shiftt int 21h mov ah,08h int 21h mov ax,4c00h int 21h
Объяснение кода листинга программы
В данном коде выполняется следующая последовательность действий:
- Переменная
ah
устанавливается в значение 02h. Это необходимо для того, чтобы указать сервисной процедуре int 16h, что мы хотим получить информацию о нажатии клавиш. - Выполняется команда int 16h. Эта команда вызывает сервисную процедуру, которая проверяет, были ли нажаты клавиши. Если да, то она возвращает в регистр al код нажатой клавиши.
- Переменная
al
проверяется на наличие единицы (00000001b). Если единица есть, то это означает, что была нажата клавиша. - Если единица есть, то выполняется переход к метке
prog
. Это позволяет повторять цикл проверки нажатия клавиш до тех пор, пока клавиша не будет отпущена. - Переменная
ah
устанавливается в значение 09h. Это необходимо для того, чтобы вывести на экран сообщение. - Переменная
dx
устанавливается в значение shiftt. Это значение используется в качестве аргумента для функции вывода сообщения int 21h. - Выполняется команда int 21h. Эта команда выводит на экран сообщение.
- Переменная
ah
устанавливается в значение 08h. Это необходимо для того, чтобы прочитать символ из стандартного ввода. - Выполняется команда int 21h. Эта команда считывает символ из стандартного ввода и сохраняет его в регистре al.
- Переменная
ax
устанавливается в значение 4c00h. Это значение используется в качестве аргумента для функции окончания работы программы int 21h. - Выполняется команда int 21h. Эта команда завершает работу программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д