微机原理课设动画心Word文档下载推荐.docx

上传人:b****1 文档编号:4494178 上传时间:2023-05-03 格式:DOCX 页数:34 大小:263.65KB
下载 相关 举报
微机原理课设动画心Word文档下载推荐.docx_第1页
第1页 / 共34页
微机原理课设动画心Word文档下载推荐.docx_第2页
第2页 / 共34页
微机原理课设动画心Word文档下载推荐.docx_第3页
第3页 / 共34页
微机原理课设动画心Word文档下载推荐.docx_第4页
第4页 / 共34页
微机原理课设动画心Word文档下载推荐.docx_第5页
第5页 / 共34页
微机原理课设动画心Word文档下载推荐.docx_第6页
第6页 / 共34页
微机原理课设动画心Word文档下载推荐.docx_第7页
第7页 / 共34页
微机原理课设动画心Word文档下载推荐.docx_第8页
第8页 / 共34页
微机原理课设动画心Word文档下载推荐.docx_第9页
第9页 / 共34页
微机原理课设动画心Word文档下载推荐.docx_第10页
第10页 / 共34页
微机原理课设动画心Word文档下载推荐.docx_第11页
第11页 / 共34页
微机原理课设动画心Word文档下载推荐.docx_第12页
第12页 / 共34页
微机原理课设动画心Word文档下载推荐.docx_第13页
第13页 / 共34页
微机原理课设动画心Word文档下载推荐.docx_第14页
第14页 / 共34页
微机原理课设动画心Word文档下载推荐.docx_第15页
第15页 / 共34页
微机原理课设动画心Word文档下载推荐.docx_第16页
第16页 / 共34页
微机原理课设动画心Word文档下载推荐.docx_第17页
第17页 / 共34页
微机原理课设动画心Word文档下载推荐.docx_第18页
第18页 / 共34页
微机原理课设动画心Word文档下载推荐.docx_第19页
第19页 / 共34页
微机原理课设动画心Word文档下载推荐.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理课设动画心Word文档下载推荐.docx

《微机原理课设动画心Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理课设动画心Word文档下载推荐.docx(34页珍藏版)》请在冰点文库上搜索。

微机原理课设动画心Word文档下载推荐.docx

(3)按回车键将重复整个图形;

(4)按q键退出程序;

2程序设计思想

2.1汇编程序设计过程

一般汇编语言设计总过程流程图如下图1所示:

汇编语言程序设计要求综合以前所学知识,根据设计具体要求分析问题,将问题分解成一个一个的步骤,每步用汇编语言中的指令性语句,按先后顺序表达,设计一个不仅要满足要求,能正常运行,实现指定功能的程序;

还应满足结构化、简明、易读、易调试、易维护、执行速度快、占用存储空间尽量少的好程序。

2.2本程序设计基本思路

本程序主要是利用BIOS功能调用的10H中断类型实现的。

利用其12号功能,设置像素的颜色、坐标和个数,从而画出图形需要的线段,如画方框、画对角线、画水平垂直线,以及采用行、列坐标连续写像素的方法填充图形等。

画完图形之后延时,清屏。

同时,利用DOS系统功能调用的08号功能,从键盘输入字符。

如果是任意键,则进入图形显示;

如果是空格键,则改变“心”的大小;

如果是其它键,则重新显示整个图形;

如果是“q”键,则退出。

3设计方案及程序流程图

3.1设计方案

用基本设计思路拟订出原方案。

先分别编写画方框、画对角线、画水平垂直线,画斜线,画心型;

以及清屏、清除心型、延时和显示文本信息的子程序。

然后,通过编写主程序调用这些子程序来实现设计的要求。

3.2方案比较及选取

该课设可以使用点阵法以及坐标法,然而,在考虑使用点阵法的时候发现图案比较复杂,使用点阵法也较为复杂,甚至无法成功完成课设要求,所以,我选择了坐标法,然而,使用坐标法的时候发现,程序依然很复杂,但是没有其他办法了,只有通过坐标法了,在不断的翻阅书籍以及上网查看相关案例,总算完成了程序。

3.3动画心程序流程图

由设计方案画出动画心程序流程图如图2所示:

4程序源代码与运行结果

4.1程序源代码

程序源代码见附录。

4.2程序运行结果

用编辑器输入编好的程序源代码转换成目标文件,再将目标文件连接生成可执行文件并运行该程序,得出程序运行结果。

图3为形成可执行文件

图3形成可执行文件

图4运行结果图——步骤一

图5运行结果图——步骤二

图6运行结果图——完整动画心图

5调试记录与分析

原程序调试过程:

根据设计原理先分别编写出画方框、画对角线、画水平垂直线,画斜线,画心型;

以及清屏、清除心型、延时和显示文本信息的子程序;

然后通过主程序调用每个子程序编写成可实现设计要求的完整程序。

在第一次运行程序时提示警告,没有定义堆栈段。

图7第一次运行的错误提示

经过查询资料得知,如果未使用堆栈则不需要定义堆栈段,该警告可以不管。

6附录

完整程序源代码:

DATASEGMENT

FULLDB0

BUFF1DB'

WELCOMEYOUTORUNTHISPROGRAMME!

'

DB'

'

*****PLEASEPRESSANYKEY*****$'

BUFF2DB'

MYHEARTBEATSWITHYOURS!

*****PLEASEqTOQUIT*****$'

DATAENDS

CODESEGMENT

MAINPROCFAR

ASSUMECS:

CODE,DS:

DATA

START:

PUSHDS

SUBAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVAH,00

MOVAL,04

INT10H

MOVAH,0BH

MOVBH,00

MOVBL,1

MOVBH,1

MOVBL,2

MOVDX,OFFSETBUFF1;

显示提示信息

MOVAH,09

INT21H

MOVAH,08

CALLCLEAR;

清除屏幕上的信息

SSS:

CALLTEXT;

显示测试

MOVDI,2

MOVAL,1;

画大方框

MOVCX,70

MOVDX,20

MOVBX,160

CALLBOX

MOVCX,71

MOVDX,21

MOVBX,158

AGAIN:

MOVAL,1

MOVDI,0

CALLDELAY

MOVAL,0

INCCX

INCDX

SUBBX,2

CMPCX,94

JNZAGAIN

MOVDI,0;

画这第二个方框

MOVCX,95

MOVDX,45

MOVBX,110

MOVCX,96

MOVDX,46

MOVBX,108

AGAIN_00:

CMPCX,114

JNZAGAIN_00

MOVCX,115;

画第三个方框

MOVDX,65

MOVBX,70

MOVCX,116

MOVDX,66

MOVBX,68

AGAIN_01:

CMPCX,129

JNZAGAIN_01

MOVAL,1;

画小方框

MOVCX,130

MOVDX,80

MOVBX,40

MOVAL,3;

对角线

MOVSI,0

MOVBX,59

CALLXIE_LINE

MOVCX,171

MOVDX,121

MOVSI,1

MOVDX,179

MOVDX,79

MOVCX,150;

十字线

MOVBX,60

CALLDRAW_LINE

MOVCX,150

MOVDX,120

MOVDX,100

MOVCX,170

MOVDX,60

CALLMID_LINE

MOVDX,110

MOVSI,2

MOVCX,110

MOVBX,30

MOVCX,160

MOVSI,3

MOVDX,140

MOVDX,90

MOVSI,4

MOVDX,180

再画一次大方框

再画一次小方框

MOVCX,115

MOVDI,1;

填充

CALLFILL

CALLFILL_2

CALLFILL_3

MOVCX,149;

加粗

MOVAL,2

MOVCX,151

HEART_:

;

画心形图案

CALLCLS_BOX

CALLHEART

CMPAL,'

q'

JZOK

CMPAL,20H

JZHEART_

CALLCLEAR

JMPSSS

OK:

RET

MAINENDP

FILLPROCNEAR;

程序填充

MOVFULL,0

MOVAL,5

FILL_Y:

PUSHCX

PUSHDX

PUSHBX

POPBX

POPDX

POPCX

ADDDX,2

INCFULL

CMPFULL,30

JNEFILL_Y

FILLENDP

FILL_2PROCNEAR

MOVCX,140

FILL_Y1:

DECCX

JNEFILL_Y1

FILL_2ENDP

FILL_3PROCNEAR

RE_FILL:

CMPFULL,9

JNERE_FILL

MOVCX,159

RE_FILL2:

JNERE_FILL2

FILL_3ENDP

DRAW_LINEPROCNEAR;

画直线程序

CMPSI,0

JZV_LINE1

ADDBX,CX

H_LINE:

MOVAH,0CH

CMPDI,0

JZAA0

CMPDI,1

JZAA1

AA1:

AA0:

CMPCX,BX

JNEH_LINE

JMPEXIT_LINE

V_LINE1:

ADDBX,DX

V_LINE:

JZBB0

JZBB1

BB1:

BB0:

CMPDX,BX

JNEV_LINE

EXIT_LINE:

DRAW_LINEENDP

XIE_LINEPROCNEAR;

画斜线程序

CMPSI,1

JZXIELINE_1

XIELINE_0:

JNEXIELINE_0

JMPEXIT_XIE

XIELINE_1:

DECDX

JNEXIELINE_1

EXIT_XIE:

XIE_LINEENDP

MID_LINEPROCNEAR;

画条直线

CMPSI,2

JZMIDLINE_2

CMPSI,3

JZMIDLINE_3

CMPSI,4

JZMIDLINE_4

MIDLINE_1:

ADDCX,2

JNEMIDLINE_1

JMPEXIT_LINES

MIDLINE_2:

JNEMIDLINE_2

MIDLINE_3:

JNEMIDLINE_3

MIDLINE_4:

SUBDX,2

JNEMIDLINE_4

EXIT_LINES:

MID_LINEENDP

BOXPROCNEAR;

画方框

CALLDRAW_LINE;

顶部

ADDCX,BX

右边

左边

ADDDX,BX

底部

BOXENDP

SPACEPROCNEAR;

显示一个空间

MOVAH,02

MOVDL,'

SPACEENDP

RETURNPROCNEAR;

回车

MOVAH,2

MOVDL,0AH

MOVDL,0DH

RETURNENDP

TEXTPROCNEAR;

显示文本信息

MOVBH,0

MOVDH,0

MOVDL,0

MOVDX,OFFSETBUFF2

TEXTENDP

HEARTPROCNEAR

MOVCX,136;

画心形

MOVDX,93

MOVBX,5

MOVCX,137;

MOVDX,91

MOVBX,9

MOVCX,138;

MOVBX,12

MOVCX,139;

MOVDX,89

MOVBX,14

MOVCX,140;

MOVDX,88

MOVBX,16

MOVCX,141;

MOVBX,17

MOVCX,142;

MOVDX,87

MOVBX,19

MOVCX,143;

MOVBX,20

MOVCX,144;

MOVBX,21

MOVCX,145;

MOVCX,146;

MOVBX,22

MOVCX,147;

MOVCX,148;

MOVCX,151;

MOVCX,152;

MOVCX,153;

MOVCX,154;

MOVCX,155;

MOVCX,156;

MOVCX,157;

MOVCX,158;

MOVCX,159;

MOVCX,160;

MOVCX,161;

MOVCX,162;

MOVCX,163;

HEARTENDP

DELAYPROCNEAR;

延迟程序

MOVDX,25

DL2:

MOVCX,2801

DL3:

LOOPDL3

JNZDL2

DELAYENDP

CLEARPROCNEAR;

清屏

MOVBX,0

MOVCX,0

MOVDX,0

LINE:

CMPCX,320

JNELINE

CMPDX,200

CLEARENDP

CLS_BOXPROCNEAR

MOVCX,131

MOVDX,81

S_LINE:

CMPCX,170

JNES_LINE

CMPDX,120

CLS_BOXENDP

CODEENDS

ENDSTART

7参考文献

[1]周佩玲、彭虎、傅忠谦,《微机原理与接口技术》.北京:

电子工业出版社2011.8第三版

[2]姚燕南,《微型计算机原理与接口技术》.北京:

高等教育出版社,2004

[3]马瑞芳,《汇编语言程序设计》.西安:

西北工业大学出版社,2002.3第一版

[4]邹逢兴,《计算机硬件技术及应用基础.下册;

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

当前位置:首页 > 工程科技 > 能源化工

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

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