No tengo MASM 16 aca asi que todo esto es en teoria, vamos por partes:
Código:
MOV DX,0378h
MOV AX,0000h
OUT DX,AX
Esto no tiene nada que ver, es para enviar un byte al puerto paralelo sino me equivoco.
Código:
RECUPERA PROC
MOV AX,0000h ;vuelvo 0 AX
INT 16h ; Guardo en AX el valor presionado
MOV CX,0635h ; muevo mi 5 a cx
CMP CX,AX ; lo comparo con el digito marcado en teclado
JNE RECUPERA ; si no son iguales que vuelva a hacer todo el control
RET
RECUPERA ENDP
¿MOV CX,0635h ; muevo mi 5 a cx? ¿Porque no comparar contra el '5' que es 035h y esta en AL?
http://www.ctyme.com/intr/rb-1754.htm
Return:AH = BIOS scan code
AL = ASCII character
Código:
ESCRIBE PROC
MOV AH,09h ; \
INT 10h ; \ ESTE ES MI PROBLEMA.
OUT CX,AX ; /
RET ; /
ESCRIBE ENDP
CODIGO ENDS
END MAIN
Esto ultimo esta equivocado, mira la pagina que te dejo
http://www.ctyme.com/intr/rb-0099.htm, te faltan varios parametros por especificarle a la funcion y creo que deberias utilizar alguna mas facil de ser posible como por ejemplo esta:
http://www.ctyme.com/intr/rb-2558.htm
¿OUT CX,AX? ¿Porque haces eso?