Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .model tiny
- .code
- org 100h
- start:
- wait_enter:
- in al, 60h
- ; КЛАВИША ОТПУСКАНИ ENTER (вроде по-другому не запустить)
- cmp al, 156
- jne wait_enter
- mov bl, 156
- read_port:
- in al, 60h
- ;ESC
- cmp al, 01
- je go_exit
- cmp al, bl
- je read_port
- mov bl, al
- ; Наибольший код нажатия (http://devotes.narod.ru/Books/3/app1_05.htm)
- cmp al, 76h
- ja read_port
- call print_digits
- jmp read_port
- go_exit:
- ret
- proc print_digits
- ; Делимое в AL
- ; Запоминаем AX
- mov bp, ax
- ; 100
- mov cl, 100
- div cl
- ; целая часть
- mov dl, al
- ; остаток
- mov dh, ah
- mov ah, 02h
- add dl, '0'
- int 21h
- ; 10
- mov al, dh
- xor ah, ah
- mov cl, 10
- div cl
- ; 1
- ; остаток
- mov dh, ah
- mov dl, al
- mov ah, 02h
- add dl, '0'
- int 21h
- mov dl, dh
- add dl, '0'
- int 21h
- ;Перевод строки
- mov dl, 10
- int 21h
- ;Восстановление AX
- mov ax, bp
- ret
- endp
- end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement