汇编语言 用户名密码登录验证程序 (dos调用)

用户输入用户名密码,验证成功则显示welcome!

主要是dos功能的调用。

2号调用 输入参数dl 显示在屏幕上

9号调用 输出ds:dx指向的字符串 必须以‘$'结尾

a号调用 把用户的输出保存起来 注意定义的时候   db 长度 ,?,长度 dup (?) 

代码:

;登陆验证程序
data segment
first db 'usename:',0dh,0ah,'$'
second db 'password:',0dh,0ah,'$'
databasename db 'think'
databasepassword db '123456'
tempname db 15,?, 15 dup (?)
countname db $-tempname-02h,'$'
temppassword db 15,?,15 dup (?)
countpassword db $-temppassword-02h
welcome	db 'welcome!','$'

data ends

code segment 
assume cs:code,ds:data,es:data
start:
	mov ax,data
	mov ds,ax

	;dos 调用显示欢迎界面
	mov ah,09h
	mov dx,offset first
	int 21h

	;dos 0ah 调用用户输入
	mov ah,0ah
	mov dx,offset tempname
	int 21h

	cmp byte ptr tempname+1,05h  ;验证长度
	jnz exit

	mov cx,5			;字符串比较
	mov si,offset databasename
	mov di,offset tempname+2
	mov ax,data
	mov es,ax
	cld
	repe cmpsb
	jnz exit

	mov dx,offset tempname+2   ;显示输入的字符串
	mov byte ptr tempname[7],'$'
	call dosshow

	;提示输入password
	mov ah,09h
	mov dx,offset second
	int 21h

	;dos 0ah 调用用户输入
	mov ah,0ah
	mov dx,offset temppassword
	int 21h

	cmp byte ptr temppassword+1,06h
	jnz exit

	mov cx,6
	mov si,offset databasepassword
	mov di,offset temppassword+2
	mov ax,data
	mov es,ax
	cld
	repe cmpsb
	jnz exit

	mov dx,offset temppassword+2
	mov byte ptr temppassword[8],'$'
	call dosshow

	mov ah,09h
	mov dx,offset welcome
	int 21h	

exit:	
	mov ax,4c00h
	int 21h

dosshow proc
	mov ah,09h
	int 21h

	mov dl,0dh
	mov ah,02h
	int 21h

	mov dl,0ah
	mov ah,02h
	int 21h

	ret
dosshow endp

code ends
end start

结果:


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值