📄 passwdwithprocedures.asm
字号:
TITLE password
.data
MSG1 DB "ENTER PASSWORD", 10, 13, "$"
MSG2 DB "INCORRECT PASSWORD", 10, 13, "$"
MSG3 DB "LOGIN SUCCESSFUL", 10, 13, "$"
PASSWD DB "AlPhA35%"
USERPASS DB 10 DUP(0)
.code
start: mov ax, @data
mov ds,ax
MOV DX, OFFSET MSG1
MOV AH, 09H
INT 21H
CALL KEYBIN
CALL PASSCHECK
KEYBIN PROC
MOV CX, 10 ;LOOP INITIALIZATION
MOV SI, 0
USERIN: MOV AH, 01H ;08H FOR NO ECHO
INT 21H
CMP AL, 13
JE CHECK
MOV USERPASS[SI], AL
INC SI
MOV DL, '*'
MOV AH, 02H
INT 21H
LOOP USERIN
RET
KEYBIN ENDP
PASSCHECK PROC
CHECK:
CMP SI, 08H ;If more or less than 8 characters then incorrect password
JNE NOMATCH
MOV CX, 8
MOV SI, 0
CHECK2:
MOV DL, USERPASS[SI]
CMP DL, PASSWD[SI]
JNE NOMATCH
INC SI
LOOP CHECK2
MOV DX, OFFSET MSG3
JMP PRINTMSG
RET
PASSCHECK ENDP
NOMATCH: MOV DX, OFFSET MSG2
PRINTMSG: MOV AH, 09H
INT 21H
mov ah,4ch
int 21h
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -