微机原理课程设计图形变换程序.doc

上传人:文库蛋蛋多 文档编号:2882072 上传时间:2023-03-01 格式:DOC 页数:20 大小:1.39MB
返回 下载 相关 举报
微机原理课程设计图形变换程序.doc_第1页
第1页 / 共20页
微机原理课程设计图形变换程序.doc_第2页
第2页 / 共20页
微机原理课程设计图形变换程序.doc_第3页
第3页 / 共20页
微机原理课程设计图形变换程序.doc_第4页
第4页 / 共20页
微机原理课程设计图形变换程序.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《微机原理课程设计图形变换程序.doc》由会员分享,可在线阅读,更多相关《微机原理课程设计图形变换程序.doc(20页珍藏版)》请在三一办公上搜索。

1、目 录一、摘要1二、设计的题目1图形转换1三、设计目的1四、设计内容14.1程序的内容与要求14.2程序运行条件24.3输入/输出描述2五、设计思路3六、程序结构36.1段定义说明36.2子程序功能说明46.3算法描述4(1)各模块功能实现4(2)典型指令的应用4七、程序流程图5八、文件的编辑、连接和运行结果68.1.汇编源程序文件(ASM,MASM)68.2.连接目标文件(LINK)78.3.运行可执行文件7九、程序的调试89.1程序结构设计特点89.2调试程序心得8十、小结与体会8十一、附录9源程序代码(简单注释)9参考文献18组员分工18微机原理 课程设计任务书20102011学年 第二

2、学期第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.其它指导教师系(部)主任一、摘要:微机原

3、理与接口技术课程是电气信息类专业学生的一门重要基础课程,同时也是一门实践性和应用性很强的课程。本课程主要讲授微型计算机的基本工作原理、系统组成及接口技术和基本的汇编语言程序设计知识,通过学习从而为学生今后分析和设计微机应用系统打好基础。在理论教学的同时,如果忽视实践教学,学生对理论知识不能够很好的掌握,学习效果就会受到很大的影响。 本次课程设计主要是通过应用微机原理中汇编的几个步骤编辑、汇编、连接、运行或调试运行,使得在doc界面完成图形变换。关键词:微型计算机原理 接口技术 汇编语言 实践教学 doc 二、设计的题目: 图形变换程序三、设计目的:1.巩固和加深课堂所学知识。2.将课本上的理论

4、知识和实际应用有机的结合起来,培养同学们分析和解决实际问题的能力。 3.通过对汇编语言程序代码的阅读、修改、设计,理解和掌握复杂的汇编语言应用程序的编程,提高实践编程能力。本程序要求按不同的键显示不同的图形,按“q”键退出。实质上通过做这道题目可以检查学生对汇编语言这门课程的基本知识的掌握程度。能用汇编语言熟练地运用顺序、选择、循环三大结构,进一步掌握各个指令的功能,特别是转向指令,让同学熟悉并掌握DOS系统功能调方法用及BIOS系统功能调用方法;同时在程序设计过程中熟悉并掌握各种指令的应用,知道编程的具体流程,以及掌握DEBUG的一系列的功能执行命令,及用它进行调试,运行功能。只有掌握汇编语

5、言基本编程方法,掌握程序各部分功能及其相互联系、相互作用,才能把程序写出来,才能把程序写好。四、设计内容:4.1程序的内容与要求: 结合微机原理知识,查阅有关资料,完成一个图形变换的程序编写,系统具有4种可选择的功能,按字母“Y”画一个由点组成的园;按字母“S”画一个由不同颜色填充的三角形;按字母“Z”画一个由不同颜色填充的矩形;按字母“Q”退出。4.2程序运行条件本程序可在windows 98,windows 2000,windows xp上运行。所需要工具软件为MASM2.0及以上版本。4.3输入/输出描述输入Y输入S输入Z输入q返回到DOS界面。五、设计思路:BIOS调用中并没有现成的显

6、示圆、三角形和矩形的功能,故编写了三个子程序,采用段内调用子程序的方法来实现.其中圆用在屏幕上显示12个小圆点以围成一个圆来实现,12个小圆点的行列坐标事先定义在一个变量中.三角形和矩形的实现原理是采用控制写点的方式,行、列、块的颜色不是采用变量表示,此处的三角形用寄存器表示,使用了堆栈技术;矩形使用的也是寄存器,但没有使用堆栈.整个程序的结构如图所示。六、程序结构:6.1段定义说明分为数据段DSEG、堆栈段SSEG和代码段CSEG。堆栈段是为一些字符串和图形的光标位置及其他一些数据分配空间;数据段是记录程序运行过程中所需的信息,包括字符信息,图形光标等;代码段则是程序算法部分,通过对各子程序

7、的调用,实现图形转换功能。6.2子程序功能说明子程序包括三个:函数名为YUAN,SAN和ZHENG,分别具有画圆、画三角形和画矩形的功能。调用关系:根据指令SA: CALL SANJMP INPUTZHEN:CALL ZHENG JMP INPUTYUA: CALL YUAN JMP INPUT当转移到各标号时,调用不同的子程序,从而实现绘制图形。过程返回指令RET定义在子程序中,当执行完子程序后,跳转到INPUT。参数传送方式:程序中用到利用寄存器传递参数和利用约定存储单元的方法传递参数。即把参数存放在寄存器或是存储单元中来实现主程序和子程序间的参数传递。6.3算法描述(1)各模块功能实现:

8、a. MAIN模块功能:这是个主过程,是负责进入和退出图形转换程序的入口。利用指令:MOV AH,08 ;不带回显键盘输入,出口参数alINT 21H来实现字符的输入,从而进入相应的子程序。b. YUAN模块功能:实现画圆的功能。圆用在屏幕上显示12个小圆点以围成一个圆来实现,12个小圆点的行列坐标事先定义在一个变量中。利用CALL指令直接实现从主函数调用。c. SAN模块功能:实现画三角形功能。利用CALL指令直接实现从主函数调用。d ZHENG模块功能:实现画矩形的功能。通过向四个方向滚屏,来实现绘制四个边。利用CALL指令直接实现从主函数调用。(2)典型指令的应用:程序中运用了大量的数据

9、定义语句、数据传送指令及转移指令,并用到DOC功能调用和基本输入输出系统BIOS中的中断处理程序。典型的有JZ跳转指令,中断指令INT 10H,INT 21H,如指令:MOV AL,2 MOV AH,9 MOV BL,0E0H INT 10H其中AL存放字符代码,AL=字符代码,AH=9表示将字符和属性写到光标位置处,BL=属性。而指令MOV AH,4CH/INT 21H,表示返回到DOC操作界面。七、程序流程图:程序开始运行后,先提示:please choose the letter y,s,z:,input q to quit然后操作者选择一个字母,程序根据比较 :CMP AL,S JZ

10、SA CMP AL,Z JZ ZHEN CMP AL,Y JZ YUA CMP AL,q JZ EXIT MOV DX,OFFSET INFO2 MOV AH,09 INT 21H若为S,则转到标号SA,进一步调用子程序SAN来画出三角形;若为Z,则转到标号ZHEN,进一步调用子程序ZHENG来画出矩形;若为Y,则转到标号YUA,进一步调用子程序YUAN来画出圆。若为q,则转到EXIT,转到DOC操作页面。若不是以上的字符,则提示输入错误,显示choose error!程序流程图如下所示:开始显示提示信息接收键盘输入是“Y”?是“S”?是“Z”?Call yuanCall san是“q”?Ca

11、ll zheng显示出错信息退出YYYNNNNY程序流程图八、文件的编辑、连接和运行结果8.1.汇编源程序文件(ASM,MASM)由编辑程序所建立的ASM文件只是个文本文件,计算机无法执行。需要经过汇编程序的汇编,使其转为目标代码文件。它是通过调用宏汇编MASM(或汇编程序ASM)程序完成这一汇编操作的。汇编程序还将对源文件进行语法检查,如发现有错,将给出错误原因。程序设计者可根据它分析和修改源程序,并再经过汇编,直到无错时为止,此时得到的是一个目标文件(OBJ文件)。8.2.连接目标文件(LINK)目标文件为浮动的相对地址,是不可直接执行的。必须经过连接,把有关模块连接在一起,构成统一的编址

12、,从而为运行提供条件。在运行时,装填到内存中的具体位置由段地址来确定。连接过程是由LINK连接程序实现的,止时得到的是一个可可执行文件(EXE文件)。8.3.运行可执行文件得到可执行文件后就可以直接调用可执行文件名,从盘上调到内存中运行。在出现的提示信息中,按Y键画圆;按S键画三角形;按Z键画正方形;按q键退出. 九、程序的调试:9.1程序结构设计特点通过设计三个子程序,分别实现画圆、画三角形和画矩形的功能,然后通过比较输入的字符,调用相应的子程序,完成不同的绘图。主程序和子程序间通过寄存器和约定内存单元的方法实现参数传递。9.2调试程序心得在调试中发现很多错误都是有于没注意到一些小细节而出错

13、,(例如:注释说明时忘了加“;”号,SEGMENT和ENDS、PROC和ENDP不匹配等),因此在写程序时所有的细节都要考虑到。 9.3程序不足在选择按键时候有一定的时间间隔,要等到出现提示后(即程序转入到INPUT处时)才能再次按键,否则就会转入循环状态。十、小结与体会:在整个设计程中,我分模块分别设计和调试,完成了最后的总设计。在设计过程中,经常会遇到这样那样的情况,就是心里想老着这样的编程可以行得通,但实际运行后,总是实现不了,因此耗费在这上面的时间用去很多。做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解,而且考试内容有限,所以在这次课程设

14、计过程中,我从根本上理解了很多很多知识点,并且对于它们在实际中的应用有了更多的认识。平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。而且还可以记住很多东西。平时看课本,这次看了,下次就忘了,认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。所以这个期末测试之后的课程设计对我的作用是非常大的。 经过一个星期的设计,过程曲折可谓一语难尽。在此期间我也失落过,也曾一度热情高涨。从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过课程设计的编程和对编程过程中遇到的

15、问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编程能力,补全了我的不足。同时我也巩固所了学过的知识,能用汇编语言熟练地运用顺序、选择、循环三大结构,进一步掌握了各个指令的功能,特别是转向指令,掌握了子程序的定义及调用,以及正确地运用DEBUG指令。在整个程序的编写中,调试占了很大部分的时间,要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握DEBUG命令,这对程序的调试是非常重要的。通过这次实际动手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,基本达到了能独立阅读、编制和调试一定规模的汇编语言程序的水平,也提高了我独立思考和解决问题的能力。在如今单一的

16、理论学习中,很少有机会能有实践的机会,而且是一个团队的任务。大家在一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里一年的相处还赶不上这十来天的合作,我感觉我和同学们之间的距离更加近了。同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致导致整项工作的失败。实习中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们实习成功的一项非常重要的保证。而这次实习也正好锻炼我们这一点,这也是非常宝贵的。对我们而言,知识上的收获重要,精神上的丰收更加可喜。

17、挫折是一份财富,经历是一份拥有。这次实习必将成为我人生旅途上一个非常美好的回忆! 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。 这次课程设计终于顺利完成了,在设计中遇到了很多专业知识问题,最后在老师的辛勤指导下,终于迎刃而解。同时,在老师的身上我们学也到很多实用的

18、知识,在次我们表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,和与人合作共同提高,都受益非浅,今后的制作应该更轻松,自己也都能扛的起并高质量的完成项目。 在此,感谢彭老师的细心指导,也同样谢谢其他各组同学的无私帮助!十一、附录:(1)源程序代码(简单注释)DSEG SEGMENTINFO1 DB 0DH,0AH,please choose the letter y,s,z: DB 0DH,0AH,input q to quit,$INFO2 DB 0DH,0AH,choose error

19、!,$D3 DW 0TOTAL DB 12DOTYX DB 50,160 DB 60,135 DB 60,185DB 75,115DB 75,205DB 95,110DB 95,210DB 110,114DB 110,210DB 130,135DB 130,195DB 145,165DSEG ENDSSSEG SEGMENT STACKDB 200 DUP(0)SSEG ENDSCSEG SEGMENT ASSUME CS:CSEG, DS:DSEG, SS:SSEGSTART: MAIN PROC FAR MOV AX,DSEG MOV DS,AX MOV AH,0 ;设置显示模式MOV A

20、L,4 ;显示模式代号INT 10H ;10H号中断,显示I/O程序INPUT: LEA DX,INTO1 ;要输出字符串首地址MOV AH,9 ;在标准输出上显示一个字符串 INT 21H MOV AH,08 ;不带回显键盘输入,出口参数al INT 21H CMP AL,S JZ SA CMP AL,Z JZ ZHEN CMP AL,Y JZ YUA CMP AL,q JZ EXIT MOV DX,OFFSET INFO2 MOV AH,09 INT 21HSA: CALL SANJMP INPUTZHEN: CALL ZHENG JMP INPUTYUA: CALL YUAN JMP I

21、NPUTEXIT: MOV AH,4CH INT 21HRETMAIN ENDPSAN PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,0 MOV AL,12H INT 10H ;显示I/O程序 MOV AL,1A0: MOV DX,1 MOV D3,1 MOV CX,320A1: PUSH CX PUSH D3A2: MOV AH,12 PUSH AX INT 10H ;显示I/O程序 POP AX INC CX SUB D3,1 JNZ A2 POP D3 ADD D3,2 POP CX INC DX DEC CX JNE A1 INC A

22、1 CMP AL,5 JNE A0 POP DX POP CX POP BX POP AXRETSAN NEDPZHENG PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,0FH ;取当前显示模式 INT 10H MOV AH,0 MOV AL,3 INT 10H MOV CX,1 ; 字符数量 MOV AH,2 ;置光标位置 MOV DH,5 ; 5行开始 MOV DL,25 ;25列开始 INT 10H ;*光标向下动*LINE: MOV AH,2 INT 10H MOV AL,2 ;字符代码 MOV AH,9 ;将字符和属性写到光标位置处

23、 MOV BL,0E0H ; 字符黄色 INT 10H INC DH ; 行增加 CMP DH,20 ; 20行 JNE LINE JMP LINE1;*光标向右动*LINE1: MOV AH,2 INT 10H MOV AL,2 MOV AH,9 MOV BL,0E0H ;字符为黄色 INT 10H INC DL ;列增加 CMP DL,55 ;55列 JNE LINE1 JMP LINE2;*光标向上动*LINE2: MOV AH,2 INT 10H MOV AL,2 MOV AH,9 MOV BL,0E0H ; 字符黄色 INT 10H DEC DH ;行减少 CMP DH,5 ;5行

24、JNE LINE2 JMP LINE3;*光标向左动*LINE3: MOV AH,2 INT 10H MOV AL,2 MOV AH,9 MOV BL,0E0H ;字符为黄色 INT 10H DEC DL ;列减少 CMP DL,25 ;25列 JNE LINE3L00: MOV AH,7 ;向下滚屏 MOV AL,14 ;下滚行数 MOV BH,20H ;绿色,填空白行的属性 MOV CH,6 ;窗口左上角行号 MOV CL,26 ;窗口左上角列号 MOV DH,19 ;窗口右下角行号 MOV DL,54 ;窗口右下角列号 INT 10H;*时间控制*L01: MOV AH,0 INT 1A

25、H ;时钟管理 CMP DL,10 JNZ L01L1: MOV AH,6 ;向上滚屏 MOV AL,14 MOV BH,0F0H; ;白色 MOV CH,6 MOV CL,26 MOV DH,19 MOV DL,54 INT 10HL2: MOV AH,0 INT 1AH ;时钟管理 CMP DL,15 JNZ L2L3: MOV AH,7 ;向下滚屏 MOV AL,14 MOV BH,40H ;红色 MOV CH,6 MOV CL,26 MOV DH,19 MOV DL,54 INT 10HL4: MOV AH,0 INT 1AH CMP DL,30 JNZ L4L5: MOV AH,6

26、;向上滚屏 MOV AL,14 MOV BH,0D0H ; 品红 MOV CH,6 MOV CL,26 MOV DH,19 MOV DL,54 INT 10HL004: MOV AH,0 INT 1AH ;时钟管理 CMP DL,10 JNZ L004L005: MOV AH,7 ;向下滚屏 MOV AL,14 MOV BH,30H ; 青 MOV CH,6 MOV CL,26 MOV DH,19 MOV DL,54 INT 10H;*时间控制* MOV AH,2 ;置光标位置 MOV DH,23 ;行号 MOV DL,0 ;列号 INT 10H POP DX POP CX POP BX PO

27、P AXRETZHENG EDNPYUAN PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AX,0004H INT 10H MOV BX,00 PUSH BX MOV AH,0BH INT 10H MOV BX,0003H MOV AH,0BH INT 10H MOV BL,TOTAL MOV SI,OFFSET DOTYX MOV CH,0 MOV DH,CHPLO: MOV DL,SI MOV CL,SI+1 MOV AL,02H MOV AH,0CH INT 10H INC SI INC SI DEC BL JNZ PLO MOV BX,50

28、 POP BX POP DX POP CX POP DX POP AXRETYUAN ENDPCSEG ENDSEND START(2)参考文献 : 1汇编语言、微机原理及接口技术(第三版) 电子工业出版社。2微型计算机原理与接口技术 机械工业出版社。 3微型计算机系统原理及应用 杨素行编著,清华大学出版社4 沈美明、温冬蝉编:“IBM-PC汇编语言程序设计第版”,清华大学出版社,2001。 5 陆忠华等编:“汇编语言程序设计”,科学出版社,1993. 6杨季文等编:80X86 “编语言程序设计教程”,清华大学出版社,1998。 (3)组员分工如下:提出设计方案,页面排版编写:查找资料程序并编写程序:运行并且调试程序:查找参考资料:打印

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号