简易动画程序设计汇编课程设计.docx

上传人:b****1 文档编号:13730056 上传时间:2023-06-16 格式:DOCX 页数:23 大小:501.03KB
下载 相关 举报
简易动画程序设计汇编课程设计.docx_第1页
第1页 / 共23页
简易动画程序设计汇编课程设计.docx_第2页
第2页 / 共23页
简易动画程序设计汇编课程设计.docx_第3页
第3页 / 共23页
简易动画程序设计汇编课程设计.docx_第4页
第4页 / 共23页
简易动画程序设计汇编课程设计.docx_第5页
第5页 / 共23页
简易动画程序设计汇编课程设计.docx_第6页
第6页 / 共23页
简易动画程序设计汇编课程设计.docx_第7页
第7页 / 共23页
简易动画程序设计汇编课程设计.docx_第8页
第8页 / 共23页
简易动画程序设计汇编课程设计.docx_第9页
第9页 / 共23页
简易动画程序设计汇编课程设计.docx_第10页
第10页 / 共23页
简易动画程序设计汇编课程设计.docx_第11页
第11页 / 共23页
简易动画程序设计汇编课程设计.docx_第12页
第12页 / 共23页
简易动画程序设计汇编课程设计.docx_第13页
第13页 / 共23页
简易动画程序设计汇编课程设计.docx_第14页
第14页 / 共23页
简易动画程序设计汇编课程设计.docx_第15页
第15页 / 共23页
简易动画程序设计汇编课程设计.docx_第16页
第16页 / 共23页
简易动画程序设计汇编课程设计.docx_第17页
第17页 / 共23页
简易动画程序设计汇编课程设计.docx_第18页
第18页 / 共23页
简易动画程序设计汇编课程设计.docx_第19页
第19页 / 共23页
简易动画程序设计汇编课程设计.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

简易动画程序设计汇编课程设计.docx

《简易动画程序设计汇编课程设计.docx》由会员分享,可在线阅读,更多相关《简易动画程序设计汇编课程设计.docx(23页珍藏版)》请在冰点文库上搜索。

简易动画程序设计汇编课程设计.docx

简易动画程序设计汇编课程设计

目录

1、设计原理···············································································································1

1.1设计要求················································································································1

1.2设计目的················································································································1

1.3设计原理················································································································1

1.3.1DOS功能中的键盘输入··············································································1

1.3.2DOS功能中的屏幕输出············································································1

1.3.3BIOS中的键盘输入·····················································································1

1.3.4BIOS中的屏幕操作功能·············································································1

1.3.5鼠标中断的常用功能····················································································2

1.3.6文本显示方式································································································2

2、课程设计任务·······································································································3

2.1课程设计题目及要求····························································································3

2.1.1题目··············································································································3

2.1.2要求··············································································································3

2.2课程设计任务及工作量的要求············································································4

2.2.1设计任务······································································································4

2.2.2工作量的要求······························································································4

3、设计的程序流程图·······························································································4

3.1鼠标点击进入的流程图························································································4

3.2小女孩头像移动出现的流程图············································································4

3.3小女孩可爱地眨眼的流程图················································································4

3.4总体流程图············································································································4

4、屏幕输出各效果的实现·······················································································4

4.1小女孩头像的实现································································································4

4.2小女孩头像移动出现的实现················································································5

4.3小女孩可爱地眨眼的实现····················································································5

4.4鼠标点击进入动画的实现····················································································6

4.5全部代码················································································································7

5、生成效果及简单流程介绍···················································································7

6、小结与体会···········································································································7

7、参考文献···············································································································8

8、附录1·······················································································································9

9、附录2······················································································································10

 

简易动画程序设计

1、设计原理

1.1设计要求

在学习《微机原理及接口技术》课程的基础上,进一步深入理解以8086为代表的通用微机的结构、工作原理和应用技术,提高微机控制系统的设计、研发能力;按照教学计划的要求,利用一周时间,综合应用所学知识,设计具有一定功能的小型微机测控系统,培养学生一定的自学能力和独立分析问题、解决问题的能力,要求学生能通过独立思考、查阅工具书、参考文献,提出自己的设计方案,找出设计中遇到问题的解决途径。

1.2设计目的

为了提高效率和充分利用机器的性能,人们都喜欢使用汇编语言解决各自面临的问题,尤其是应用中增加一些图形和音乐会使界面更加生动,增加动感,达到赏心悦目的效果,由汇编语言编写的程序可以被其它高级语言很方便地调用,因此倍受软件设计工作者所青睐。

1.3设计原理

1.3.1DOS功能中的键盘输入

键盘输入是一种最常用的输入方式,所以,在DOS操作系统中,提供了能实现各种键盘输入的功能(Windows操作系统中仍然能用)。

INT21H中的相关功能如下:

01H——带回显的键盘输入

06H——控制台的输入/输出:

当DL=0FFH,表示键盘输入

07H——不回显、不过滤的键盘输入

08H——不回显的键盘输入

0AH——键盘输入字符串

0BH——检查键盘输入状态

0CH——清除输入缓冲区的输入功能

1.3.2DOS功能中的屏幕输出

屏幕输出是最常用的一种输出形式,DOS操作系统提供了几种实现屏幕输出的功能调用。

INT21H中的相关功能如下:

02H——显示的字符

06H——控制台的输入/输出:

当DL≠0FFH,表示显示字符

09H——在屏幕上显示一个字符串

1.3.3BIOS中的键盘输入

在BIOS系统中,提供了中断16H来实现键盘输入功能。

其具体的功能如下:

00H、10H——从键盘读一个字符,输入字符不回显

01H、11H——判断键盘缓冲区内是否有字符可读

02H——读取当前键盘状态字

1.3.4BIOS中的屏幕操作功能

BIOS系统提供了中断10H来实现各种屏幕处理功能。

其具体的功能如下:

00H——设置显示器模式

01H——设置光标形状

02H——设置光标位置

03H——读取光标信息

05H——设置显示页

06H、07H——初始化或滚屏(向上滚屏和向下滚屏)

08H——读光标处的字符及其属性

09H——在当前光标处按指定属性显示字符

0AH——在当前光标处显示字符

0CH——写图形象素

0DH——读图形象素

0EH——在Teletype模式下显示字符

0FH——读取显示器模式

10H——颜色

13H——在Teletype模式下显示字符串

1.3.5鼠标中断的常用功能

BIOS系统提供了中断33H来实现鼠标中断功能,其常用的功能如下:

00H—初始化鼠标

01H—显示鼠标指针

02H—隐藏鼠标指针

03H—读取鼠标位置及其按钮状态

04H—设置鼠标指针位置

05H—读取鼠标按键信息

06H—读取鼠标按钮释放信息

07H—设置鼠标水平边界

08H—设置鼠标垂直边界

09H—设置图形鼠标形状

0AH—设置本文鼠标形状

0BH—读取鼠标移动计数

0CH—为鼠标事件设置处理程序

0FH—设置鼠标计数与象素比

10H—设置鼠标指针隐藏区域

14H—替换鼠标事件中断

18H—为鼠标事件设置替换处理程序

19H—读取替换处理程序的地址

1DH—为鼠标指针选择显示页

1EH—读取鼠标指针的显示页

1.3.6文本显示方式

文本显示方式是指以字符为最小单位的显示方式,每个字符都是以矩形块形式显示的。

在BIOSROM中存有多种不同大小的字符集,主要的显示字符集大小为:

8×8(标准)、8×14和8×16等。

在常用的文本显示模式(模式3)下,屏幕被划分成25行,每行可显示80个字符,所以,每屏最多可显示2000(80×25)个字符。

为了便于标识屏幕上的每个显示位置,我们就用其所在行和列来表示之,并规定:

屏幕的左上角坐标为(0,0),右下角坐标为(24,79)。

在显示字符时,用一个字节存储该字符的ASCII码,用另一个字节存储的显示属性,即:

显示颜色。

彩色显示器的字符显示属性定义如图1所示,有关颜色值的定义,请参阅下表1。

图1字符显示属性的定义

存储内容与显示位置的对应关系如图2所示。

图2存储内容与显示位置的对应关系示意图

表1彩色显示器的显示属性表

由上面的叙述可知:

在80×25的文本显示模式下,满屏可显示2000个字符,也就需要4000个字节来存储一屏的显示信息。

2、课程设计任务

2.1课程设计题目及要求

2.1.1题目

简易动画程序设计

2.1.2要求

(1)利用BIOS系统功能调用,进行简单的动画设计;

(2)利用BIOS系统功能中的10H、21H、33H、16H中断功能,进行简单的动画设计,并根据以下出现文字进行鼠标点击进行选择:

1:

SHIFT(小女孩头像移动出现)。

0:

CUTE(小女孩可爱地眨眼)。

(3)基本任务为必做项目,附加任务为选做项目;

(4)对课程设计进行总结,撰写课程设计报告。

2.2课程设计任务及工作量的要求

2.2.1设计任务

(1)基本任务:

利用BIOS系统功能中的10H、21H、33H、16H中断功能,实现“小女孩头像移动出现”或“小女孩可爱地眨眼”的任意一种动画显示。

(2)附加任务:

能够通过屏幕显示以下提示信息:

1:

SHIFT(小女孩头像移动出现)。

0:

CUTE(小女孩可爱地眨眼)。

能够通过鼠标点击做出选择,并实现相应动画图案的显示。

能够点击Esc按键退出屏幕。

2.2.2工作量要求

(1)设计的程序流程图;

(2)汇编语言源程序代码;

(3)系统运行结果符合课程设计要求。

3、设计的程序流程图

3.1鼠标点击进入的流程图

3.2小女孩头像移动出现的流程图

3.3小女孩可爱地眨眼的流程图

图3鼠标点击进入

图4小女孩头像移动出现

图5小女孩可爱地眨眼

 

3.4总体流程图

见附录1。

4、屏幕输出各效果的实现

4.1小女孩头像的实现

由于在80×25的文本显示模式下,满屏可显示2000个字符,也就需要4000个字节来存储一屏的显示信息。

于是可在记事本中将小女孩头像用2000个字符输出,如图3,图4所示。

而后将每个字符后分别加入显示颜色属性,将小女孩头像处的字符属性设置为"M",70H(白底黑字),将小女孩头像外的字符属性设置为".",77H(白底白字即隐藏)。

将睁眼的4000个字节存储在BUFF1中,将闭眼的4000个字节存储在BUFF3中。

BUFF1DB".",77H,".",77H,".",77H……70H,"#"……".",77H

BUFF3DB".",77H,".",77H,".",77H……70H,"#"……".",77H

图6小女孩睁眼图7小女孩闭眼

4.2小女孩头像移动出现的实现

C2:

MOVDL,0;显示位置从(0,0)开始

AGAIN1:

MOVBH,0;BH=页码

MOVCX,2000;CX=显示字符串长度

MOVDH,0

LEABP,BUFF1;ES:

BP=显示字符串的地址

MOVAL,2;AL=2——字符串中含显示字符和显示属性。

显示后,光标位置不变

MOVAH,13H

INT10H;调用中断10H之功能13H,在Teletype模式下显示字符串

CALLDELAY

ADDSI,1

MOVDX,SI

MOVAH,1

INT16H;检查是否有按键

JZAGAIN1;若无字符可读,则继续循环

MOVAH,0

INT16H

CMPAL,KBEsc

JNZAGAIN1;若按键不是Escape,则继续循环

JMPC4

4.3小女孩可爱地眨眼的实现

C3:

NOP

again:

MOVBH,0;BH=页码

MOVCX,2000;CX=显示字符串长度

MOVDH,0

MOVDL,1;显示位置从(0,0)开始

LEABP,BUFF1;ES:

BP=显示字符串的地址

MOVAL,2;AL=2——字符串中含显示字符和显示属性。

显示后,光标位置不变

MOVAH,13H

INT10H;调用中断10H之功能13H,在Teletype模式下显示字符串

CALLDELAY

MOVDH,0

MOVDL,1;显示位置从(0,0)开始

MOVBH,0;BH=页码

MOVCX,2000;CX=显示字符串长度

LEABP,BUFF3;ES:

BP=显示字符串的地址

MOVAL,2;AL=2——字符串中含显示字符和显示属性。

显示后,光标位置不变

MOVAH,13H

INT10H;调用中断10H之功能13H,在Teletype模式下显示字符串

CALLDELAY

CALLClear;清屏幕

MOVAH,1

INT16H;检查是否有按键

JZagain;若无字符可读,则继续循环

MOVAH,0

INT16H

CMPAL,KBEsc

JNZagain;若按键不是Escape,则继续循环

JMPC4

4.4鼠标点击进入动画的实现

首先将要输出的字符串存储起来如下所示:

XDB"PLEASECHOSE"SHIFT"OR"CUTE"!

$"

YDB"1:

SHIFT$"

ZDB"0:

CUTE$"

C1主要功能就是实现鼠标点击效果,将“1:

SHIFT”和“0:

CUTE”的坐标找到,用33H鼠标中断获得鼠标所在的坐标值存在CX,DX中,规定鼠标点击的范围即可在点击到此范围内时进行跳转,实现鼠标点击效果。

C1:

MOVAX,01H;显示鼠标

INT33H

CALLClear;清屏幕

MOVAH,9

MOVDX,OFFSETX

INT21H

MOVAH,9

MOVDX,OFFSETY

INT21H

MOVAH,9

MOVDX,OFFSETZ

INT21H

MOVCX,0

MOVDX,0

ANXIA:

MOVAX,03H;等待鼠标左键按下

INT33H

CMPBX,1

JNZANXIA

CMPCX,200

JLANXIA

CMPCX,250

JGANXIA

CMPDX,0

JLANXIA

CMPDX,10

JGK1

JMPC2

K1:

CMPDX,20

JGANXIA

JMPC3

MOVAX,02H

INT33H;隐藏鼠标指针

 

4.5全部代码

见附录2。

5、生成效果及简单流程介绍

(1)点击后缀名为.exe的生成文件,如图8所示的登陆选择界面。

图8所示的登陆选择界面

(2)用鼠标点击想要呈现的动画,若点击“1:

SHIFT”,进入小女孩头像移动出现的动画界面,如图9所示。

图9小女孩头像移动出现的动画界面

(3)若想退出,点击Esc可退出动画,关闭.exe文件。

(4)用鼠标点击想要呈现的动画,若点击“0:

CUTE”,进入小女孩可爱地眨眼的动画界面,如图10所示。

图10小女孩可爱地眨眼的动画界面

(5)若想退出,点击Esc可退出动画,关闭.exe文件。

6、小结与体会

这次课程设计老师允许自由定题,在课程设计开始的前一周,由于怀着对汇编很浓的兴趣,于是我提前开始试着编写了十个评委的计分器。

当编写完那会,课程设计的大部分内容本该结束了。

但是由于从一开始就听说有INT10H中断,一直怀有很大的兴趣,于是又开始研究。

所以我这次的课程设计是小女孩的头像移动和可爱的眨眼动画。

由于在课程设计周开始前我已经将大部分内容完成,所以在真正开始的时候,我又按照老师提的要求加了INT33H的鼠标中断,实现鼠标点击选择的功能。

虽然,前面的准备工作大多在晚上熬夜完成,很累,但是我也很开心。

当真正自己动手去实现自己原本以为完成不了的任务的时候,那份激动和喜悦是无法言语的。

当从不懂到硬着头皮来到一点点慢慢领悟,这样的过程也许以后我也会经常地遇到,希望自己也能像这次的课程设计一样勇敢地迈出第一步,在过程中一步步将问题解决,不急不躁。

7、参考文献

[1]陆红伟,微机原理实验与课程设计指导书,北京:

中国电力出版社,2006。

[2]戴梅萼等,微型计算机技术及应用(第4版),北京:

清华大学出版社,2008。

[3]杨季文等,80×86汇编语言程序设计教程,北京:

清华大学出版社,1998。

[4]周明德等,80×86的结构与汇编语言程序设计,北京:

清华大学出版社,1993。

[5]王爱英主编,计算机组成与结构,北京:

清华大学出版社,1995。

[6]PeterAbel,IBMPCAssemblyLanguageandProgramming(FourthEdition),北京:

清华大学出版社,1998。

 

8、附录1

图11总体流程图

9、附录2

.MODELSMALL,C

DATASEGMENT

KBEscEQU1BH

XDB"PLEASECHOSE"SHIFT"OR"CUTE"!

$"

YDB"1:

SHIFT$"

ZDB"0:

CUTE$"

BUFF1DB".",77H,".",77H,".",77H……70H,"#"……".",77H

BUFF3DB".",77H,".",77H,".",77H……70H,"#"……".",77H

DATAENDS

CODESEGMENT

.STARTUP

CALLClear;清屏幕

MOVAX,DS

MOVES,AX

C1:

MOVAX,01H;显示鼠标指针

INT33H

CALLClear;清屏幕

MOVAH,9

MOVDX,OFFSETX

INT21H

MOVAH,9

MOVDX,OFFSETY

INT21H

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2