您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 汇编 电子密码锁 程序
最终程序代码:DATASEGMENTKEYDB'ABCDEF'TRYKEYDB7DB?DB7DUP(?)OLDKEYDB7DB?DB7DUP(?)NEWKEY1DB7DB?DB7DUP(?)NEWKEY2DB7DB?DB7DUP(?)FLAGDB1DB?ESUMDB0STR1DB'PLEASEINPUTKEYCODE:',0DH,0AHDB'$'STR3DB'Youareright!',0DH,0AHDB'$'STR4DB'Keycodeerror!',0DH,0AH,24HSTR5DB'PleaseInputoldkeycode:',0DH,0AHDB'$'STR6DB'PleaseInputnewkeycode:',0DH,0AHDB'$'STR7DB'PleaseReInputnewkeycode:',0DH,0AHDB'$'STR8DB'Keycodemodificationsucceed!',0DH,0AHDB'$'STR9DB'Thetwokeycodesaredifferent!',0DH,0AHDB'$'STRaDB'ESC:ChoicetoEXIT;ENTER:Choicetogoon;',0DH,0AHDB'$'STRcDB'ESC:ChoicetoEXIT;ENTER:ChoicetoModifykeycode;',0DH,0AHDB'$'STRbDB'ESC:ChoicetoEXIT;BACKSPACE:RETURN;ENTER:Choicetogoon',0DH,0AHDB'$'STRdDB'ESC:ChoicetoEXIT;BACKSPACE:RETURN;',0DH,0AHDB'$'DATAENDSSTACKSEGMENTDW100DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXINPUT:MOVAH,9;屏幕显示,提示输入密码LEADX,STR1INT21HMOVAH,0AH;输入密码LEADX,OFFSETTRYKEYINT21HMOVAH,9;屏幕显示,菜单选项LEADX,STRaINT21HMOVAH,1;密码正确后下一步选择INT21HCMPAL,1BH;选择ESC则退出JZEXITCMPAL,0DH;选择ENTER验证密码JZCOMPARECOMPARE:;输入密码与实际密码比较验证MOVAX,DSMOVES,AXMOVSI,OFFSETKEYMOVDI,OFFSETTRYKEYINCDIINCDIMOVCX,6REPECMPSBJZRIGHTJNZE1E1:MOVDI,OFFSETESUMINCBYTEPTR[DI]MOVAH,9;屏幕显示,输入密码错误LEADX,STR4INT21HMOVSI,OFFSETFLAG;密码错误时的音效选择INCSIMOVBYTEPTR[SI],'F'CMPBYTEPTR[DI],3;判断输入是否超过3次JBSHENGYIN;没超过3次连错就调用音效提示错误JMPEXIT;输入密码超过3次自动结束程序RIGHT:MOVAH,9;屏幕显示,输入密码正确LEADX,STR3INT21HMOVAH,9;屏幕显示,菜单选项LEADX,STRcINT21HMOVAH,1;密码正确后下一步选择INT21HCMPAL,1BH;选择ESC则退出JZEXITCMPAL,0DH;选择ENTER则修改密码JZMODIFYMODIFY:A1:MOVAH,9;屏幕显示,输入原密码LEADX,STR5INT21HMOVAH,0AH;原密码输入LEADX,OFFSETOLDKEYINT21HMOVAX,DSMOVES,AXMOVSI,OFFSETKEYMOVDI,OFFSETOLDKEYINCDIINCDIMOVCX,6REPECMPSBJZAbMOVAH,9LEADX,STR4INT21HJMPC1C1:MOVAH,9;屏幕显示,菜单选项LEADX,STRdINT21HMOVAH,1;密码正确后下一步选择INT21HCMPAL,1BH;选择ESC则退出JZEXITCMPAL,08H;选择BACKSPACE则返回上一级继续输入原密码JZA1Ab:MOVAH,9;屏幕显示,菜单选项LEADX,STRbINT21HMOVAH,1;密码正确后下一步选择INT21HCMPAL,1BH;选择ESC则退出JZEXITCMPAL,0DH;选择ENTER则修改密码JZA2A2:MOVAH,9;屏幕提示输入新密码LEADX,STR6INT21HMOVAH,0AH;输入新密码LEADX,OFFSETNEWKEY1INT21HMOVAH,9;屏幕显示,菜单选项LEADX,STRbINT21HMOVAH,1;密码正确后下一步选择INT21HCMPAL,1BH;选择ESC则退出JZEXITCMPAL,0DH;选择ENTER则修改密码JZA5CMPAL,08H;选择BACKSPACE则返回上级菜单JZA2A5:MOVAH,9;屏幕显示,再次输入新密码LEADX,STR7INT21HMOVAH,0AH;新密码再次输入LEADX,OFFSETNEWKEY2INT21HMOVAH,9;屏幕显示,菜单选项LEADX,STRbINT21HMOVAH,1;密码正确后下一步选择INT21HCMPAL,1BH;选择ESC则退出JZEXITCMPAL,0DH;选择ENTER则修改密码JZA6CMPAL,08H;选择BACKSPACE则返回上级菜单JZA2A6:MOVAX,DS;两次输入的新密码验证MOVES,AXMOVSI,OFFSETNEWKEY1MOVDI,OFFSETNEWKEY2MOVCX,6REPECMPSBJNZA3JMPA4A3:MOVAH,9;屏幕显示两次输入密码不同,再次输入新验证密码LEADX,STR9INT21HJMPA5A4:MOVAH,9;修改密码成功LEADX,STR8INT21HLEASI,NEWKEY1INCSIINCSILEADI,KEYMOVCX,6CLDREPMOVSBMOVSI,OFFSETFLAG;修改密码成功时的音效选择INCSIMOV[SI],'T'JMPSHENGYINDELAY:MOVAH,00H;延时5s程序PC机提供的CLK信号频率为1.1931816MHZINT1AHADDDL,91MOVBL,DLLOP:MOVAH,00HINT1AHCMPDL,BLJNZLOPJMPINPUTSHENGYIN:SING:MOVBX,200CALLSOUNDMOVBX,1000CALLSOUNDJMPDELAYSOUNDPROCMOVAL,10110110BOUT43H,ALPUSHSIMOVSI,OFFSETFLAGCMP[SI],'F'JZB1B1:MOVAX,4553CMP[SI],'T'JZB2B2:MOVAX,604POPSIOUT42H,ALMOVAL,AHOUT42H,ALINAL,61HMOVAH,ALORAL,03HOUT61H,ALMOVCX,0FFFFHDELAY1:LOOPDELAY1MOVAL,AHOUT61H,ALRETSOUNDENDPEXIT:HLTMOVAH,4CHINT21HCODEENDSENDSTART
本文标题:汇编 电子密码锁 程序
链接地址:https://www.777doc.com/doc-72432 .html