微机原理字符串动画显示

上传人:无*** 文档编号:86549571 上传时间:2022-05-07 格式:DOC 页数:27 大小:76KB
收藏 版权申诉 举报 下载
微机原理字符串动画显示_第1页
第1页 / 共27页
微机原理字符串动画显示_第2页
第2页 / 共27页
微机原理字符串动画显示_第3页
第3页 / 共27页
资源描述:

《微机原理字符串动画显示》由会员分享,可在线阅读,更多相关《微机原理字符串动画显示(27页珍藏版)》请在装配图网上搜索。

1、. .微机原理课设报告 学生:常卫洪学号:130704101 专业班级:电子科学与技术131班 课程名称:微型计算机原理及应用技术 学年学期:2021 -2021学年第 1 学期 指导教师: 艳 2 015年12 月课程设计成绩评定表学生常卫洪学 号130704101成绩专业班级电科131起止时间2021 .12.20 至 2021 .12.29设计题目字符串动画显示 指导教师评语课程设计态度: 端正 较端正 一般 较差 课程设计纪律:好 较好 一般 较差 课程设计出勤情况:好 较好 一般 较差 课程设计任务完成情况:优秀 好 一般 较差 课程设计报告完成情况:优秀 好 一般 较差 动手能力:

2、强 较强 一般 较差 团队精神:好 较好 一般 较差 创新意识:强 较强 一般 较差 指导教师: 年 月 日目录一、设计目的-4二、设计任务与要求-4三、小组分工-4四、 实现方法-4五、功能效果展示-11六、改进以及及建意-13七、心得体会-14八、参考资料-14九、附源程序-14优选. -一、设计目的:1、掌握汇编语言,会利用汇编语言编写一定功能的程序;2、熟悉DOS环境以及在DOS下会调试编写好的汇编程序;3、熟悉常用的DOS功能;4、小组合作完成设计题目。二、设计任务与要求设计容要求: 1、菜单容包括:输入字符串;字符串动画显示;退出。 2、输入字符串选择该项后,可以输入一个字符串。该

3、字符串即为动画显示时所显示的字符串。 3、字符串动画显示所示字符串在一矩形框一半从左另一半从右向中间移动,当两半相遇时又分别向两边移动,直至遇到两侧的边框双重新向中间移动,重复上述过程直至按任意键,那么停顿字符串动画显示返回到主菜单。 4、在主菜单中选择退出项,那么完毕程序返回DOS。三、 进度及分工安排1. 进度安排序号设计容时间1查阅资料、确定设计思路3天2设计实现、编写程序3天3调试1天4考核设计、写设计报告2天2. 分工安排序号工作容 成员1确定设计思路,画流程图 继贤2编写字符串移动程序段 恒 阳3编写菜单项,矩形框程序段常卫洪继贤4程序汇总 ,调试恒 田淑乾四、 实现方法4.1 M

4、ASM编译开发环境实现MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进展汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。它与windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM的开发人员必须在windows下进展开发。MASM版本至今在不断的更新,目前的最新版本为10.0,推荐使用新版本进展开发。MASM 5.0 是最常用的汇编连接软件 其简单操作为 输入asm文件将其连接为obj文件 用link得到exe文件。4.2算法实现软中断:DOS功能调用编写的程序中INT 10H和IN

5、T 21H软中断的应用。如下表:INT 10H功能号功能入口参数出口参数00H设置显示模式AL=03 80*25 彩色文本方式无0EH显示字符AL字符字符显示在屏幕上INT 21H功能号功能入口参数出口参数09H显示字符串DS:DX=缓冲区0AH输入字符串DS:DX=缓冲区01H键盘输入字符AL=输入字符INT 16H功能号功能入口参数出口参数00H从键盘读字符AL=字符码AH=扫描码矩形框代码:竖框编写右上角编写右下角编写左下角编写左上角编写横框编写总体流程:设置三个选项分别对应选项标号。将键盘输入的标号与1、2、3相比较以确定不同的程序块调用接口。1输入字符串,即进入过程一;2动画显示所要

6、求的字符串,即调用过程二;3返回DOS系统,即调用EXIT标号。AL=2.AL=3.输出提示符输入字符串以回车完毕输出矩形框并保持框内无字符数秒输出提示符输入字符输出提示符返回DOSR.Q.开场输出主菜单输入字符数字:1、2、3存ALAL=1.YNNYYYNYN4.3流程图:延时几秒,直到判断出矩形框完全出现4.4局部程序1. 菜单程序 MENU DB 5 DUP(0AH)DB 31 DUP( ),MAIN MENU,0DH,0AHDB 25 DUP( ),201,21 DUP(205),187,0DH,0AHDB 25 DUP( ),186, 1.INPUT A STRING .,186,0

7、DH,0AHDB 25 DUP( ),186, 2.DISPLAY MODEL . ,186,0DH,0AHDB 25 DUP( ),186, 3.RETURN TO DOS . ,186,0DH,0AHDB 25 DUP( ),200,21 DUP(205),188,0DH,0AHDB 28 DUP( ),CHOICE(1,2,3):$MESG DB 0DH,0AH,0DH,0AH,9,PRESS ANY KEY TO EXIT .$CNT1 DW 0 ;前导空格长度CNT2 DW 0 ;左半字符串长度CNT3 DW 0 ;中间空格长度CNT4 DW 0 ;右半字符串长度CNT5 DW 0;

8、末尾空格长度LEFT DW 0STR DB 21DB 0BUF DB 0DH,20 DUP(0)2. 矩形框程序 LINE: ;矩形框MOV DI,(18*80+10)*2MOV AL,201 ;左上角MOV AH,3;矩形框颜色STOSWMOV CX,60-2MOV AL,* ;横框REP STOSWMOV AL,187 ;右上角STOSWADD DI,20*2MOV AL,| ;竖框STOSWMOV LEFT,DIMOV CX,60-2MOV AL,20H ;空格REP STOSWMOV AL,| ;竖框STOSWADD DI,20*2MOV AL,200 ;左下角STOSWMOV CX,

9、60-2MOV AL,* ;横框REP STOSWMOV AL,188 ;右下角STOSWRET3. 字符串移动程序 LEA DX,MENU ;MENU文件的主菜单 将MENU的首地址给DXMOV AH,9INT 21H;显示字符串,DS:DX串地址,即MENU,画出方框图INPUT:MOV AH,0INT 16H;从键盘读一字符CMP AL,1;召唤第一步,输入一个字符串JNZ CP2 结果不为零跳转 及ZF=0CALL SUB01 ;输入一个字符串JMP INPUTCP2:CMP AL,2;召唤第二步,字符串左右移动JNZ CP3CALL SUB02 ;字符串左右移动JMP AGAIN ;

10、返回到主菜单CP3:CMP AL,3 ;返回DOSJNZ INPUTLEA DX,MESGMOV AH,9INT 21HMOV AH,1INT 21H;承受字符MOV AH,4CHINT 21H;完毕DELAY PROC PUSH CXPUSH DX;保护现场MOV DX,1000;第二轮循环次数D1:MOV CX,0FFFFH;第一轮循环次数 LOOP $ ;假设CX不等于零,跳转至当前代码地址的指令$=该指令在该代码段的偏移地址DEC DXJNZ D1POP DXPOP CX;现场复原RETDELAY ENDPSUB01:MOV AX,0E0DH;0DH为本行开头,0EH输出INT 10H

11、MOV AL,0AH;0AH为下一行输出INT 10HLEA DX,STR;DX输入字符缓冲区首地址MOV AH,0AHINT 21H ;输入一个字符串中断MOV AX,0E0AH;换行INT 10HRETSUB02:CMP STR+1,2;系统键入的字符个数JNB Y2JMP QUITY2:CALL LINE ;画矩形框MOV DL,60-2;框长度MOV AL,STR+1;字符长度SUB DL,ALMOV DH,0;DH清零MOV CNT3,DXMOV BL,ALINC ALSHR AL,1;AL+1/2CBWMOV CNT2,AX;左半边SUB BL,ALMOV BH,0MOV CNT4

12、,BX;右半边MOV BL,41Y3:MOV BP,ESPUSH DSPOP ESMOV DI,1000HMOV CX,CNT1JCXZ U1MOV AL,20HREP STOSBU1:LEA SI,BUF;MOV CX,CNT2;REP MOVSB;MOV CX,CNT3JCXZ U2MOV AL,20HREP STOSBU2:MOV CX,CNT4REP MOVSBMOV CX,CNT5JCXZ U3MOV AL,20HREP STOSBU3:SHOW:MOV ES,BPINC BL MOV AH,BL;设置形式白底黑字MOV SI,1000HMOV DI,LEFTMOV CX,60-2P

13、PP:LODSBSTOSWLOOP PPPMOV AH,1INT 16HJNZ SSS ;按任意键,返回主菜单CALL DELAYCMP CNT3,0JNZ KK1HERE:MOV AL,1000BXOR BYTE PTR KK1+1,ALXOR BYTE PTR KK1+5,ALXOR BYTE PTR KK1+9,ALXOR BYTE PTR KK2-3,ALKK1:INC CNT1INC CNT5DEC CNT3CMP CNT3,0JZ KK2DEC CNT3KK2:CMP CNT1,0JZ HEREJMP Y3SSS:MOV STR+1,0QUIT: LEA SI,CNT1XOR AX

14、,AXMOV CX,5KK3:MOV SI,AXINC SIINC SILOOP KK3XOR DI,DIMOV CX,80*25MOV AX,720HREP STOSW ;清全屏RET五、 功能效果展示1. 调试程序调试,是将编制的程序投入实际运行前,用手工或编译程序等方法进展测试,修正语法错误和逻辑错误的过程。Debug是调试汇编语言程序的工具,它不仅能跟踪程序的运行,还可以显示修改存与存放器容,以便在调试程序中检查程序,找错、改错。2. 编译成功3. 连接成功4. 进入程序主界面5. 开场校验6. 退出程序六、改进意见及建议本程序虽然已经完成了课程设计的全部要求,但是仍有缺乏之处,因为时

15、间紧和知识缺乏,所以程序不是很好。例如:有些程序可以很简单的完成,但是由于知识的问题只能很繁琐。有很多限制,比方,限制字符串长度。应该不能限制字符串长度。七、心得体会经过一周的课程设计练习,对计算机的语言和编程有了一定的了解和掌握,和一定的动手能力。特别明白了凡事要注重细节,细节很重要。稍有不慎程序就会出现错误。比方:少打一个空格或一个逗号或打错一个字母就不能运行。本次课程设计使用了汇编语言中的INT10H,INT21H和INT1CH三个软中断效劳程序。INT10H是BIOS对屏幕及显示器所提供的效劳程序,INT21H是DOSX系统功能的调用。在本次课程设计是,我编写菜单程序和矩形框程序段。从

16、图书管理找了一本书,看了DOS和BIOS的很多指令,也让我收益匪浅。通过本次课程设计,我将我以前学过的一些指令的运用更加的深刻,还有一些以前没学过的指令。对于如何运用masm软件,比在微机原理实验时有了更深的理解。就算一个字母输入错误都会导致最后程序运行不出来,更加锻炼了我的细心和认真。遇到问题时,通过自己上网查资料,查课本,锻炼了自己动手的能力。这也让我越来越深的认识到,不管以后工作还是学习都要仔细认真,查阅资料。学习的过程大体就是:先大体弄懂要学的那些知识,然后是自己进展练习,通过练习发现问题,然后是解决问题,这个自学的过程如此反复,每进展一次锻炼,自己的能力得到一次提升,进而一次次提高自

17、己。实践与理论相结合,才能更好的理解所学知识,今后我将努力将根底知识掌握结实,争取在下一次课程设计中能够改善这次的缺乏,做出更好的设计,提高自己的能力。多多动手,多多练习,理论联系实际,才能真正学会,学懂,学通,融会贯穿。 最后,感指导教师和同组同学,他们在我完成这项课程设计中起到关键的作用,对微机原理这门课程有了更深刻的认识。也正是全组同学的分工合作,全心配合,才能完成这项任务。这次学习的过程也将对我今后的工作和学习起到指导作用。八、参考资料微型计算机原理及应用技术第2版 机械工业九、附源程序初始化程序:CODE SEGMENTASSUME CS:CODE,DS:CODESTART: MOV

18、 AX,CODEMOV DS,AXMOV AX,0B800H;0B800H是文本模式下显存起始地址;;0A000H是图形模式下显存起始地址;;起始地址之后的一段存数据决定了界面上显示的文字、图形、前背风光MOV ES,AXCLDAGAIN: MOV AX,3INT 10H;设置显示器模式为 8025 16色LEA DX,MENU ;MENU文件的主菜单 将MENU的首地址给DXMOV AH,9INT 21H;显示字符串,DS:DX串地址,即MENU,画出方框图INPUT:MOV AH,1INT 21H;从键盘读一字符CMP AL,1;召唤第一步,输入一个字符串JNE CP2 ;结果不为零跳转

19、及ZF=0CALL SUB01 ;输入一个字符串JMP INPUTCP2:CMP AL,2;召唤第二步,字符串左右移动JNZ CP3CALL SUB02 ;字符串左右移动JMP AGAIN ;返回到主菜单CP3:CMP AL,3 ;返回DOSJNZ INPUTLEA DX,MESGMOV AH,9INT 21HMOV AH,1INT 21H;承受字符MOV AH,4CHINT 21H;完毕DELAY PROC PUSH CXPUSH DX;保护现场MOV DX,0100H;第二轮循环次数D1:MOV CX,08FFH;第一轮循环次数 LOOP $ ;假设CX不等于零,跳转至当前代码地址的指令$

20、=该指令在该代码段的偏移地址DEC DXJNZ D1POP DXPOP CX;现场复原RETDELAY ENDPSUB01:MOV AX,02H;0DH为本行开头,02H输出INT 21HMOV DL,0AH;0AH为下一行输出INT 21HLEA DX,STR1;DX输入字符缓冲区首地址MOV AH,0AHINT 21H ;输入一个字符串中断MOV AH,02H;0DH为本行开头,02H输出MOV DL,0DHINT 21HMOV DL,0AH;0AH为下一行输出INT 21H;RETSUB02:CMP STR+1,2;系统键入的字符个数JNB Y2JMP QUITY2:CALL LINE

21、;画矩形框MOV DL,60-2;框长度MOV AL,STR1+1;字符长度SUB DL,ALMOV DH,0;DH清零MOV CNT3,DXMOV BL,ALINC ALSHR AL,1;AL+1/2CBWMOV CNT2,AX;左半边SUB BL,ALMOV BH,0MOV CNT4,BX;右半边MOV BL,41Y3:MOV BP,ESPUSH DSPOP ESMOV DI,1000HMOV CX,CNT1JCXZ U1MOV AL,20HREP STOSBU1:LEA SI,BUF;MOV CX,CNT2;REP MOVSB;MOV CX,CNT3JCXZ U2MOV AL,20HRE

22、P STOSBU2:MOV CX,CNT4REP MOVSBMOV CX,CNT5JCXZ U3MOV AL,20HREP STOSBU3:SHOW:MOV ES,BPINC BL MOV AH,BL;设置形式白底黑字MOV SI,1000HMOV DI,LEFTMOV CX,60-2PPP:LODSBSTOSWLOOP PPPMOV AH,1INT 16HJNZ SSS ;按任意键,返回主菜单CALL DELAYCMP CNT3,0JNZ KK1HERE:MOV AL,1000BXOR BYTE PTR KK1+1,ALXOR BYTE PTR KK1+5,ALXOR BYTE PTR KK

23、1+9,ALXOR BYTE PTR KK2-3,ALKK1:INC CNT1INC CNT5DEC CNT3CMP CNT3,0JZ KK2DEC CNT3KK2:CMP CNT1,0JZ HEREJMP Y3SSS:MOV STR+1,0QUIT: LEA SI,CNT1XOR AX,AXMOV CX,5KK3:MOV SI,AXINC SIINC SILOOP KK3XOR DI,DIMOV CX,80*25MOV AX,720HREP STOSW ;清全屏JMP AGAINLINE: ;矩形框MOV DI,(18*80+10)*2MOV AL,201 ;左上角MOV AH,3;矩形框颜

24、色STOSWMOV CX,60-2MOV AL,* ;横框REP STOSWMOV AL,187 ;右上角STOSWADD DI,20*2MOV AL,| ;竖框STOSWMOV LEFT,DIMOV CX,60-2MOV AL,20H ;空格REP STOSWMOV AL,| ;竖框STOSWADD DI,20*2MOV AL,200 ;左下角STOSWMOV CX,60-2MOV AL,* ;横框REP STOSWMOV AL,188 ;右下角STOSWRETMENU DB 5 DUP(0AH)DB 31 DUP( ),MAIN MENU,0DH,0AHDB 25 DUP( ),201,2

25、1 DUP(205),187,0DH,0AHDB 25 DUP( ),186, 1.INPUT A STRING .,186,0DH,0AHDB 25 DUP( ),186, 2.DISPLAY MODEL . ,186,0DH,0AHDB 25 DUP( ),186, 3.RETURN TO DOS . ,186,0DH,0AHDB 25 DUP( ),200,21 DUP(205),188,0DH,0AHDB 28 DUP( ),CHOICE(1,2,3):$MESG DB 0DH,0AH,0DH,0AH,9,PRESS ANY KEY TO EXIT .$CNT1 DW 0 ;前导空格长度CNT2 DW 0 ;左半字符串长度CNT3 DW 0 ;中间空格长度CNT4 DW 0 ;右半字符串长度CNT5 DW 0;末尾空格长度LEFT DW 0STR DB 21DB 0BUF DB 0DH,20 DUP(0)CODE ENDSEND START教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。- .word.zl

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!