- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机设计汽车小鸟动画
郑州航空工业管理学院
微机原理课程设计说明书
2007 级
电气工程及其自动化 专业
0706072 班级
题 目 汽车小鸟动画摘要:
随着计算机的快速发展,用汇编语言来实现动画更简单,直接和便捷,它的目标代码简短,占用内存较少,执行速度较快,是高效的程序设计语言。本文主要对汽车小鸟动画进行程序设计,并通过masm软件进行运行,通过输入不同的数字对程序的控制,采用段内调用子程序的方法来实现,使用了堆栈技术和中断技术,来实现按下数字1,小鸟飞过,按2,汽车开过,按3,退出程序,同时对汇编语言的基本原理解析。
本程序可在windows 2000,windows xp上运行。所需要的工具软件为MASM2.0及以上版本,先生成.asm文件,再生成.exe的文件,然后运行。
关键词:汽车小鸟动画,masm软件,中断技术,堆栈,子程序调用
一、汽车小鸟动画的基本原理
此程序主要是利用BIOS功能调用的10H中断类型实现的。先利用其功能设置显示方式为320*200彩色图形方式,由于程序中没有做好的汽车小鸟图形,需要先编写小鸟和汽车的字符图形的子程序,采用段内调用子程序的方法来实现,使用了堆栈技术。设计两个画面,按1,小鸟飞过,按2,汽车开过,按3,退出程序。
二、设计方案
根据基本原理设计思路拟定出设计方案。先编写好小鸟和汽车的图形显示的子程序,以供之后段内调用子程序。之后再编写小鸟飞过的子程序和汽车开过的子程序,利用转移指令,调用子程序以及中断程序和堆栈等功能来实现设计的功能。
三、软件设计
3.1汽车小鸟动画总体结构图
程序流程图如下图所示
3.2 编写汽车小鸟图形的子程序
BIRD?? DB 76H,10,0,0????????????? ;小鸟的字符图形表?????? DB 0C4H,07,0,1?????? DB 76H,10,-2,2?????? DB 0C4H,07,0,1?????? DB 76H,10,-2,2?????? DB 0C4H,07,0,1?????? DB 76H,10,-2,2?????? DB 0C4H,07,0,1?????? DB 76H,10,2,-2?????? DB 0C4H,07,0,1?????? DB 76H,10,2,-2?????? DB 0C4H,07,0,1?????? DB 76H,10,2,-2?????? DB 0C4H,07,0,1CAR??? DB 7?????????????????? ;汽车的字符图形表?????? DB 52H,7,0,0?????? DB 0B1H,7,0,1?????? DB 0DBH,7,0,1?????? DB 0DBH,7,0,1?????? DB 4FH,7,1,0?????? DB 4FH,7,0,-3?????? DB 2,7,-2,13.3编写小鸟飞过和汽车开过的子程序
(1)小鸟飞过的子程序:
DISP:? CMP DL,80?????? JAE exit1?????? MOV AH,2?????????????? ;设置光标位置?????? INT 10H?????? MOV AH,9?????????????? ;显示小鸟字符图形?????? MOV AL,[DI]?????? MOV BL,[DI+1]?????? INT 10H?????? CALL DLY?????????????? ;延时?????? MOV AH,9?????? MOV AL, ?????? MOV BL,04?????? INT 10H?????? INC DL?????? ADD DI,2?????? DEC SI?????? JNZ DISP?????? JMP BEGINexit1: RET(2)汽车开过的子程序
QICHE? PROC near????????????? ;汽车子程序 ?????? PUSH AX?????? PUSH BX?????? PUSH CX?????? PUSH DX???? ?????? MOV AH,0?????? MOV AL,4?????? INT 10H?????? MOV AH,0BH??????????? ;设置彩色组颜色为绿、红、黄?????? MOV BH,01?????? MOV BL,00?????? INT 10H?????? CLEAR 0,0,24,79,7???? ;清屏宏调用?????? LEA DI,CAR??????????? ;DI指向字符图形表?????
文档评论(0)