passwdwithprocedures.asm
来自「password with procedure」· 汇编 代码 · 共 69 行
ASM
69 行
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 + =
减小字号Ctrl + -
显示快捷键?