Advertisement
pigg

interrupt input key

Nov 21st, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .model small
  2. .data
  3. .stack 100h
  4. .code
  5. main proc
  6.     mov ax,@data
  7.     mov ds,ax
  8. L1:
  9.     mov dl,2Eh ; output .
  10.     mov ah,02h
  11.     int 21h
  12.     mov cx,32
  13. L2:
  14.     push cx
  15.     mov cx,0ffffh
  16. L3:
  17.     call CheckKeyboard
  18.     loop L3
  19.     pop cx
  20.     loop L2
  21.     jmp L1
  22.  
  23.     mov ah,4ch
  24.     int 21h
  25. main endp
  26.  
  27. CheckKeyboard proc
  28.     push ax
  29.     mov ah,11h
  30.     int 16h
  31.     jz quit
  32.     mov ah,10h
  33.     int 16h
  34.     cmp al,1bh
  35.     je quit1
  36.     cmp al,0E0h
  37.     je w
  38.     jmp char
  39. w:
  40.     cmp ah,48h
  41.     je up
  42.     cmp ah,50h
  43.     je down
  44.     cmp ah,4Bh
  45.     je left
  46.     cmp ah,4Dh
  47.     je right
  48.  
  49. up:
  50.     mov dl,75h ; u
  51.     mov ah,02h
  52.     int 21h
  53.     jmp quit
  54. down:
  55.     mov dl,64h ; d
  56.     mov ah,02h
  57.     int 21h
  58.     jmp quit
  59. left:
  60.     mov dl,6Ch ; l
  61.     mov ah,02h
  62.     int 21h
  63.     jmp quit
  64. right:
  65.     mov dl,72h ; r
  66.     mov ah,02h
  67.     int 21h
  68.     jmp quit
  69. char:
  70.     mov dl,al
  71.     mov ah,02h
  72.     int 21h
  73.     jmp quit
  74. quit1:
  75.     mov ah,4ch
  76.     int 21h
  77. quit:
  78.     pop ax
  79.     ret
  80. CheckKeyboard endp
  81. end main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement