汇编 电子密码锁 程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

最终程序代码:

DATA SEGMENT

KEY DB'ABCDEF'

TRYKEY DB7

DB?

DB7DUP(?)

OLDKEY DB7

DB?

DB7DUP(?)

NEWKEY1DB7

DB?

DB7DUP(?)

NEWKEY2DB7

DB?

DB7DUP(?)

FLAG DB1

DB?

ESUM DB0

STR1DB'PLEASEINPUTKEYCODE:',0DH,0AH DB'$'

STR3DB'Youareright!',0DH,0AH

DB'$'

STR4DB'Keycodeerror!',0DH,0AH,24H

STR5DB'PleaseInputoldkeycode:',0DH,0AH

DB'$'

STR6DB'PleaseInputnewkeycode:',0DH,0AH

DB'$'

STR7DB'PleaseReInputnewkeycode:',0DH,0AH

DB'$'

STR8DB'Keycodemodificationsucceed!',0DH,0AH

DB'$'

STR9DB'Thetwokeycodesaredifferent!',0DH,0AH

DB'$'

STRa DB'ESC:ChoicetoEXIT;ENTER:Choicetogoon;',0DH,0AH

DB'$'

STRc DB'ESC:ChoicetoEXIT;ENTER:ChoicetoModifykeycode;',0DH,0AH DB'$'

STRb DB'ESC:ChoicetoEXIT;BACKSPACE:RETURN;ENTER:Choicetogoon',0 DH,0AH

DB'$'

STRd DB'ESC:ChoicetoEXIT;BACKSPACE:RETURN;',0DH,0AH

DB'$'

DATA ENDS

STACK SEGMENT

DW100DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK START:

MOV AX,DATA

MOV DS,AX

MOV ES,AX

INPUT:

MOV AH,9;屏幕显示,提示输入密码LEA DX,STR1

INT21H

MOV AH,0AH;输入密码

LEA DX,OFFSET TRYKEY

INT21H

MOV AH,9;屏幕显示,菜单选项

LEA DX,STRa

INT21H

MOV AH,1;密码正确后下一步选择

INT21H

CMP AL,1BH;选择ESC则退出

JZEXIT

CMP AL,0DH;选择ENTER验证密码JZCOMPARE

COMPARE:;输入密码与实际密码比较验证

MOV AX,DS

MOV ES,AX

MOV SI,OFFSET KEY

MOV DI,OFFSET TRYKEY

INC DI

INC DI

MOV CX,6

REPECMPSB

JZRIGHT

JNZE1

E1:MOV DI,OFFSET ESUM

INC BYTEPTR[DI]

MOV AH,9;屏幕显示,输入密码错误

LEA DX,STR4

INT21H

MOV SI,OFFSET FLAG;密码错误时的音效选择INC SI

MOV BYTEPTR[SI],'F'

CMP BYTEPTR[DI],3;判断输入是否超过3次JBSHENGYIN;没超过3次连错就调用音效提示错误JMPEXIT;输入密码超过3次自动结束程序RIGHT:

MOV AH,9;屏幕显示,输入密码正确

LEA DX,STR3

INT21H

MOV AH,9;屏幕显示,菜单选项LEA DX,STRc

INT21H

MOV AH,1;密码正确后下一步选择INT21H

CMP AL,1BH;选择ESC则退出JZEXIT

CMP AL,0DH;选择ENTER则修改密码JZMODIFY

MODIFY:

A1:MOV AH,9;屏幕显示,输入原密码LEA DX,STR5

INT21H

MOV AH,0AH;原密码输入

LEA DX,OFFSET OLDKEY

INT21H

MOV AX,DS

MOV ES,AX

MOV SI,OFFSET KEY

MOV DI,OFFSET OLDKEY

INC DI

MOV CX,6

REPECMPSB

JZAb

MOV AH,9

LEA DX,STR4

INT21H

JMPC1

C1:MOV AH,9;屏幕显示,菜单选项

LEA DX,STRd

INT21H

MOV AH,1;密码正确后下一步选择

INT21H

CMP AL,1BH;选择ESC则退出

JZEXIT

CMP AL,08H;选择BACKSPACE则返回上一级继续输入原密码JZA1

Ab:MOV AH,9;屏幕显示,菜单选项

LEA DX,STRb

INT21H

MOV AH,1;密码正确后下一步选择

INT21H

CMP AL,1BH;选择ESC则退出

相关文档
最新文档