📄 banksystem.asm
字号:
DATAS SEGMENT
STRING0 DB 'PLEASE INPUT YOUR 6 PASSWORD:',0DH,0AH,'$'
STRING1 DB 'WELCOME TO THE SYSTEM!',0DH,0AH
STRING2 DB 0DH,0AH,'A:LEAVE THE SYSTEM!',0DH,0AH
STRING3 DB 'B:DISPLAY THE NUMBER!',0DH,0AH
STRING4 DB 'C:SAVE THE MONEY!',0DH,0AH
STRING5 DB 'D:TAKE OUT THE MONEY!',0DH,0AH
STRING6 DB 0DH,0AH,'CHOOSE THE NUMBER:',0DH,0AH,'$'
STRING7 DB 'PLEASE INPUT YOUR 6 PASSWORD AGAIN',0DH,0AH,'$'
PASSWORD DB 'S','Z','Q','X','Y','F'
INPD DB ?,?,?,?,?,?
COUNT DB ?
FUNB DB 0DH,0AH,'YU E :',0DH,0AH,'$'
FUNC DB 0DH,0AH,'THE NUMBER YOU WANT TO SAVE:',0DH,0AH,'$'
FUND DB 0DH,0AH,'THE NUMBER YOU WANT TO TAKE OUT:',0DH,0AH,'$'
DATAS ENDS
STACKS SEGMENT
db 100 dup(?)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS,ES:DATAS
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,DATAS
MOV ES,AX
MOV AL,03H
MOV COUNT,AL
L0:
MOV DX, OFFSET STRING0 ;提示输入密码
MOV AH,09H
INT 21H
MOV CX,6
LEA SI,INPD
L1:
LEA DX,[SI] ;输入密码
MOV AH, 08H
INT 21H
INC SI
MOV DL,'*' ;提示输入密码
MOV AH,02H
INT 21H
LOOP L1
MOV CX,6
L2:
LEA SI,INPD ;比较字符串
LEA DI,PASSWORD
CMP SI,DI
JNZ NO ;若字符串不相同时,则停止比较
INC SI
INC DI
LOOP L2
YES:
MOV DX, OFFSET STRING1 ;密码正确是输出一系列字符
MOV AH,09H
INT 21H
MOV AH,01H
INT 21H
CMP AL,'A'
JE FUNCTIONA
CMP AL,'B'
JE FUNCTIONB
CMP AL,'C'
JE FUNCTIONC
CMP AL,'D'
JE FUNCTIOND
MOV AH, 4CH
INT 21H
NO:
MOV DX, OFFSET STRING7 ;密码不正确时重新输入
MOV AH,09H
INT 21H
MOV AL,COUNT
DEC AL
MOV AH, 4CH
INT 21H
FUNCTIONA:
CALL START
RET
MOV AH, 4CH
INT 21H
FUNCTIONB:
MOV DX,OFFSET FUNB
MOV AH,09H
INT 21H
MOV AH, 4CH
INT 21H
FUNCTIONC:
MOV DX,OFFSET FUNC
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
FUNCTIOND:
MOV DX,OFFSET FUND
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -