关于汇编8086中字符串比较的问题 repe cmpsb
首先是PBUF DB 8 DUP(?)
然后设定密码 PASWD DB "00000000"
这里是密码比较段落
DISP2:
MOV AH,9
MOV DX,OFFSET MSG3
INT 21H
MOV BX,OFFSET PBUF ;BX作为存储指针
PSWDIN:
MOV AH,07H
INT 21H
CMP AL,0DH ;用户是否输入了回车
JZ CMP_PSWD ;用户输入了回车,则跳转到密码判断部分
MOV AL,PBUF ;用户输入不是回车,保存到密码缓冲区
MOV AL,'*'
MOV DL,AL
MOV AH,2 ;显示一个字符 调用参数DL=待输出字符的ASCII码
INT 21H
INC BX ;调整密码保存指针
JMP PSWDIN
CMP_PSWD:
LEA SI,PASWD
LEA DI,PBUF
MOV CX,PLEN ;设置比较次数
CLD
REPE CMPSB
JNZ Error2 ;跳转到密码出错提示
JMP WELCOME ;登入成功,跳转到欢迎信息显示
ERRor2:
DEC RETRY
JZ ERREXIT
MOV AH,9
MOV DX,OFFSET MSG3_1
INT 21H
JMP DISP2
ERREXIT:
MOV AH,9
MOV DX,OFFSET MSG4
INT 21H
MOV AL,0 ;错误退出,程序返回0给操作系统
JMP EXIT
程序无误 只是比较老是出错 即输入正确的密码但是跳转到出错的界面