Lenguaje ensamblador: Requisitos: ingrese una cadena como contraseña y luego solicite ingresar nuevamente. Si la entrada es incorrecta, se dará una señal de error. Si la entrada es correcta, se devolverá dos.
Identificación de contraseña
Diseñe un programa para implementar la función de verificación de contraseña de usuario. Alguna información de la cuenta de usuario (incluido el nombre de usuario). y contraseña).
Después de ejecutar el programa, se le dará un mensaje de operación simple y claro, solicitando al usuario que ingrese un nombre de usuario y contraseña. Si la información de la cuenta ingresada por el usuario coincide con una de las cuentas de usuario integradas en el programa, se emite un mensaje de bienvenida; de lo contrario, se emite un mensaje de rechazo.
Por razones de confidencialidad, los caracteres de la contraseña ingresada por el usuario no deben mostrarse en la pantalla tal como están, sino que deben mostrarse como "*".
.MODEL PEQUEÑO
.STACK 100
.DATA
NOMBRE1 DB "TOM ABC"
L_NAME1 DB $-OFFSET NOMBRE1
NOMBRE2 DB "CASAR UVW"
L_ NOMBRE2 DB $-OFFSET NOMBRE2
NOMBRE3 DB "PETER XYZ"
L_NAME3 DB $-OFFSET NAME3 --------------- Usuario y contraseña, información de longitud
MESS1 DB "NOMBRE:
MESS2 DB 0DH, 0AH, "CÓDIGO: $"
MESS3 DB 0DH, 0AH, "¡NO ENCONTRADO! $"
MESS4 DB 0DH, 0AH, "¡BIENVENIDO!$";
BUF DB 30
DB 1 DUP(?)
DB 30 DUP(?).
.CODE
.STARTUP
COINCIDIR NOMBRE DE MACRO, L_NAME
MOV DI, NOMBRE DE DESPLAZAMIENTO
MOV DL, L_NAME
CALL COMP
ENDM ----- Macro
MOV AH, 09H
MOV DX, OFFSET MESS1
INT 21H; ----- Solicitar nombre de usuario
MOV AH, 0AH
MOV DX, OFFSET BUF
INT 21H;----- Recibir nombre de usuario y almacenarlo en buffer
XOR BX, BX
MOV BL, BUF 1
MOV AL, ''
MOV BUF[BX 2], AL
ADD BX, 1; ----- agregue lo anterior después del nombre de usuario Espacio, tiendas BX longitud del nombre de usuario
MOV AH, 09H
MOV DX, OFFSET MESS2
INT 21H ----- Solicitar contraseña
p>OTRA VEZ: MOV AH, 08H
INT 21H
CMP AL, 0DH
JZ NEXT
MOV BUF[ BX 2 ], AL
INC BX
MOV DL, '*'
MOV AH, 2
INT 21H
JMP OTRA VEZ;----- Recibir contraseña, BX es la longitud total de la información ingresada
>SIGUIENTE: MATCH NAME1, L_NAME1
MATCH NAME2, L_NAME2
MATCH NAME3, L_NAME3 ----- Llama a la macro para comparar si hay una coincidencia
MOV AH, 09H
MOV DX, OFFSET MESS3
INT 21H
MOV AH, 4CH
INT 21H;----- Información de salida no coincidente
COINCIDIDO:
MOV AH, 09H
MOV DX,
OFFSET MESS4
INT 21H
MOV AH, 4CH
INT 21H; ----- Mensaje de bienvenida de salida
COMP PROC; RET
COMP ENDP
p>.
.