可爱小动画汇编程序设计(编辑修改稿)内容摘要:

进栈,接着设置 dx 寄存器的初值为 2500,利用 利用 BIOS 功能调用的 12号功能设置 cx的初值为 2801,利用其 13号功能使之循环。 在进行循环次数计数(即 dx→ dx1)后,判断循环是否结束:如( dx)≠ 0,继续循环,转移到目标地址 dl2 所在的指令,否则顺序执行。 然后 dx, cx 顺序出栈。 最后返回。 其具体流程图如图 42所示: 图 42 延时子程序流程图 延时子程序代码段如下: DELAY PROC NEAR。 延时子程序 PUSH CX PUSH DX MOV DX,2500 DL2: 武汉理工大学《微机原理与接口技术》课程设计说明书 10 MOV CX,2801 DL3: LOOP DL3 DEC DX JNZ DL2 POP DX POP CX RET DELAY ENDP ( 3)清屏子程序 先设置功能号 al 及寄存器 bx, cx, dx 的初值,然后 进入 line 循环程序。 在 line 循环程序中,先清除缓冲区并请求指定的输入功能,接着利用 BIOS 功能调用的 10H 中断类型实现显示器输出控制。 在进行循环次数计数(即 cx→ cx+1)后,判断循环是否结束:如( cx)≠ 320,则继续循环,转移到目标地址 line 所在的指令,否则再设置寄存器 cx 的初值,在进行循环次数计数( dx← dx+1)后,判断循环是否结束:如( dx)≠ 200,则继续循环,转移到目标地址 line 所在的指令,否则顺序执行。 最后返回。 其具体流程图如图 43 所示: 图 43 清屏子程序流程图 武汉理工大学《微机原理与接口技术》课程设计说明书 11 清屏子程序代码段如下: CLEAR PROC NEAR MOV AL,0 MOV BX,0 MOV CX,0 MOV DX,0 LINE: MOV AH,0CH INT 10H INC CX CMP CX,320 JNE LINE MOV CX,0 INC DX CMP DX,200 JNE LINE RET CLEAR ENDP 由于本程序需要使用 BIOS,而目前的主流操作系统 win7 无法兼容,所以只好在 xp 系统上本程序,具体运行效果图见附录 1。 在运行过程中,首先出现提示语,然后按下任意一按键,动画开始,可以看见一个大矩形非常圆滑的逐渐变为小矩形,最后小矩形消失出现一个红色心形。 此时按下 R 键动画重新播放,按下 Q键程序退出。 经验证,本程序运行正常,基本达到要求。 武汉理工大学《微机原理与接口技术》课程设计说明书 12 在本次课程设计中,大部分都是运用的都是微机原理设计与接口技术中所涉及到的汇编知识,但是由于设计需要使用 BIOS 中断知识,在学习新的知识以及使用的过程中遇到了很大的问题,但是经过不断的调试,还是解决了大部分困难,成功将程序调试出来了。 通过本次的课程设计我对汇编语言有了更好的 认识,提高了自己的能力,虽然本次的课程设计综合度较高,没有涉及硬件,但实施起 来还是给了我们很大的难度。 在调试过程中,出现了红心一直出现的情况,后经检查发现显示字符子程序没有以 RET 结尾,导致显示错误,经改正解决问题。 在本次课程设计中,收获颇多。 武汉理工大学《微机原理与接口技术》课程设计说明书 13 参考文献 [1] 李珍香,刘红梅,赵润林,汇编语言课程设计案例精编 [M],北京,中国水利水电出版社, 20xx, 4 [2] 周佩玲、彭虎、傅忠谦,微机原理与接口技术 .北京,电子工业出版社, [3] 陆忠华,汇编语言课程设计 [M],北京,科学出版社, 1993 [4] 马维华,微机原理与接口技术,北京,科学出版社, 20xx [5] 马瑞芳,王会燃,微机原理与接口技术要点与分析,西安,西安交通大学出版社, 20xx [6]沈美明 《 IBMPC 汇编语言及程序设计实验教程》 .清华大学出版社 , 20xx [7]郑初华主编《 汇编语言、微机原理及接口技术 》 .北京, 电子工业出版社出版社, 武汉理工大学《微机原理与接口技术》课程设计说明书 14 附录 1 运行效果图 图 1 初始画面 图 2 运行中的画面(大矩形) 武汉理工大学《微机原理与接口技术》课程设计说明书 15 图 3 运行中的画面(小矩形) 图 4 最后出现的心形图案 武汉理工大学《微机原理与接口技术》课程设计说明书 16 附录 2 程序源代码 DATA SEGMENT FULL DB 0 BUFF1 DB 39。 HELLO! 39。 DB 39。 IT IS LIUBIWEI PROGRAMMING!39。 DB39。 STUDENTNUM:012121135061439。 DB 39。 *****PLEASE PRESS ANY KEY*****$39。 BUFF2 DB 39。 *****PLEASE R TO AGAIN*****39。 DB 39。 ***** PLEASE Q TO QUIT *****$39。 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MAIN PROC FAR MOV AX,DATA MOV DS,AX MOV AH,0。 设置显示方式为 320*200 彩色图形方式 MOV AL,04H INT 10H MOV AH,0BH。 利用 BIOS 调用的 10H 中断类型 11 号功能设定背景色 MOV BH,0 MOV BL,9。 通过 (BL)的赋值 015 设定颜色,此为蓝色 INT 10H MOV AH,0BH。 设置彩色组 MOV BH,1 MOV BL,2 INT 10H MOV DX,OFFSET BUFF1。 显示提示信息 MOV AH,09 武汉理工大学《微机原理与接口技术》课程设计说明书 17 INT 21H MOV AH,08。 从键盘输入 1个字符,但不送显示器显示 INT 21H SSS1: CALL CLEAR。 清屏 CALL TEXT。 显示文本 MOV DI,0 MOV AL,1。 画大矩形 MOV CX,70。 显示点所在列号 MOV DX,20。 显示点所在行号 MOV BX,160。 确定矩形大小 CALL BOX。 调用画方矩形程序 MOV AL,0 CALL BOX MOV CX,71。 画矩形移动轨迹,使矩形变化看上去是移动的 MOV DX,21 MOV BX,158 AGAIN:。 由大到小画轨迹矩形 MOV AL,1 MOV DI,0 CALL BOX CALL DELAY CALL DELAY MOV AL,0 MOV DI,0 CALL BOX INC CX。 每次轨迹图的行号和列号是自加 1,轨迹图是由大变小 INC DX SUB BX,2。 设定每次轨迹图大小减小的程度。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。