Red de conocimiento informático - Conocimiento sistemático - 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.

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.

He hecho una pregunta más complicada, espero que te sea útil

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>.

.