Advertisement
Guest User

Untitled

a guest
Apr 10th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .model tiny
  2.  
  3.  
  4. .code
  5. org 100h
  6.  
  7.  
  8. start:
  9.  
  10. wait_enter:
  11.     in al, 60h
  12.     ; КЛАВИША ОТПУСКАНИ ENTER (вроде по-другому не запустить)
  13.     cmp al, 156
  14.     jne wait_enter
  15.  
  16. mov bl, 156
  17. read_port:
  18.     in al, 60h
  19. ;ESC
  20.     cmp al, 01
  21.     je go_exit
  22.  
  23.     cmp al, bl
  24.     je read_port
  25.     mov bl, al
  26.     ; Наибольший код нажатия (http://devotes.narod.ru/Books/3/app1_05.htm)
  27.     cmp al, 76h
  28.     ja read_port
  29.  
  30.     call print_digits
  31.     jmp read_port
  32.  
  33.  
  34.  
  35. go_exit:
  36.     ret
  37.  
  38.  
  39. proc print_digits
  40. ; Делимое в AL
  41. ; Запоминаем AX
  42.     mov bp, ax
  43. ; 100
  44.     mov cl, 100
  45.     div cl
  46.     ; целая часть
  47.     mov dl, al
  48.     ; остаток
  49.     mov dh, ah
  50.     mov ah, 02h
  51.     add dl, '0'
  52.     int 21h
  53. ; 10
  54.     mov al, dh
  55.     xor ah, ah
  56.     mov cl, 10
  57.     div cl
  58. ; 1
  59.     ; остаток
  60.     mov dh, ah
  61.     mov dl, al
  62.     mov ah, 02h
  63.     add dl, '0'
  64.     int 21h
  65.     mov dl, dh
  66.     add dl, '0'
  67.     int 21h
  68. ;Перевод строки
  69.     mov dl, 10
  70.     int 21h
  71. ;Восстановление AX
  72.     mov ax, bp
  73.     ret
  74. endp
  75.  
  76.  
  77. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement