以下是代码实现:

data segment PASW DB "Xha123" ; 原始密码 L1 DW $-PASW ; 原始密码长度放在L1变量单元 MAT DW 9 PRINT_ DB 'To input password, end with ENTER:$' ;输出缓冲区,存放将要输出到显示器的字符串
BUFFER_ DB 10, 0 ,10 DUP(0) ;输入缓冲区,存放从键盘输入的字符串,输入带回显 pkey db "press any key...$" ends

code segment assume cs:code, ds:data

start: mov ax, data mov ds, ax

; 输出提示信息 mov ah, 09h lea dx, PRINT_ int 21h

; 从键盘输入密码 mov ah, 0Ah lea dx, BUFFER_ int 21h

; 将用户输入与原始密码比较 mov si, OFFSET BUFFER_+2 ; 用户输入的字符串从BUFFER_+2开始 mov di, OFFSET PASW mov cx, L1 cmp cx, 0 ; 如果原始密码长度为0,则直接清零MAT并结束程序 je end_prog check: mov al, [si] cmp al, [di] jne not_match inc si inc di loop check mov MAT, FFFFh ; 匹配成功,将MAT赋值为FFFFh jmp end_prog not_match: xor ax, ax mov MAT, ax ; 匹配失败,将MAT清零 end_prog:

; 输出结果并等待用户按任意键结束程序 mov ah, 09h lea dx, pkey int 21h mov ah, 0 int 16h

mov ax, 4c00h int 21h end start

data segment PASW DB Xha123 ; 原始密码 L1	 DW $-PASW ; 原始密码长度放在L1变量单元 MAT DW 9 PRINT_	DB To input password end with ENTER$ ;输出缓冲区存放将要输出到显示器的字符串 BUFFER_	DB 10 0 10 DUP0

原文地址: https://www.cveoy.top/t/topic/bxRb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录