超级神警txt全本下载:有兴趣的看一下程序错在哪

来源:百度文库 编辑:高考问答 时间:2024/04/26 08:24:35
题目:程序执行后,给出操作提示,例如:"Please input the password:"等待用户输入密码与内定的字符串进行比较。
当输入的字符串和程序内定的不相同时,显示“Password error!”信息,重新输入,当3次输入不对时,结束运行,返回DOS。
当输入的字符串和程序内定的相同时,显示“Welcome to use!”信息,按任意键返回。

我的错误程序:
data segment
mess db 'Please input the password:',0dh,0ah,'$'
no db 'Password error!',0dh,0ah,'$'
yes db 'Welcome to use!',0dh,0ah,'$'
password db 'lixiuying'
data ends
code segment
main proc far
assume cs:code,ds:data
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
call subr1
call subr2
ret
main endp
subr1 proc near
lea dx,mess
mov ah,09h
int 21h
mov ah,0ah
int 21h
ret
subr1 endp
subr2 proc near
mov cx,04h
lea si,password
mov di,dx
cmp si,di
jnz error
jmp disp
error:
dec cx
lea dx,no
jz exit
call sub1
ret
exit:
ret
disp:
lea dx,yes
mov ah,09h
int 21h
mov ah,0bh
int 21h
inc al
ret
subr2 endp
code ends
end start

感觉流程比较乱 不太容易看。
首先我说一点,我只不过为了考试学了点,如果说得不对 ,请抱歉。

你是用的两个过程来分别接收和判断的,是不是有这样的问题:第一次输入错了之后,再随便输入都会提示正确。

如果不是这样,那我的判断错了,后面的就当没有吧^_^。
sub2里面判断出错后跳到error,error再调用sub1.那么sub1完了肯定跳到error,再回到sub2,结果就执行了disp了。

我晕
too easy!!!
你自己看!!!!