Lo del 5 es por el codigo que pusiste, te lo aclare en el primer mensaje, usa este y te va a funcionar perfectamente con el 5 del teclado alfanumerico por ejemplo:
Código:
RECUPERA PROC
MOV AX,0000h ;vuelvo 0 AX
INT 16h ; Guardo en AX el valor presionado
mov cl, 035h
cmp cl, al
JNE RECUPERA ; si no son iguales que vuelva a hacer todo el control
RET
RECUPERA ENDP
Se cierra porque el programa no tiene nada mas que hacer y debe devolver el control a MS-DOS que es un sistema MONOTAREA.
Creo que estabas bien encaminado en cuanto a los out's pero podes probar con
http://www.ctyme.com/intr/int-17.htm