微机原理报告 密码校验Word格式文档下载.docx
《微机原理报告 密码校验Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微机原理报告 密码校验Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
导
教
师
评
语
年月日
目录
一、设计目的----------------------------------------1
二、设计任务与要求----------------------------------1
三、设计内容----------------------------------------2
四、实施效果----------------------------------------8
五、设计体会----------------------------------------10
六、参考资料----------------------------------------10
一、设计目的:
1、掌握汇编语言,会利用汇编语言编写一定功能的程序;
2、熟悉DOS环境以及在DOS下会调试编写好的汇编程序;
3、熟悉常用的DOS功能;
4、小组合作完成设计题目。
二、设计任务与要求:
1、设计密码校验程序;
2、程序设计基本要求:
1)菜单
内容包括:
输入密码(字符串);
密码校验;
退出。
2)输入字符串
选择该项后,可以输入一个字符串。
该字符串作为密码校验中的已知密码。
3)密码校验
输入字符串,若所输入的字符串与密码不一致则提示:
“Passworderror!
”,并重新提示输入密码,当错误输入三次时退出软件返回DOS。
若所输入的字符串与密码一致则提示:
“Passwordcorrect!
”,并返回主菜单。
4)在主菜单中选择退出项,则结束程序返回DOS。
三、设计内容:
1、使用的DOS功能:
1)显示字符串MOVAH,09H
INT21H;
入口参数DS:
DX=缓冲区
2)键盘输入一个字符MOVAH,01H
AL=输入的字符
3)终止当前程序并返回调用程序MOVAH,4CH
AL=退出码
4)输入字符串MOVAH,0AH
2、使用的BIOS功能:
1)设置光标位置,出口参数DH=当前字符行号、DL=当前字符列号、CH=光标起始栅线:
MOVAX,03H;
INT10H
2)MOVAL,0AH;
在光标位置显示字符
3)MOVAH,0;
从键盘读字符
INT16H
3、使用工具和软件:
计算机和MASM汇编软件
4、流程图:
5、程序与分析:
DATASEGMENT
MENUDB5DUP(0AH);
预设5个字节单位,初始值均为0AH
DB32DUP('
'
),'
MAINMENU'
0DH,0AH
DB25DUP('
),201,22DUP(205),187,0DH,0AH
DB25DUP('
),186,'
1.SETTHEPASSWORD'
3DUP(20H),186,0DH,0AH
2.CHECKTHEPASSWORD'
1DUP(20H),186,0DH,0AH
3.RETURNTODOS...'
20H,186,0DH,0AH
),200,22DUP(205),188,0DH,0AH
DB29DUP('
CHOICE(1,2,3):
$'
MESGDB0DH,0AH,0DH,0AH,9,'
PRESSANYKEYTOEXIT...$'
PASSDB0DH,0AH,9,'
ENTERYOURPASSWORD:
$'
YESDB0DH,0AH,9,'
PASSWORDCORRECT!
NODB0DH,0AH,9,'
PASSWORDERROR!
TIPSDB0DH,0AH,9,'
INPUTASTRING:
MSG1DB255,0
MSG2DB255,0
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
CLD;
进位标志置0
AGAIN:
MOVAX,3
INT10H;
读光标位置
LEADX,MENU
MOVAH,09H
INT21H;
输出字符串
INPUT:
MOVAH,1
从键盘读字符,AL=字符码,AH=扫描码
CMPAL,'
1'
JNZCP2
CALLSUB01;
程序跳转
JMPAGAIN
CP2:
2'
JNZCP3
CALLSUB02;
字符串左右移动
JCEXIT
JMPAGAIN;
返回到主菜单
CP3:
3'
;
返回DOS
JNZINPUT
EXIT:
LEADX,MESG
MOVAH,9
键盘输入单字符
MOVAH,4CH
INT21H
SUB01:
LEADX,TIPS
MOVAH,9
输出字符串
LEADX,MSG1
MOVAH,0AH
输入字符串
RET;
过程返回
SUB02:
CLC;
进位标志清0
PUSHDS;
压入堆栈
POPES;
弹出堆栈
MOVBP,3
SSS:
LEADX,PASS
显示字符串
LEADX,MSG2
MOVAH,0AH
MOVCH,0
MOVCL,MSG1+1
CMPCL,MSG2+1
JNZCUOWU
INCCX
REPZCMPSB;
当等于/为0时重复
JCXZRIGHT;
CX为0转移
CUOWU:
LEADX,NO
DECBP
JNZSSS
STC;
进位标志位置1
JMPOK
RIGHT:
LEADX,YES
OK:
RET
CODEENDS
ENDSTART
6、分组和自己对小组做的贡献:
我与同组组员合作,主要负责编写程序的数据段设定部分,以及各自搜集相关资料。
四、实施效果
1.编译成功
2.连接成功
3.进入程序主界面
4.开始校验
5.选择3按键,退出程序。
五、设计体会
本次汇编语言课程设计让我复习了一遍之前刻上学过的知识,而且印象很深刻,加深了对所学指令及其用法的理解,此外还学到了一些新的知识,比如有关INT10H,INT16H以及INT21H里的一些指令的用法,这些在课堂上老师并没有详细讲解。
本次汇编语言课程设计,也让我更加明白学习过程中需要理论知识与实践相结合,只学理论知识是很枯燥的,但当你用自己所编写的程序实现出来一个功能的时候就会觉得有很大的成就感,从而增强自己的学习积极性。
另一个比较大的感受就是我学习的知识还是不够全面,答辩的时候,老师问我程序开始的时候的框框是怎么实现的,我只知道那些程序代表那个框框,却不能具体的说明是如何实现的,以后的学习过程中在这方面应该有所提高。
总之,这次汇编语言课程设计让我收获很大,我不但巩固了知识,提高了能力,而且学到了编写程序时的技巧。
对于学习汇编语言这门专业课的兴趣更加浓厚,以后多看程序,多尝试编写程序,在实践的过程中发现问题,并及时解决问题,不断的提升自己。
六、参考资料
朱金钧、麻新旗:
《微型计算机原理及应用技术》机械工业出版社