Задание. Написать программу фиксирующую нажатие клавиши.
DOSSEG
.MODEL SMALL
.STACK 100h
.DATA
Msg0 DB 10,13,’Расширенный скан-код символа: ‘
ScanCod DB ‘00′
Msg1 DB 10,13,’ASCII-код символа: ‘
Cod DB ‘00′
Msg2 DB 10,13,’Символ: ‘
Key DB ‘0$’
.CODE
;
; Процедура преобразования числа (1 байтa) в символьном виде
; вход: al - число
; выход: bx - число в символьном виде
; портятся регистры: ax
NumInStr PROC
push ax
shr al,1 ; сдвиг (10111110=>00001011)
shr al,1
shr al,1
shr al,1
add al,48 ; al - цифра 0,1,2,3,4,5,6,7,8,9
cmp al,57
jle label1
add al,7 ; al - буква
label1: mov bl,al ; результат в bl
pop ax
and al,00001111b ; снять биты (10111110=>00001110)
add al,48 ; al - цифра 0,1,2,3,4,5,6,7,8,9
cmp al,57
jle label2
add al,7 ; al - буква
label2: mov bh,al ; результат в bh
ret
NumInStr ENDP
main: mov ax,@Data
mov ds,ax
mov ah,10h
int 16h
push ax
mov al,ah
call NumInStr
mov word ptr [ScanCod],bx
pop ax
push ax
call NumInStr
mov word ptr [Cod],bx
pop ax
push ax
mov byte ptr [Key],al
mov ah,9
mov dx,OFFSET Msg0
int 21h
pop ax
cmp al,1Bh ; al<>ESC
jne main
mov ah,4Ch
int 21h
END main
Если вы захотите срочно снять квартиру в Харькове без посредников то вы обратились именно по адресу: заходите и вы найдете нужную квартиру в нужном районе города Харькова.






