При нажатии любой клавиши вывести на экран просьбу нажать эту клавишу еще раз - Assembler
Формулировка задачи:
Нужно написать программу, которая при нажатии любой клавиши на выводит на экран просьбу на*жать эту клавишу еще раз. При повторном нажатии просьба с экрана исчезает и программа закрывается. При этом программа должна быть резидентной. Как это сделать?
Решение задачи: «При нажатии любой клавиши вывести на экран просьбу нажать эту клавишу еще раз»
textual
Листинг программы
jmp work Old_i15 dw 0,0 Str_ db 0h,0h pushall proc near jmp pushwrk Save dw 0, 0 pushwrk: pop [Save] pop [Save +2] push ax push bx push cx push dx push ds push es push si push di push bp push [Save +2] push [Save] ret pushall endp popall proc near jmp popwrk Rest dw 0, 0 popwrk: pop [Rest] pop [Rest +2] pop bp pop di pop si pop es pop ds pop dx pop cx pop bx pop ax push [Rest +2] push [Rest] ret popall endp get proc near mov ah, al mov cl, 4 shr ah, cl and al, 0Fh add ah, 30h cmp ah, 3Ah jl prd_1 add ah, 7h prd_1: mov cs:[Str_], ah add al, 30h cmp al, 3Ah jl prd_2 add al, 7h prd_2: mov cs:[Str_ +1], al ret get endp write proc near mov ah, 0fh int 10h push cs pop es lea bp, cs:Str_ mov cx, 2 mov dx, 0000h mov bl, 70h mov ax, 1300h int 10h ret write endp New_i15: call pushall call get call write call popall iret work: push cs pop ds mov ax, 3515h int 21h mov [Old_i15], bx mov [Old_i15 +2], es lea dx, New_i15 mov ax, 2515h int 21h lea dx, work int 27h