目录
实验环境(实验设备)
硬件:微型计算机
软件:Windows 操作系统、汇编语言开发工具MASM或TASM
实验要求
1. 程序执行后,给出操作提示,请用户键入用户名和密码。
2. 用户在键入密码时,程序不回显键入字符。
3. 只有当用户键入的用户和密码字符串和程序内定的字符串相同时,显示欢迎界面,并返回DOS。
4. 可对密码进行加密和解密;动画显示欢迎界面。(选做)
实验代码
.586
DATA SEGMENT USE16
BUF DB 30
DB ?
DB 30 DUP(?)
TIP1 DB 'Please enter your username:$'
TIP2 DB 'Please enter your password:$'
TIP3 DB 'Welcome!$'
EM DB 'incorrect username or password$'
DATA ENDS
TXT SEGMENT
USER DB 'B19030623'
PW DB '010721'
TXT ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA,ES:TXT
BEG:
MOV AX,DATA
MOV DS,AX
MOV AX,TXT
MOV ES,AX
AGAIN1:
MOV AH,09H
MOV DX,OFFSET TIP1 ;取偏移地址
INT 21H
MOV AH,2
MOV DL,0AH ;换行
INT 21H
;判断用户名是否正确
LAST1:
MOV AH,0AH
MOV DX,OFFSET BUF ;获得输入
INT 21H
LEA DI,USER ;获取偏移位置
LEA SI,BUF+2;获取偏移位置
MOV CX,9
CLD
REPE CMPSB
JZ AGAIN2
MOV AH,2
MOV DL,0AH ;换行
INT 21H
MOV AH,09H
MOV DX,OFFSET EM ;输出报错
INT 21H
JMP EXIT
AGAIN2:
MOV AH,2
MOV DL,0AH ;换行
INT 21H
MOV AH,09H
MOV DX,OFFSET TIP2 ;取偏移地址
INT 21H
MOV AH,2
MOV DL,0AH ;换行
INT 21H
MOV CX,6
LEA BX,BUF+2
;判断密码是否正确
LAST2:
MOV AH,07H
INT 21H
MOV [BX],AL
INC BX
LOOP LAST2
LEA DI,PW ;获取偏移位置
LEA SI,BUF+2;获取偏移位置
MOV CX,6
CLD
REPE CMPSB
JZ NEXT
MOV AH,2
INT 21H
MOV AH,09H
MOV DX,OFFSET EM ;输出报错
INT 21H
JMP EXIT
NEXT:
MOV AH,09H
MOV DX,OFFSET TIP3 ;取偏移地址
INT 21H
EXIT:
MOV AH,4CH
INT 21H ;返回 DOS
CODE ENDS
END BEG
相关函数
REPE CMPSB :repe cmpsb指令解析