2022年2022年汇编语言动画程序设计 .pdf
《2022年2022年汇编语言动画程序设计 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年汇编语言动画程序设计 .pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、武汉理工大学汇编语言程序设计课程设计说明书1 目录1设计目的、内容、时间安排 2 1.1 设计目的: 21.2 设计内容: 21.3 时间安排: 2 2设计环境与与工具 2 3程序设计算法说明、流程图 2 31 主程序 main proc far 3 32 MOVE 控制汽车和机器人运动的子程序 4 33 DISP 输出图形子程序 6 34 car_disp,man_disp 子程序 6 35 car_clear,man_clear 子程序 7 36 三个宏定义 7 36.1 clear_car,clear_man 7 36.2 DLY 宏定义延时程序 8 4运行结果记录 8 5设计结果分析测
2、试、分析 9 6参考文献及其他 9 源代码 10 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 21 页 - - - - - - - - - 武汉理工大学汇编语言程序设计课程设计说明书2 1设计目的、内容、时间安排1.1 设计目的:通过该课程设计,熟悉计算机体系结构,DOS 操作系统的功能调用及 BIOS 的功能调用。进一步了解汇编语言控制计算机硬件的方法,提高应用汇编语言编程的能力。1.2 设计内容:动画程序设计。 自由选择至少两个运动物体 (机器人和汽车) 在屏幕上
3、运动,可以通过键盘分别控制运动(机器人通过方向键控制方向,汽车通过W,A,S,D控制方向),整个程序包括人机界面控制台和运动中动画的暂停(空格键控制),开始( ENTER 键控制) ,退出( ESC键控制) ,运动加减速动作(“+”控制逐级加速、 “”控制逐级减速)。1.3 时间安排:课程设计时间为 19 周一周。周一周二理解题目查资料, 画出主要程序框图;周三周四编写程序, 细化各部分功能, 调试运行程序; 周五按要求撰写课程设计报告。2设计环境与与工具DOS 操作系统、文本编辑器,MASM.EXE,LINK,EXE、DEBUG.EXE 3程序设计算法说明、流程图本程序定义了两个图表(汽车和
4、机器人),八个坐标变量(汽车清图坐标car_row0 car_col0 汽车画图坐标 car_row1 car_col1 机器人清图坐标 man_row0 man_col0 机器人画图坐标man_row1man_col1) ,用于控制汽车和机器人清图和画图的坐标,从而实现汽车和机器人的运动及键盘控制,逻辑图如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 21 页 - - - - - - - - - 武汉理工大学汇编语言程序设计课程设计说明书3 本程序由一个主程序和六
5、个子程序组成,具体设计算法说明和流程图见下:31 主程序 main proc far 程 序 开 始 , 设 置 显 示 方 式 为 80X25 16 色 图 形 方 式 和 提 示 信 息 :(SPACE-PAUSE,ENTER-BEGAIN,ESC-EXIT,SPEEDUP-+,SLOWDOWN- -) (CAR:UP-W,DOWN-S,LEFT-A,RIGHT-D MAN:UP-8,DOWN-2,LEFT-4,RIGHT-6) 空格暂停,回车开始, ESC退出, “+”按一次速度加快一级, “”按一次速度减慢一级 ,WASD控制汽车的上左下右移动,方向键控制机器人的运动方向,调用car_
6、disp和 man_disp 子程序设置开始图形, 起始坐标在数据定义时已给出,然后调用 MOVE 子程序控制汽车和机器人的运动,实现动画,主程序结束。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 21 页 - - - - - - - - - 武汉理工大学汇编语言程序设计课程设计说明书4 32 MOVE控制汽车和机器人运动的子程序MOVE 子程序是整个程序的核心,通过键盘操作控制汽车和机器人的运动,首先检测键盘, 若无键盘操作, 调用延时子程序, 控制加速和减速, 汽车
7、列加一,机器人列减一,重复操作,实现自动运动;若有键盘响应,则通过比较键盘扫描码来确定执行何种操作,空格暂停,回车开始,ESC 退出, “+”按一次速度加快一级, “”按一次速度减慢一级,WASD控制汽车的上左下右移动,方向键控制机器人的运动方向。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 21 页 - - - - - - - - - 武汉理工大学汇编语言程序设计课程设计说明书5 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
8、 - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 21 页 - - - - - - - - - 武汉理工大学汇编语言程序设计课程设计说明书6 33 DISP 输出图形子程序该程序的主要功能是根据定义的图形表画出图形,过程如下:34 car_disp,man_disp 汽车和机器人画图子程序 car_disp,man_disp 子程序主要用于设置屏幕边界,显示图形以及设置坐标。以汽车为例: SI 指向汽车图形表的第一个字符,当行数(car_row1 )大于20,跳到第 4 行,行数( car_row1)小于 4,跳到第 20 行列数( car_col1 )小于
9、3,跳到第 70 列,列数 car_col1 )大于 70,跳到第 3 列,实现边界设置,再将 row1 赋给 row0,col1 赋给 col0 ,即把现在的坐标保留,作为下次清屏的坐标,然后把 car_row1 赋给 dh,car_col1赋给 dl ,调用 DISP画出汽车图形。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 21 页 - - - - - - - - - 武汉理工大学汇编语言程序设计课程设计说明书7 35 car_clear,man_clear 汽车
10、和机器人清图子程序如:car_clear proc near ;汽车清图子程序 clear_car car_row0,car_col0 ;调用汽车清图宏 ret ;返回car_clear endp 该程序的主要功能就是调用宏来清图。因为子程序不能传递参数,所以选择用宏定义来实现参数(坐标)的传递,但是宏展开使得代码很长,而且该子程序调用频繁,以致超过条件转移的范围,系统报错,用子程序就可以解决。36 三个宏定义36.1 clear_car,clear_man clear_car ,clear_man 主要用于清除汽车和机器人的图。调用BIOS INT 10H 6 号功能,实现屏幕初始化和上卷,
11、CH/CL= 左上角行 / 列号, DH/DL= 右上角行/ 列号, BH= 卷入行属性,可将颜色设置为黑色与背景色相同,从而实现清图的效果。以汽车为例: clear_car macro row,col ;宏定义汽车清图push bx MOV AX,0600H MOV Ch,row dec ch,1 mov cl,col mov dh,ch mov dl,cl add dh,3 add dl,4 MOV BH,7 ; 颜色设置为黑色 INT 10H pop bx endm 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心
12、整理 - - - - - - - 第 7 页,共 21 页 - - - - - - - - - 武汉理工大学汇编语言程序设计课程设计说明书8 36.2 DLY 宏定义延时程序主要功能使控制延时,我采用的是控制空制令执行的条数来控制延时的长短,从而实现加速和减速。 通过宏定义来实现参数 (dlay1 )的传递,用“+” “”来改变 dlay1 的值,控制延时。DLY macro dlay1 ;宏定义延时程序 PUSH CX PUSH DX MOV DX,dlay1 DL1: MOV CX,6801 DL2: ;空指令LOOP DL2 DEC DX JNZ DL1 POP DX POP CX en
13、dm 4运行结果记录显示主菜单提示信息:(SPACE-PAUSE,ENTER-BEGAIN,ESC-EXIT,SPEEDUP-+,SLOWDOWN- -) (CAR:UP-W,DOWN-S,LEFT-A,RIGHT-D MAN:UP-8,DOWN-2,LEFT-4,RIGHT-6) 按 SPACE 键,汽车和机器人暂停;按 ENTER 键,汽车和机器人重新开始运动;按 W 、A、S、D键,汽车上左下右移动;按方向键,机器人上下左右移动;按“+”键,运动速度加快一级;按“”键,运动速度减慢一级;按 ESC ,程序结束,返回DOS 名师资料总结 - - -精品资料欢迎下载 - - - - - -
14、- - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 21 页 - - - - - - - - - 武汉理工大学汇编语言程序设计课程设计说明书9 5设计结果测试、分析与结论设计中要求用键盘分别控制至少两个物体(汽车和机器人) 的运动,整个程序应该包括人机界面控制台和运动中动画的暂停,开始,退出,运动加减速动作。所有功能都能实现,实验结果完全符合任务书的要求。小结:选题的时候我以为动画程序的实现应该使非常容易实现的,就是不停的清屏,重新在下一个位置画图,从而实现动画。但通过本次课程设计,我才真正懂得了动画的实现其实没有我想象的那么简单。刚开始我
15、做了一个图形, 继而由一个图形做成两个, 在这个过程中我碰到了很多难题,比如如何画图, 如何实现图形的运动, 如何在一个屏幕上显示两个图形,如何分别控制两个图形的运动,为了解决这些问题我试了很多方法,最后我选择了坐标控制运动, 局部清屏,我觉得这是我能想到的最好的方法了,虽然做的过程很累, 整天都在想问题的解决方法,但当你解决一个问题之后, 那种感觉真的很享受, 当整个程序完成的时候我很兴奋。通过这个课程设计,也让我熟悉了很多以前都不熟悉的一些指令,也让我更加了解了汇编程序的结构和流程,对编程也有了更深的体会。6参考文献及其他1 沈美明 , 温冬婵, “IBM-PC汇编语言程序设计” , 清华
16、大学出版社 ,2001. 2 沈美明 , 温冬婵, 张赤红, “IBM-PC汇编语言程序设计实验教程”名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 21 页 - - - - - - - - - 武汉理工大学汇编语言程序设计课程设计说明书10 另附源代码:data segment ;定义数据段CAR0 DB 7 ;汽车的字符图形表DB 0DBH,1,0,0 DB 0DBH,1,0,1 DB 0DBH,7,0,1 DB 0DBH,7,0,1 DB 4FH,6,1,0 DB
17、4FH,6,0,-3 DB 2,6,-2,1 MANU DB 11 ;机器人的图形表DB 0DBH,09H,0,0 DB 0DBH,09H,0,1 DB 0DBH,09H,0,1 DB 0DBH,09H,0,1 DB 0DBH,09H,0,1 DB 02H,09H,-1,-2 DB 03H,0CH,2,0 DB 0DBH,09H,1,-1 DB 0DBH,09H,0,2 DB 0DBH,09H,1,-3 DB 0DBH,09H,0,4 car_row0 db 10 ;汽车清图坐标car_col0 db 10 car_row1 db 10 ;汽车画图坐标car_col1 db 10 man_ro
18、w0 db 15 ;机器人清图坐标man_col0 db 60 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 21 页 - - - - - - - - - 武汉理工大学汇编语言程序设计课程设计说明书11 man_row1 db 15 ;机器人画图坐标man_col1 db 60 dlay1 dw 10000 ;控制延时变量,即控制速度的变量INFO1 DB 0DH,0AH, (SPACE-PAUSE,ENTER-BEGAIN,ESC-EXIT,SPEEDUP- +,S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年汇编语言动画程序设计 2022 汇编语言 动画 程序设计
限制150内