图形课程设计报告.docx
- 文档编号:10579188
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:23
- 大小:126.05KB
图形课程设计报告.docx
《图形课程设计报告.docx》由会员分享,可在线阅读,更多相关《图形课程设计报告.docx(23页珍藏版)》请在冰豆网上搜索。
图形课程设计报告
目录
一、摘要1
二、设计的题目1
图形转换1
三、设计目的1
四、设计内容1
4.1程序的内容与要求1
4.2程序运行条件2
4.3输入/输出描述2
五、设计思路3
六、程序结构3
6.1段定义说明3
6.2子程序功能说明4
6.3算法描述4
(1)各模块功能实现4
(2)典型指令的应用4
七、程序流程图5
八、文件的编辑、连接和运行结果6
8.1.汇编源程序文件(ASM,MASM)6
8.2.连接目标文件(LINK)7
8.3.运行可执行文件7
九、程序的调试8
9.1.程序结构设计特点8
9.2.调试程序心得8
十、小结与体会8
十一、附录9
①源程序代码(简单注释)9
②参考文献18
③组员分工18
微机原理课程设计任务书
2010-2011学年第二学期 第19周-19周
题目
图形变换程序
内容及要求
结合微机原理知识,查阅有关资料,完成一个图形变换的程序编写,系统具有4种可选择的功能,按字母“Y”画一个由点组成的园;按字母“S”画一个由不同颜色填充的三角形;按字母“Z”画一个由不同颜色填充的矩形;按字母“Q”退出。
进度安排
1、查找资料,提出总体方案1天
2、分析、设计、调试、实现3天
3、检查、整理、写设计报告、小结1天
学生姓名:
指导时间:
2011-6-27至2011-7-1
指导地点:
F楼312室
任务下达
2011年6月27日
任务完成
2011年7月1日
考核方式
1.评阅√ 2.答辩√3.实际操作√ 4.其它□
指导教师
系(部)主任
一、摘要:
《微机原理与接口技术》课程是电气信息类专业学生的一门重要基础课程,同时也是一门实践性和应用性很强的课程。
本课程主要讲授微型计算机的基本工作原理、系统组成及接口技术和基本的汇编语言程序设计知识,通过学习从而为学生今后分析和设计微机应用系统打好基础。
在理论教学的同时,如果忽视实践教学,学生对理论知识不能够很好的掌握,学习效果就会受到很大的影响。
本次课程设计主要是通过应用微机原理中汇编的几个步骤——编辑、汇编、连接、运行或调试运行,使得在doc界面完成图形变换。
关键词:
微型计算机原理接口技术汇编语言实践教学doc
二、设计的题目:
图形变换程序
三、设计目的:
1. 巩固和加深课堂所学知识。
2. 将课本上的理论知识和实际应用有机的结合起来,培养同学们分析和解决实际问题的能力。
3. 通过对汇编语言程序代码的阅读、修改、设计,理解和掌握复杂的汇编语言应用程序的编程,提高实践编程能力。
本程序要求按不同的键显示不同的图形,按“q”键退出。
实质上通过做这道题目可以检查学生对汇编语言这门课程的基本知识的掌握程度。
能用汇编语言熟练地运用顺序、选择、循环三大结构,进一步掌握各个指令的功能,特别是转向指令,让同学熟悉并掌握DOS系统功能调方法用及BIOS系统功能调用方法;同时在程序设计过程中熟悉并掌握各种指令的应用,知道编程的具体流程,以及掌握DEBUG的一系列的功能执行命令,及用它进行调试,运行功能。
只有掌握汇编语言基本编程方法,掌握程序各部分功能及其相互联系、相互作用,才能把程序写出来,才能把程序写好。
四、设计内容:
4.1程序的内容与要求:
结合微机原理知识,查阅有关资料,完成一个图形变换的程序编写,系统具有4种可选择的功能,按字母“Y”画一个由点组成的园;按字母“S”画一个由不同颜色填充的三角形;按字母“Z”画一个由不同颜色填充的矩形;按字母“Q”退出。
4.2程序运行条件
本程序可在windows98,windows2000,windowsxp上运行。
所需要工具软件为MASM2.0及以上版本。
4.3输入/输出描述
①输入Y
②输入S
③输入Z
④输入q
返回到DOS界面。
五、设计思路:
BIOS调用中并没有现成的显示圆、三角形和矩形的功能,故编写了三个子程序,采用段内调用子程序的方法来实现.其中圆用在屏幕上显示12个小圆点以围成一个圆来实现,12个小圆点的行列坐标事先定义在一个变量中.三角形和矩形的实现原理是采用控制写点的方式,行、列、块的颜色不是采用变量表示,此处的三角形用寄存器表示,使用了堆栈技术;矩形使用的也是寄存器,但没有使用堆栈.整个程序的结构如图所示。
六、程序结构:
6.1段定义说明
分为数据段DSEG、堆栈段SSEG和代码段CSEG。
堆栈段是为一些字符串和图形的光标位置及其他一些数据分配空间;数据段是记录程序运行过程中所需的信息,包括字符信息,图形光标等;代码段则是程序算法部分,通过对各子程序的调用,实现图形转换功能。
6.2子程序功能说明
子程序包括三个:
函数名为YUAN,SAN和ZHENG,分别具有画圆、画三角形和画矩形的功能。
调用关系:
根据指令SA:
CALLSAN
JMPINPUT
ZHEN:
CALLZHENG
JMPINPUT
YUA:
CALLYUAN
JMPINPUT
当转移到各标号时,调用不同的子程序,从而实现绘制图形。
过程返回指令RET定义在子程序中,当执行完子程序后,跳转到INPUT。
参数传送方式:
程序中用到利用寄存器传递参数和利用约定存储单元的方法传递参数。
即把参数存放在寄存器或是存储单元中来实现主程序和子程序间的参数传递。
6.3算法描述
(1)各模块功能实现:
a.MAIN模块
功能:
这是个主过程,是负责进入和退出图形转换程序的入口。
利用指令:
MOVAH,08;不带回显键盘输入,出口参数al
INT21H
来实现字符的输入,从而进入相应的子程序。
b.YUAN模块
功能:
实现画圆的功能。
圆用在屏幕上显示12个小圆点以围成一个圆来实现,12个小圆点的行列坐标事先定义在一个变量中。
利用CALL指令直接实现从主函数调用。
c.SAN模块
功能:
实现画三角形功能。
利用CALL指令直接实现从主函数调用。
d.ZHENG模块
功能:
实现画矩形的功能。
通过向四个方向滚屏,来实现绘制四个边。
利用CALL指令直接实现从主函数调用。
(2)典型指令的应用:
程序中运用了大量的数据定义语句、数据传送指令及转移指令,并用到DOC功能调用和基本输入输出系统BIOS中的中断处理程序。
典型的有JZ跳转指令,中断指令INT10H,INT21H,如指令:
MOVAL,2
MOVAH,9
MOVBL,0E0H
INT10H
其中AL存放字符代码,AL=字符代码,AH=9表示将字符和属性写到光标位置处,BL=属性。
而指令MOVAH,4CH/INT21H,表示返回到DOC操作界面。
七、程序流程图:
程序开始运行后,先提示:
pleasechoosethelettery,s,z:
,inputqtoquit然后操作者选择一个字母,程序根据比较:
CMPAL,’S’
JZSA
CMPAL,’Z’
JZZHEN
CMPAL,’Y’
JZYUA
CMPAL,’q’
JZEXIT
MOVDX,OFFSETINFO2
MOVAH,09
INT21H
若为S,则转到标号SA,进一步调用子程序SAN来画出三角形;若为Z,则转到标号ZHEN,进一步调用子程序ZHENG来画出矩形;若为Y,则转到标号YUA,进一步调用子程序YUAN来画出圆。
若为q,则转到EXIT,转到DOC操作页面。
若不是以上的字符,则提示输入错误,显示chooseerror!
[程序流程图如下所示:
]
[程序流程图]
八、文件的编辑、连接和运行结果
8.1.汇编源程序文件(ASM,MASM)
由编辑程序所建立的ASM文件只是个文本文件,计算机无法执行。
需要经过汇编程序的汇编,使其转为目标代码文件。
它是通过调用宏汇编MASM(或汇编程序ASM)程序完成这一汇编操作的。
汇编程序还将对源文件进行语法检查,如发现有错,将给出错误原因。
程序设计者可根据它分析和修改源程序,并再经过汇编,直到无错时为止,此时得到的是一个目标文件(OBJ文件)。
8.2.连接目标文件(LINK)
目标文件为浮动的相对地址,是不可直接执行的。
必须经过连接,把有关模块连接在一起,构成统一的编址,从而为运行提供条件。
在运行时,装填到内存中的具体位置由段地址来确定。
连接过程是由LINK连接程序实现的,止时得到的是一个可可执行文件(EXE文件)。
8.3.运行可执行文件
得到可执行文件后就可以直接调用可执行文件名,从盘上调到内存中运行。
在出现的提示信息中,按Y键画圆;按S键画三角形;按Z键画正方形;按q键退出.
九、程序的调试:
9.1.程序结构设计特点
通过设计三个子程序,分别实现画圆、画三角形和画矩形的功能,然后通过比较输入的字符,调用相应的子程序,完成不同的绘图。
主程序和子程序间通过寄存器和约定内存单元的方法实现参数传递。
9.2.调试程序心得
在调试中发现很多错误都是有于没注意到一些小细节而出错,(例如:
注释说明时忘了加“;”号,SEGMENT和ENDS、PROC和ENDP不匹配等),因此在写程序时所有的细节都要考虑到。
9.3.程序不足
在选择按键时候有一定的时间间隔,要等到出现提示后(即程序转入到INPUT处时)才能再次按键,否则就会转入循环状态。
十、小结与体会:
在整个设计程中,我分模块分别设计和调试,完成了最后的总设计。
在设计过程中,经常会遇到这样那样的情况,就是心里想老着这样的编程可以行得通,但实际运行后,总是实现不了,因此耗费在这上面的时间用去很多。
做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解,而且考试内容有限,所以在这次课程设计过程中,我从根本上理解了很多很多知识点,并且对于它们在实际中的应用有了更多的认识。
平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。
而且还可以记住很多东西。
平时看课本,这次看了,下次就忘了,认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。
所以这个期末测试之后的课程设计对我的作用是非常大的。
经过一个星期的设计,过程曲折可谓一语难尽。
在此期间我也失落过,也曾一度热情高涨。
从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。
生活就是这样,汗水预示着结果也见证着收获。
劳动是人类生存生活永恒不变的话题。
通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编程能力,补全了我的不足。
同时我也巩固所了学过的知识,能用汇编语言熟练地运用顺序、选择、循环三大结构,进一步掌握了各个指令的功能,特别是转向指令,掌握了子程序的定义及调用,以及正确地运用DEBUG指令。
在整个程序的编写中,调试占了很大部分的时间,要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握DEBUG命令,这对程序的调试是非常重要的。
通过这次实际动手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,基本达到了能独立阅读、编制和调试一定规模的汇编语言程序的水平,也提高了我独立思考和解决问题的能力。
在如今单一的理论学习中,很少有机会能有实践的机会,而且是一个团队的任务。
大家在一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里一年的相处还赶不上这十来天的合作,我感觉我和同学们之间的距离更加近了。
同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。
某个人的离群都可能导致导致整项工作的失败。
实习中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。
团结协作是我们实习成功的一项非常重要的保证。
而这次实习也正好锻炼我们这一点,这也是非常宝贵的。
对我们而言,知识上的收获重要,精神上的丰收更加可喜。
挫折是一份财富,经历是一份拥有。
这次实习必将成为我人生旅途上一个非常美好的回忆!
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
这次课程设计终于顺利完成了,在设计中遇到了很多专业知识问题,最后在老师的辛勤指导下,终于迎刃而解。
同时,在老师的身上我们学也到很多实用的知识,在次我们表示感谢!
同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,和与人合作共同提高,都受益非浅,今后的制作应该更轻松,自己也都能扛的起并高质量的完成项目。
在此,感谢彭老师的细心指导,也同样谢谢其他各组同学的无私帮助!
十一、附录:
(1)源程序代码(简单注释)
DSEGSEGMENT
INFO1DB0DH,0AH,’pleasechoosethelettery,s,z:
’
DB0DH,0AH,’inputqtoquit’,’$’
INFO2DB0DH,0AH,’chooseerror!
’,’$’
D3DW0
TOTALDB12
DOTYXDB50,160
DB60,135
DB60,185
DB75,115
DB75,205
DB95,110
DB95,210
DB110,114
DB110,210
DB130,135
DB130,195
DB145,165
DSEGENDS
SSEGSEGMENTSTACK
DB200DUP(0)
SSEGENDS
CSEGSEGMENT
ASSUMECS:
CSEG,DS:
DSEG,SS:
SSEG
START:
MAINPROCFAR
MOVAX,DSEG
MOVDS,AX
MOVAH,0;设置显示模式
MOVAL,4;显示模式代号
INT10H;10H号中断,显示I/O程序
INPUT:
LEADX,INTO1;要输出字符串首地址
MOVAH,9;在标准输出上显示一个字符串
INT21H
MOVAH,08;不带回显键盘输入,出口参数al
INT21H
CMPAL,’S’
JZSA
CMPAL,’Z’
JZZHEN
CMPAL,’Y’
JZYUA
CMPAL,’q’
JZEXIT
MOVDX,OFFSETINFO2
MOVAH,09
INT21H
SA:
CALLSAN
JMPINPUT
ZHEN:
CALLZHENG
JMPINPUT
YUA:
CALLYUAN
JMPINPUT
EXIT:
MOVAH,4CH
INT21H
RET
MAINENDP
SANPROCNEAR
PUSHAX
PUSHBX
PUSHCX
PUSHDX
MOVAH,0
MOVAL,12H
INT10H;显示I/O程序
MOVAL,1
A0:
MOVDX,1
MOVD3,1
MOVCX,320
A1:
PUSHCX
PUSHD3
A2:
MOVAH,12
PUSHAX
INT10H;显示I/O程序
POPAX
INCCX
SUBD3,1
JNZA2
POPD3
ADDD3,2
POPCX
INCDX
DECCX
JNEA1
INCA1
CMPAL,5
JNEA0
POPDX
POPCX
POPBX
POPAX
RET
SANNEDP
ZHENGPROCNEAR
PUSHAX
PUSHBX
PUSHCX
PUSHDX
MOVAH,0FH;取当前显示模式
INT10H
MOVAH,0
MOVAL,3
INT10H
MOVCX,1;字符数量
MOVAH,2;置光标位置
MOVDH,5;5行开始
MOVDL,25;25列开始
INT10H
;*****光标向下动********
LINE:
MOVAH,2
INT10H
MOVAL,2;字符代码
MOVAH,9;将字符和属性写到光标位置处
MOVBL,0E0H;字符黄色
INT10H
INCDH;行增加
CMPDH,20;20行
JNELINE
JMPLINE1
;****光标向右动*****
LINE1:
MOVAH,2
INT10H
MOVAL,2
MOVAH,9
MOVBL,0E0H;字符为黄色
INT10H
INCDL;列增加
CMPDL,55;55列
JNELINE1
JMPLINE2
;*****光标向上动*********
LINE2:
MOVAH,2
INT10H
MOVAL,2
MOVAH,9
MOVBL,0E0H;字符黄色
INT10H
DECDH;行减少
CMPDH,5;5行
JNELINE2
JMPLINE3
;***光标向左动***
LINE3:
MOVAH,2
INT10H
MOVAL,2
MOVAH,9
MOVBL,0E0H;字符为黄色
INT10H
DECDL;列减少
CMPDL,25;25列
JNELINE3
L00:
MOVAH,7;向下滚屏
MOVAL,14;下滚行数
MOVBH,20H;绿色,填空白行的属性
MOVCH,6;窗口左上角行号
MOVCL,26;窗口左上角列号
MOVDH,19;窗口右下角行号
MOVDL,54;窗口右下角列号
INT10H
;*****时间控制*****
L01:
MOVAH,0
INT1AH;时钟管理
CMPDL,10
JNZL01
L1:
MOVAH,6;向上滚屏
MOVAL,14
MOVBH,0F0H;;白色
MOVCH,6
MOVCL,26
MOVDH,19
MOVDL,54
INT10H
L2:
MOVAH,0
INT1AH;时钟管理
CMPDL,15
JNZL2
L3:
MOVAH,7;向下滚屏
MOVAL,14
MOVBH,40H;红色
MOVCH,6
MOVCL,26
MOVDH,19
MOVDL,54
INT10H
L4:
MOVAH,0
INT1AH
CMPDL,30
JNZL4
L5:
MOVAH,6;向上滚屏
MOVAL,14
MOVBH,0D0H;品红
MOVCH,6
MOVCL,26
MOVDH,19
MOVDL,54
INT10H
L004:
MOVAH,0
INT1AH;时钟管理
CMPDL,10
JNZL004
L005:
MOVAH,7;向下滚屏
MOVAL,14
MOVBH,30H;青
MOVCH,6
MOVCL,26
MOVDH,19
MOVDL,54
INT10H
;****时间控制****
MOVAH,2;置光标位置
MOVDH,23;行号
MOVDL,0;列号
INT10H
POPDX
POPCX
POPBX
POPAX
RET
ZHENGEDNP
YUANPROCNEAR
PUSHAX
PUSHBX
PUSHCX
PUSHDX
MOVAX,0004H
INT10H
MOVBX,00
PUSHBX
MOVAH,0BH
INT10H
MOVBX,0003H
MOVAH,0BH
INT10H
MOVBL,TOTAL
MOVSI,OFFSETDOTYX
MOVCH,0
MOVDH,CH
PLO:
MOVDL,[SI]
MOVCL,[SI+1]
MOVAL,02H
MOVAH,0CH
INT10H
INCSI
INCSI
DECBL
JNZPLO
MOVBX,50
POPBX
POPDX
POPCX
POPDX
POPAX
RET
YUANENDP
CSEGENDS
ENDSTART
(2)参考文献:
[1]《汇编语言、微机原理及接口技术》(第三版)电子工业出版社。
[2]《微型计算机原理与接口技术》机械工业出版社。
[3]《微型计算机系统原理及应用》杨素行编著,清华大学出版社
[4沈美明、温冬蝉编:
“IBM-PC汇编语言程序设计 第2版”,清华大学出版社,2001。
[5]陆忠华等编:
“汇编语言程序设计”,科学出版社,1993.
[6]杨季文等编:
80X86“编语言程序设计教程”,清华大学出版社,1998。
(3)组员分工如下:
:
提出设计方案,页面排版编写
:
查找资料程序并编写程序
:
运行并且调试程序
:
查找参考资料
:
打印
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图形 课程设计 报告