微机原理课程设计密码校验程序设计.docx
- 文档编号:2193017
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:10
- 大小:58.47KB
微机原理课程设计密码校验程序设计.docx
《微机原理课程设计密码校验程序设计.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计密码校验程序设计.docx(10页珍藏版)》请在冰豆网上搜索。
微机原理课程设计密码校验程序设计
课程设计报告
学生姓名:
学号:
专业班级:
密码校验程序设计
课程名称:
微型计算机原理及应用技术
学年学期:
同组人员:
指导教师:
目录
一、设计目的1
二、设计任务与要求1
三、设计内容1
四、功能效果展示5
五、课程设计心得体会7
六、参考书9
一、设计目的:
1、掌握汇编语言,会利用汇编语言编写一定功能的程序;
2、熟悉DOS环境以及在DOS下会调试编写好的汇编程序;
3、熟悉常用的DOS功能;
4、小组合作完成设计题目。
二、设计任务与要求:
1、设计密码校验程序。
2、程序设计基本要求:
1)菜单
内容包括:
①输入密码(字符串);②密码校验;③退出。
2)输入字符串
选择该项后,可以输入一个字符串。
该字符串作为密码校验中的已知密码。
3)密码校验
输入字符串,若所输入的字符串与密码不一致则提示:
Passworderror!
,并重新提示输入密码,当错误输入三次时退出软件返回DOS。
若所输入的字符串与密码一致则提示:
Passwordcorrect!
,并返回主菜单。
4)在主菜单中选择退出项,则结束程序返回DOS。
3、完成软件的技术要求。
4、程序设计的流程图。
5、你自己对小组完成设计题目所做的贡献。
三、设计内容:
1、使用的DOS功能:
1)显示字符串MOVAH,09H
INT21H;入口参数DS:
DX=缓冲区2)键盘输入一个字符MOVAH,01H
INT21H;AL=输入的字符3)终止当前程序并返回调用程序MOVAH,4CH
INT21H;AL=退出码
4)输入字符串MOVAH,0AH
INT21H;入口参数DS:
DX=缓冲区2、使用的BIOS功能:
1)设置光标位置,出口参数DH=当前字符行号、DL=当前字符列号、CH=
光标起始栅线:
MOVAX,03H;
INT10H
2)MOVAL,0AH;在光标位置显示字符
INT10H
3)MOVAH,0;从键盘读字符INT16H
3、使用工具和软件:
计算机和MANM汇编软件4、流程图:
第1页
开始
显示菜单等待键入
输入选择号
Y
AL=1?
调用SUB01
N
跳转到CP2清屏设置光标
Y
AL=2?
校验密码
显示提示信息
设置密码
N
跳转到CP3调用SUB02
CF=0?
AL=3?
N
Y
清屏设置光标
设置附加段
输出提示语PRESS
ANYKEYTOEXIT...
设置允许错误密码次数BP
输入任意字符
显示校验密码信息
返回DOS
输入密码
结束密码正确?
显示密码错误信息
BP-1
键入任意字符
CF=1
N
BP=0?
5、程序与分析:
CODESEGMENT
ASSUMECS:
CODE,DS:
CODESTART:
MOVAX,CODE
MOVDS,AX
CLD;DF清零
AGAIN:
MOVAX,3
INT10H;读光标位置LEADX,MENU
MOVAH,9
INT21H;显示主菜单
INPUT:
;等待输入字符MOVAH,0
INT16H;从键盘写入字符到AL
CMPAL,'1';和1比较
JNZCP2;不等则转移CP2CALLSUB01;相等则调用SUB01JMPAGAIN;转移到AGAIN
CP2:
CMPAL,'2';和2比较
JNZCP3;不等则转移CP3CALLSUB02;相等则调用SUB03JCEXIT;CF等于1转移EXIT
JMPAGAIN;转移到AGAINCP3:
CMPAL,'3';和3比较
JNZINPUT;不等转移INPUTEXIT:
LEADX,MESGMOVAH,9
INT21H;显示菜单MOVAH,1
INT21H;键入任意字符退出MOVAH,4CH
INT21H;返回DOS
SUB01:
MOVAX,3
INT10H;返回时屏幕画面为黑色控制按钮重设光标定位在左上角第一个字符位置
第3页
LEADX,TIPSMOVAH,9
INT21H;输出提示语LEADX,MSG1
MOVAH,0AH
INT21H;键入字符串到内存缓冲区MOVAX,0E0DH
INT10H;读出字符并将其显示在屏幕上MOVAH,0AH
INT10H;在光标位置显示字符RET
SUB02:
MOVAX,3
INT10H;读光标位置CLC
PUSHDSPOPESMOVBP,3SSS:
LEADX,PASSMOVAH,9
INT21H;输出提示语LEADX,MSG2
MOVAH,0AH
INT21H;键入字符,最后按回车键LEASI,BUF1
LEADI,BUF2MOVCH,0
MOVCL,MSG1+1
CMPCL,MSG2+1;比较字符个数
JNZCUOWU;字符个数不同密码错误,跳转REPZCMPSB
JZRIGHT;若密码正确跳转CUOWU:
LEADX,NOMOVAH,9
INT21H;输出PASSWORDERRORDECBP
JNZSSSSTC
JMPOK
第4页
RIGHT:
LEADX,YESMOVAH,9
INT21H;输出PASSWORDCORRECTOK:
MOVAH,1
INT21H;键入任意字符回到菜单RET
MENUDB5DUP(0AH);开始菜单
DB31DUP(''),'MAINMENU',0DH,0AH;主菜单
DB25DUP(''),201,21DUP(205),187,0DH,0AH;生成菜单框左上角和横框DB25DUP(''),186,'1.SHURUMIMA',8DUP(20H),186,0DH,0AH
;生成左竖框、菜单内容、右竖框
DB25DUP(''),186,'2.JIAOYANMIMA',6DUP(20H),186,0DH,0AH
;左竖框、菜单内容、右竖框、回车换行
DB25DUP(''),186,'3.RETURNTODOS...',186,0DH,0AH
;左竖框、菜单内容、右竖框、回车换行
DB25DUP(''),200,21DUP(205),188,0DH,0AH;图框右下角和左下角、回车
换行
DB28DUP(''),'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;接受设置的密码字符最多个数和实际输入字符个数BUF1DB255DUP(0);将输入的密码存到BUF1
MSG2DB255,0;接受设置的密码字符最多个数和实际输入字符个数BUF2DB255DUP(0);将校验密码存到BUF2
CODEENDS
ENDSTART
6、分组和自己对小组做的贡献:
我主要负责程序的调试过程,以及功能效果展示部分,在编写程序时主要负责开头那一段程序。
四、功能效果展示
第5页
当程序运行后,显示主界面:
按1键并输入密码123456,显示界面:
按回车键返回主界面,这时按2键并分别输入错误密码123123,123451,123452显示界面:
第6页
连续按回车键后可退出
重新运行,显示主界面后按3键,显示界面:
最后按回车键或任意键可退出五、课程设计心得体会
为期一周的汇编语言课程设计马上就要结束了,现在我来总结一下这周所学的内容以及我的心得体会。
本次汇编语言课程设计是利用我们平时所学的汇编知识编写一个密码校验的小程序,刚拿到题目的时候还有点担忧。
由于平时汇编语言的知识掌握的并不牢固,并且也没有过像这样的为期一周的汇编语言实践课程。
但当静下心来仔细把问题读懂和头脑中有了大致思路的时候,这种担忧就完全消失了。
其实这次课程设计并不要求你把书上各种指令及其工能掌握的很好并且能熟练的运用汇编语言编程,而恰恰是利用这次课程设计的机会来提高这方面的能力。
这就是一个心态问题,看你有没有摆正心态,看你有没有面对挫折的勇气,如果一开始就没摆正心态,思维就会堵塞,后面就更无法做下去了。
这次课
第7页
程设计让我更加懂得以后在面临困难与挫折的时候要有平和的心态,
要有冷静的头脑,坦然的面对,这样才能解决问题。
有了整体思路后,编写程序就变得简单的多了,但也遇到了一些
问题。
我们是一个小组,开始时六个人每个人负责整个程序的一部分,我觉得还是挺简单的。
毕竟程序再多平均到六个人也就不多了。
但实际上,如果不对整个程序有一个比较深度的理解,那么做起来也是很困难的。
刚开始把自己负责的那部分弄出来后和同组人交流时发现和他们的是矛盾的。
不仅变量的符号不一样,而且在大体上思路也有一定差异。
其实再怎么分组也是一个整体,不能从整体上把握,那么自己做的很可能事倍功半。
于是我再以后的程序修改中时时保持着和同组人的联系,听他们的意见,彼此对照并力求完美。
本次汇编语言课程设计加深了我对汇编语言的理解和运用,一些以前不太理解的指令及其用法现在都很好的掌握了,此外还学到了一些新的知识,比如有关INT10H,INT16H等指令的用法,这些在课堂上老师并没有详细讲解。
本次汇编语言课程设计,也让我更加明白实践的重要性,如果整天的学习课本上的理论知识而不拿来用那肯定是很烦的,况且汇编语言这门课本身学起来就很烦,尤其是要去理解各种指令的功能,还要学习相应的硬件知识。
再者,学习理论知识的目的还是要拿来运用,通过实践来巩固所学的理论知识。
并且通过这次课程设计实践,让我一改往日的厌学情绪,尤其是当程序运行正确的时候,那种来自内心的成就感,让我更加有信心学好汇编语言了。
第8页
通过本次课程设计让我更深刻的明白学习要不懂
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课程设计 密码 校验 程序设计