;Autor Angel Alvarado (Angelverde)
;URL http://angelverde.info
title hola
.model small
.stack 128
.data
pide DB 'Dame tu contraseña: $'
preg DB '¿Quieres ver tu contraseña?(S/n): $'
con DB ' $'
avi DB 'Su contraseña fue: $'
ban DB 00
.code
MAIN PROC FAR
MOV AX,@data
MOV DS,AX
MOV ES,AX
; inicia programa
; limpia pantalla
CALL LIM
;colocar cursor
MOV DX,0A12H
CALL CUR
; imprime solicitud
LEA DX,pide
CALL IMP
; lee contraseña
CALL LEE
; pregunta salir o mostrar
MOV DX,0B10H
CALL CUR
LEA DX,preg
CALL IMP
; leer opcion
CALL PRE
CMP ban,01
JNE FIN
; Opcion Si, continua
; Nueva pantalla y mostrar contraseña
CALL LIM
MOV DX,0A12H
CALL CUR
LEA DX,avi
CALL IMP
LEA DX,con
CALL IMP
;finalizar programa
FIN:
mov ah,0
INT 16H
MOV AX,4C00H
int 21h
MAIN ENDP
LIM PROC NEAR
MOV AX,0600H
MOV BH,71H
MOV CX,0000H
MOV DX,184FH
INT 10H
RET
LIM ENDP
CUR PROC NEAR
MOV AH,02
MOV BH,00
INT 10H
RET
CUR ENDP
IMP PROC NEAR
MOV AH,09H
INT 21H
RET
IMP ENDP
LEE PROC NEAR
MOV CL,0
MOV SI,0
otro:
MOV AH,07H
INT 21H
CMP AL,13
JE salir
mov con[SI],al ;concatenar cadena
mov dl,2ah ;imprimir asterisco
mov ah,02h
int 21H
inc SI
inc cl
cmp cl,10
jne otro
salir:
RET
LEE ENDP
PRE PROC NEAR
MOV AH,07H ;leer opcion
INT 21H
MOV DL,AL ;imprimir leido
MOV AH,02H
INT 21H
CMP AL,110 ; compara con N y n
JE salir2
CMP AL,78
JE salir2
MOV ban,01
salir2:
RET
PRE ENDP
; Benemerita Universidad Autonoma de Puebla
; Angelverde
; http://angelverde.info