Заменить стандартный обработчик клавиатуры(вывод скан кодов) - Assembler
Формулировка задачи:
Есть программа которая выводит скан код нажатия \ отпускания клавиши, но она использует прерывание 16h, преподу это не понравилось и он сказал что надо заменить своей процедурой обработки прерывания от клавиатуры. Нужно что бы программа делала все тоже, только не используя 16h.
Помогите, пожалуйста, разобраться с этим, так как сам в ассемблере разбираюсь слабо.
;TASM, EXE .model small .386 .data mess0 db 13,10,10,' Symbol: $' mess1 db 13,10,' ---------------' db 13,10,' Press..: $' mess2 db 13,10,' UnPress: $' .stack db 256 dup(?) .code start: mov ax,@data mov ds,ax lea dx,mess0 call message xor ax,ax int 16h cmp al,13 je exit int 29h xchg ah,al xor ah,ah push ax ax ax lea dx,mess1 call message pop ax call outHex lea dx,mess2 call message mov ax,'F0' int 29h shr ax,8 int 29h mov al,',' int 29h pop ax call outHex jmp start exit: mov ax,4c00h int 21h ;------------------------------------------------ message: mov ah,9 int 21h ret outHex: shl ax,8 xchg dx,ax mov cx,2 @1: shld ax,dx,4 rol dx,4 and al,0Fh cmp al,0Ah sbb al,69h das int 29h loop @1 ret end start
Решение задачи: «Заменить стандартный обработчик клавиатуры(вывод скан кодов)»
textual
Листинг программы
new01: and ax,7Fh
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д