Red de conocimiento informático - Conocimiento del nombre de dominio - Ni siquiera ha impartido el curso de diseño de principios de microcomputadoras. Hagamos un menú. ¿Pueden ayudarme? Aquí están los requisitos detallados.

Ni siquiera ha impartido el curso de diseño de principios de microcomputadoras. Hagamos un menú. ¿Pueden ayudarme? Aquí están los requisitos detallados.

; Requisitos de contenido de diseño:

; 1. Menú

El contenido incluye: ingresar contraseña (cadena); ③ Verificar contraseña;

; 2. Ingrese una cadena

; Después de seleccionar esta opción, puede ingresar una cadena. Esta cadena se utilizará como contraseña conocida en la verificación de contraseña.

; 3. Verificación de contraseña

; Ingrese una cadena, si la cadena ingresada no coincide con la solicitud de contraseña: ¡Error de contraseña!; ingresado incorrectamente tres veces;

Salga del software y regrese a DOS. Si la cadena ingresada es consistente con la contraseña, le preguntará: ¡Contraseña correcta! y devolverá DOS: ¡La contraseña es correcta! ;;y regresar al menú principal.

; 4. Seleccione el elemento Salir en el menú principal, luego finalice el programa y regrese a DOS.

; Después de compilar con MASM5.0, los resultados de ejecución son los siguientes

; E: \asmasmgt; : 12333

; 1.1. Establecer contraseña 2. Ingresar contraseña 3. Salir

;

; 1. Establezca la contraseña de entrada 3. Salga

; Ingrese la contraseña: 12334

;

; 1. Establecer contraseña 2. Ingresar contraseña 3. Salir

;

; 1. Establezca la contraseña e ingrese la contraseña: 12333

;

; 1. Establecer contraseña 2. Ingresar contraseña 3. Salir

E: mmasgt

Segmento de datos

s0 db 0dh; , 0ah, '1.Establecer contraseña 2.Ingresar contraseña 3. Salir $'

s1 db 0dh, 0ah, 'Establecer contraseña: $'

s2 db 0dh, 0ah,' Ingrese la contraseña: $'

buff1 db 255, 255 dup(0)

buff2 db 255, 255 dup(0)

next_h db 0dh, 0ah

s3 db 0dh, 0ah, '¡Error de contraseña! ,0ah,'¡La contraseña es correcta! ', 0dh, 0ah, '$'

ERR_N DB 0

los datos terminan

segmento de código

asume cs: código, ds :data

proceso principal lejos<

inicio:

push ds

xor ax, ax

push ax

mov ax, datos

mov ds, ax

PUSH DS

POP ES

-; -----------------------

menú:

mov ah, 09

mov dx, desplazamiento s0

int 21h

nuevamente:

mov ah, 08

int 21h

cmp al, '1 '

je set_p

cmp al, '2'

je in_p

cmp al, '3 '

je exit_dos1

jmp otra vez

exit_dos1:

ret

set _p:

mov ah, 09

mov dx, desplazamiento s1

int 21h

mov ah, 0ah

mov dx, desplazamiento buff1

int 21h

MOV AL, 0

MOV ERR_N, AL; Borrar recuento de errores

menú jmp

in_p:

mov ah, 09

mov dx, desplazamiento s2

int 21h

mov ah, 0ah

mov dx

, compensación buff2

int 21h

mov bx , compensación buff1 1

mov al, [bx]

mov bx , compensación buff2 1

mov ah, [bx]

xor ah, al; ¿La longitud de la cadena establecida es igual a la cadena de entrada? ?

jnz err; no es igual a

MOV CH, 0

MOV CL, AL

MOV SI, OFFSET BUFF1 2

p>

MOV DI, OFFSET BUFF2 2

CLD

REPE CMPSB

JNZ ERR

MOV AH, 09

MOV DX, OFFSET S4

INT 21H

MENÚ JMP

ERR:

MOV AH, 09

p>

MOV DX, OFFSET S3

INT 21H

INC ERR_N

MOV AL, ERR_N

CMP AL, 3

JE EXIT_DOS

MENÚ JMP

;---------------- ------------- -

EXIT_DOS:

ret

final principal

el código finaliza

finalizar inicio