Este codigo te puede servir, yo tengo dos archivo, uno que se llama macros.inc que es este
.MODEL SMALL
.stack 64
_escribir MACRO cadena
lea dx, cadena
mov ah, 09h
int 21h
ENDM
_leer_tecla MACRO
mov ah, 10H
int 16h
ENDM
_salir MACRO
mov ah, 4ch
int 21h
ENDM
;----------------------------------------------------------------------
y luego otro archivo .asm que el codigo es el siguiente
;--------------------------------------------------------------------
INCLUDE macros.inc
.data
t_izquierda db 'tecla IZQUIERDA presionada ', 10, 13, 36
t_derecha db 'tecla DERECHA presionada ', 10, 13, 36
t_arriba db 'tecla ARRIBA presionada ', 10, 13, 36
t_ninguna db 'ninguna coincide ', 10, 13, 36
.code
main proc far
mov ax, @data
mov ds, ax
_leer_tecla
l_while:
compara:
cmp al, 0e0h ;compara si la tecla presionada es expandida
JE l_igual
JMP l_no_igual
l_igual:
cmp ah, 48h ; codigo de tecla para arriba
JE l_arriba
cmp ah, 4bh ; codigo de tecla para la izquierda
JE l_izquierda
cmp ah, 4dh ; codigo de tecla para la derecha
JE l_derecha
cmp ah, 50h ; codigo de tecla para abajo
JE _end_while
l_arriba:
_escribir t_arriba
JMP l_while
l_izquierda:
_escribir t_izquierda
JMP l_while
l_derecha:
_escribir t_derecha
JMP l_while
l_no_igual:
_leer_tecla
JMP l_while
_end_while:
_escribir t_ninguna
_salir
main endp
end main
;----------------------------------------------------------------
lo que hace el programa es desplegar que tecla presionaste, se sale con presionar la tecla hacia abajo, se puede hacer con otra interrupcion
, con esto te podés guiar para hacer tu programa