微机原理课设动画心Word文档下载推荐.docx
- 文档编号:4494178
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:34
- 大小:263.65KB
微机原理课设动画心Word文档下载推荐.docx
《微机原理课设动画心Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理课设动画心Word文档下载推荐.docx(34页珍藏版)》请在冰点文库上搜索。
(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]邹逢兴,《计算机硬件技术及应用基础.下册;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 动画