您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 字符串动态显示微原课设报告
1河北科技大学课程设计报告学生姓名:学号:专业班级:电信L122班课程名称:微型计算机原理及应用技术学年学期:2014—2015学年第1学期同组人员:指导教师:张永强2014年12月2课程设计成绩评定表学生姓名学号成绩专业班级电信L122起止时间2014-12-20至2014-1-10设计题目字符串动画显示指导教师评语课程设计态度:端正□较端正□一般□较差□课程设计纪律:好□较好□一般□较差□课程设计出勤情况:好□较好□一般□较差□课程设计任务完成情况:优秀□好□一般□较差□课程设计报告完成情况:优秀□好□一般□较差□动手能力:强□较强□一般□较差□团队精神:好□较好□一般□较差□创新意识:强□较强□一般□较差□指导教师:年月日3目录一、设计目的-----------------------------------------4二、设计任务与要求-------------------------------------4三、小组分工--------------------------------------------4四、实现方法--------------------------------------------5五、功能效果展示---------------------------------------6六、心得体会--------------------------------------------9七、参考资料--------------------------------------------10八、附源程序--------------------------------------------11一、设计目的:1、掌握汇编语言,会利用汇编语言编写一定功能的程序;2、熟悉DOS环境以及在DOS下会调试编写好的汇编程序;3、熟悉常用的DOS功能;4、小组合作完成设计题目。二、设计任务与要求设计内容要求:1、菜单内容包括:①输入字符串;②字符串动画显示;③退出。2、输入字符串选择该项后,可以输入一个字符串。该字符串即为动画显示时所显示的字符串。3、字符串动画显示所显示字符串在一矩形框内从无到有,一半从左另一半从右向中间移动,当两半相遇时停止移动,当按下R键后重复从两边到中间移动的动作,直到按下Q键,停止字符串动画显示返回到主菜单。4、在主菜单中选择退出项,则结束程序返回DOS。三、小组分工序号工作内容成员1确定设计思路,画流程图2编写程序段3编写菜单项4程序汇总四、实现方法4.1MASM编译开发环境实现MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。它与windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM的开发人员必须在windows下进行开5发。MASM版本至今在不断的更新,目前的最新版本为10.0,推荐使用新版本进行开发。MASM5.0是最常用的汇编连接软件其简单操作为输入asm文件将其连接为obj文件用link得到exe文件。4.2算法实现软中断:DOS功能调用编写的程序中INT10H和INT21H软中断的应用。如下表:INT10H功能号功能入口参数出口参数00H设置显示模式AL=0380*25彩色文本方式无0EH显示字符AL=字符字符显示在屏幕上INT21H功能号功能入口参数出口参数09H显示字符串DS:DX=缓冲区0AH输入字符串DS:DX=缓冲区01H键盘输入字符AL=输入字符INT16H功能号功能入口参数出口参数00H从键盘读字符AL=字符码AH=扫描码矩形框代码:186竖框编写187右上角编写188右下角编写200左下角编写201左上角编写205横框编写总体流程:设置三个选项分别对应选项标号。将键盘输入的标号与1、2、3相比较以确定不同的程序块调用接口。“1”输入字符串,即进入过程一;“2”动画显示所要求的字符串,即调用过程二;“3”返回DOS系统,即调用EXIT标号。4.3流程图6五、功能效果展示1.编译成功Q段地址初始化进入DOS窗口输出提示信息输入字符串字符串动态显示数码管数据输出开始退出?结束R72.连接成功3.进入程序主界面84.开始校验95.退出程序。六、心得体会一周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,而且锻炼了我的实际动手操作能力。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。锻炼了独立动手能力,学会了运筹帷幄,并且明白了凡事要注重细节。通过本次课程设计,我将我以前学过的一些指令的运用更加的深刻,还有一些以前没学过的指令,以及如何分工安排和实际应用,如何融入到实际应用中去。然后如何运用masm软件,就算一个字母输入错误都会导致最后程序运行不出来,更加锻炼了我的细心和认真。遇到问题时,通过自己上网查资料,查课本,锻炼了自己动手的能力。这也让我越来越深的认识到,不管以后工作还是学习,学习是永无止境的。学习的过程大体就是:先大体弄懂要学的那些知识,然后是自己进行练习,通过练习发现问题,然后是解决问题,这个自学的过程如此反复,每进行一次锻炼,自己的能力得到一次提升,进而一次次提高自己。实践与理论相结合,才能更好的理解所学知识,今后我将努力将基础知识掌握牢固,争取在下一次课程设计中能够改善这次的不足,做出更好的设计,提高自己的能力。我明白了知识不只是会了就行了,还要多动手,多练习,理论联系10实际,才能真正学会,学懂,学通,融会贯通。总之,通过这次的课设,使我受益匪浅。七参考资料《微型计算机原理及应用技术》第2版机械工业出版社八、附源程序初始化程序:DATASEGMENTMENUDB5DUP(0AH)DB31DUP(''),'MENU',0DH,0AHDB25DUP(''),2AH,21DUP('*'),'*',0DH,0AHDB25DUP(''),2AH,'1.input',2AH,0DH,0AHDB25DUP(''),2AH,'2.animate',2AH,0DH,0AHDB25DUP(''),2AH,'3.quit',2AH,0DH,0AHDB25DUP(''),2AH,21DUP('*'),2AH,0DH,0AHDB28DUP(''),'select(1,2,3):$'MESGDB0dh,0ah,0dh,0ah,9,'Pressanykeytoexit...$'CNT1DW0CNT2DW0CNT3DW0CNT4DW0CNT5DW0leftDW0strDB21DB0BUFDB0dh,20DUP(0)DB25DUP(''),201,21DUP(205),187,0DH,0AHDB25DUP(''),186,'1.InputaString...',186,0DH,0AHDB25DUP(''),186,'2.DisplayModel...',186,0DH,0AHDB25DUP(''),186,'3.ReturntoDOS...',186,0DH,0AHDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,0b800HMOVES,AXCLD;标志位操作指令AGAIN:MOVAX,3INT10HLEADX,MENU11MOVAH,9INT21Hinput:MOVAH,0INT16H;等待键盘输入CMPAL,'1';等于1不跳转JNZmovestr;不等于1跳转到movestrcallinputstr;输入一个字符串JMPinputmovestr:CMPAL,'2';输入等于2不跳转JNZexittodos;不等于2跳转退出callanimatestr;字符串左右移动JMPAGAIN;返回到主菜单exittodos:CMPAL,'3';返回DOSJNZinputLEADX,MESGMOVAH,9INT21HMOVAH,1INT21HMOVAH,4CHINT21HYHPROCPUSHCXPUSHDXMOVDX,1000D1:MOVCX,0ffffhLOOP$DECDXJNZD1POPDXPOPCXRETYHENDP;输入字符串inputstr:MOVAX,0e0dHINT10HMOVAL,0AHINT10HLEADX,strMOVAH,0AHINT21H;输入一个字符串MOVAX,0e0aH12INT10HRETanimatestr:CMPstr+1,2JNBy2JMPquity2:callline;画矩形框@y2:XORAX,AXMOVCNT1,AXMOVCNT5,AXMOVDL,60-2MOVAL,str+1SUBDL,ALMOVDH,0MOVCNT3,DX;中间空格长度MOVBL,ALINCALSHRAL,1CBWMOVCNT2,AX;左半字符串长度SUBBL,ALMOVBH,0MOVCNT4,BX;右半字符串长度y3:MOVBP,ESPUSHDSPOPESMOVdi,1000HMOVCX,CNT1;前导空格长度JCXZu1MOVAL,20HREPstosbu1:LEAsi,BUFMOVCX,CNT2;左半字符串长度REPmovsbMOVCX,CNT3;中间空格长度JCXZu2MOVAL,20HREPstosbu2:MOVCX,CNT4;右半字符串长度REPmovsbMOVCX,CNT5;末尾空格长度13JCXZu3MOVAL,20HREPstosbu3:show:MOVES,bpMOVAH,0AHMOVsi,1000HMOVdi,leftMOVCX,60-2PPP:lodsbstoswLOOPPPPcallyhCMPCNT3,0JZ@inputINCCNT1;前面空格长度INCCNT5;末尾空格长度DECCNT3;中间空格长度CMPCNT3,0JZkk2DECCNT3;中间空格长度kk2:JMPy3@input:MOVAH,0INT16HCMPAH,10H;'Q'JZSSSCMPAH,13H;'R'JNZ@inputCMPCNT3,0;中间空格停止JNZ@repJMP@y2@rep:JMPy3SSS:MOVstr+1,0quit:LEAsi,CNT1XORAX,AXMOVCX,5kk3:MOV[si],AXINCsiINCsi14LOOPkk3XORdi,diMOVCX,80*25MOVAX,720HREPstosw;清全屏RETline:;矩形框MOVdi,(18*80+10)*2MOVAL,201;左上角MOVAH,0dH;//颜色stoswMOVCX,60-2MOVAL,205;横框REPstoswMOVAL,187;右上角stoswADDdi,20*2MOVAL,186;竖框stoswMOVleft,diMOVCX,60-2MOVAL,20H;空格REPstosw;MOVright,diMOVAL,186;竖框stoswADDdi,20*2MOVAL,200;左下角stoswMOVCX,60-2MOVAL,205;横框REPstoswMOVAL,188;右下角stoswRETCODEENDSENDSTART
本文标题:字符串动态显示微原课设报告
链接地址:https://www.777doc.com/doc-2485348 .html