
求一个汇编语言的密码校验程序
输入字符串,若所输入的字符串与密码不一致则提示:Passworderror!,并重新提示输入密码,当错误输入三次时退出软件返回DOS。若所输入的字符串与密码一致则提示:P...
输入字符串,若所输入的字符串与密码不一致则提示:Password error!,并重新提示输入密码,当错误输入三次时退出软件返回DOS。若所输入的字符串与密码一致则提示:Password correct!,并返回主菜单
粘贴党的不要 请给出每一步的解释
如果好的话我会再追加10分 展开
粘贴党的不要 请给出每一步的解释
如果好的话我会再追加10分 展开
2个回答
展开全部
;密码验证代码,,作业能用
CODE SEGMENT
ASSUME CS:CODE,DS:CODE
start: MOV AX,CODE
MOV DS,AX
cld
AGAIN: MOV AX,3
INT 10H
lea dx,MENU ;主菜单
mov ah,9
int 21h
input:
mov ah,0
int 16h
cmp al,'1'
jnz cp2
call sub01 ;输入一个字符串
jmp AGAIN
cp2:cmp al,'2'
jnz cp3
call sub02 ;字符串左右移动
jc exit
jmp AGAIN ;返回到主菜单
cp3:cmp al,'3' ;返回DOS
jnz input
exit:
lea dx,MESG
mov ah,9
int 21h
mov ah,1
int 21h
MOV AH,4CH
INT 21H
sub01:
mov ax,3
int 10h
lea dx,tips
mov ah,9
int 21h
lea dx,msg1
mov ah,0ah
int 21h ;输入一个字符串
mov ax,0e0dh
int 10h
mov al,0ah
int 10h
ret
sub02:
mov ax,3
int 10h
clc
push ds
pop es
mov bp,3
sss:
lea dx,Pass
mov ah,9
int 21h
lea dx,msg2
mov ah,0ah
int 21h
lea si,buf1
lea di,buf2
mov ch,0
mov cl,msg1+1
cmp cl,msg2+1
jnz cuowu
INC CX
repz cmpsb
jcxz right
cuowu:
lea dx,no
mov ah,9
int 21h
dec bp
jnz sss
stc
jmp ok
right:
lea dx,yes
mov ah,9
int 21h
ok:
mov ah,1
int 21h
ret
MENU DB 5 DUP(0AH)
DB 31 DUP(' '),'MAIN MENU',0DH,0AH
DB 25 DUP(' '),201,21 DUP(205),187,0DH,0AH
DB 25 DUP(' '),186,' 1.Shuru Mima',8 dup (20h),186,0DH,0AH
DB 25 DUP(' '),186,' 2.Jiaoyan Mima',6 dup (20h),186,0DH,0AH
DB 25 DUP(' '),186,' 3.Return to DOS ... ',186,0DH,0AH
DB 25 DUP(' '),200,21 DUP(205),188,0DH,0AH
DB 28 DUP(' '),'Choice(1,2,3):$'
MESG DB 0dh,0ah,0dh,0ah,9,'Press any key to exit ...$'
Pass db 0dh,0ah,9,'Enter your password: $'
yes db 0dh,0ah,9,'password correct!$'
no db 0dh,0ah,9,'password error!$'
tips db 0dh,0ah,9,'Input a string: $'
msg1 db 255,0
buf1 db 255 dup(0)
msg2 db 255,0
buf2 db 255 dup(0)
CODE ENDS
END start
CODE SEGMENT
ASSUME CS:CODE,DS:CODE
start: MOV AX,CODE
MOV DS,AX
cld
AGAIN: MOV AX,3
INT 10H
lea dx,MENU ;主菜单
mov ah,9
int 21h
input:
mov ah,0
int 16h
cmp al,'1'
jnz cp2
call sub01 ;输入一个字符串
jmp AGAIN
cp2:cmp al,'2'
jnz cp3
call sub02 ;字符串左右移动
jc exit
jmp AGAIN ;返回到主菜单
cp3:cmp al,'3' ;返回DOS
jnz input
exit:
lea dx,MESG
mov ah,9
int 21h
mov ah,1
int 21h
MOV AH,4CH
INT 21H
sub01:
mov ax,3
int 10h
lea dx,tips
mov ah,9
int 21h
lea dx,msg1
mov ah,0ah
int 21h ;输入一个字符串
mov ax,0e0dh
int 10h
mov al,0ah
int 10h
ret
sub02:
mov ax,3
int 10h
clc
push ds
pop es
mov bp,3
sss:
lea dx,Pass
mov ah,9
int 21h
lea dx,msg2
mov ah,0ah
int 21h
lea si,buf1
lea di,buf2
mov ch,0
mov cl,msg1+1
cmp cl,msg2+1
jnz cuowu
INC CX
repz cmpsb
jcxz right
cuowu:
lea dx,no
mov ah,9
int 21h
dec bp
jnz sss
stc
jmp ok
right:
lea dx,yes
mov ah,9
int 21h
ok:
mov ah,1
int 21h
ret
MENU DB 5 DUP(0AH)
DB 31 DUP(' '),'MAIN MENU',0DH,0AH
DB 25 DUP(' '),201,21 DUP(205),187,0DH,0AH
DB 25 DUP(' '),186,' 1.Shuru Mima',8 dup (20h),186,0DH,0AH
DB 25 DUP(' '),186,' 2.Jiaoyan Mima',6 dup (20h),186,0DH,0AH
DB 25 DUP(' '),186,' 3.Return to DOS ... ',186,0DH,0AH
DB 25 DUP(' '),200,21 DUP(205),188,0DH,0AH
DB 28 DUP(' '),'Choice(1,2,3):$'
MESG DB 0dh,0ah,0dh,0ah,9,'Press any key to exit ...$'
Pass db 0dh,0ah,9,'Enter your password: $'
yes db 0dh,0ah,9,'password correct!$'
no db 0dh,0ah,9,'password error!$'
tips db 0dh,0ah,9,'Input a string: $'
msg1 db 255,0
buf1 db 255 dup(0)
msg2 db 255,0
buf2 db 255 dup(0)
CODE ENDS
END start

2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询