南邮|汇编程序语言设计实验二

实验目的:
    学习掌握汇编语言的开发过程,汇编源程序的编程格式和基本结构,DOS/BIOS功能调用,
    掌握分支、循环、子程序等基本结构程序的设计方法。
实验要求
    1. 程序执行后,给出操作提示,请用户键入密码。
    2. 只有当用户键入的密码字符串和程序内定的字符串相同时,显示欢迎界面,并返回DOS。

.586
DATA SEGMENT USE16
PASSWORD DB 'password'
LL = $-PASSWORD 
BUF DB 100,?,100 DUP(?)
MSG DB 'Please enter the user password:','$'
ERROR_MSG DB 'The password is incorrect. Please try again:$'
SUCCESS_MSG DB 'Land successfully!',0AH,0DH,'HELLO,WELCOME!$'
DATA ENDS

CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA,ES:DATA
BEG:
	MOV AX,DATA
	MOV DS,AX
	MOV ES,AX
	
	CALL OUTPUT
	
	MOV AH,4CH
	INT 21H
	
OUTPUT PROC
	MOV AH,09H
	LEA DX,MSG
	INT 21H
	CALL CHECK 
	RET
OUTPUT ENDP

INPUT PROC
	LEA DX,BUF
	MOV AH,0AH
	INT 21H
	MOV BL,BUF+1
	MOV BH,0
	MOV CX,LL
	RET
INPUT ENDP

CHECK PROC
LAST:
	CALL INPUT 
	CMP  CX,BX
	JNZ ERROR_NEXT
	LEA SI,PASSWORD
	LEA DI,BUF+2
	CLD 
	REPE CMPSB
	JZ SUCCESS_NEXT
ERROR_NEXT:
	CALL ERROR
	JMP LAST
SUCCESS_NEXT:
	CALL SUCCESS
	RET
CHECK ENDP

ERROR PROC
	MOV AH,02H
	MOV DL,0AH
	INT 21H
	MOV AH,09H
	LEA DX,ERROR_MSG
	INT 21H
	RET
ERROR ENDP
	
SUCCESS PROC
	MOV AH,02H
	MOV DL,0AH
	INT 21H
	MOV AH,09H
	LEA DX,SUCCESS_MSG
	INT 21H
	RET
SUCCESS ENDP

CODE ENDS
END BEG

你可能感兴趣的:(汇编,开发语言)