欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    图形变换程序设计.doc

    • 资源ID:1077692       资源大小:853.06KB        全文页数:20页
    • 资源格式: DOC        下载积分:10积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要10积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    图形变换程序设计.doc

    1、武汉理工大学微机原理与接口技术课程设计说明书课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 自动化学院 题 目: 图形变换程序设计(要程序加扣扣二五九零其物流而肆意)初始条件:掌握8086汇编语言程序设计方法,设计一个图形变换显示程序。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1. 程序运行后,键盘输入不同进行不同处理:(1)输入Q,显示Thank You !并结束程序;(2)输入E,显示一个用不同颜色填充且带有边框的矩形图案;输入F,显示一个用不同颜色填充的圆形图案。2. 撰写课程设计说明书。内容包括:摘要、目录、正文、参考文献、附录(程

    2、序清单)。正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。时间安排:12月30日-12月31日 查阅资料及方案设计1月2日-1月3日 编程1月6日 调试程序1月7日-1月8日 撰写课程设计报告指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目录摘要I图形变换程序设计11 设计意义12 设计内容12.1程序的内容与要求12.2 程序运行条件13 方案设计13.1 设计思路13.1.1 显示字符程序13.1.2 显示圆形23.1.3 显示矩形23.2 程序流程图34 程序分解34.1

    3、字符显示程序34.2 圆形显示程序34.3 矩形程序显示54.4 产生颜色的子程序64.5 屏幕初始化子程序65 运行结果显示65.1 矩形输出显示65.2 圆形输出显示75.3 字符串输出显示76 设计过程中的问题8心得体会9致谢10参考文献11附录12成绩评定表17摘要 进入21世纪,信息社会发展的脚步越来越快,对人才的的需求也呈现新的变化趋势。计算机成为新世纪高素质人才必须熟练掌握的工具,大学计算机公共课程也面临着新的机遇和挑战。 随着计算机硬件的发展,微机系统的功能越来越强,其价格也越来越便宜,因而拥有各行各业的用户。用户希望通过计算机方便地解决各自领域的问题。基于冯.诺依曼体系结构的

    4、计算机要求自动解决任务,必须事先将问题分解为计算机能够处理的各个步骤,用某种语言将这些步骤描述出来,然后让计算机按规定的步骤控制计算机工作。计算机的程序设计语言也是经历了这样的发展过程。 汇编语言是计算机程序设计的语言之一,是在机器语言助记符的形式上完善而来。它改善了及其语言的可读性、可记性,能够利用计算机所有的硬件特征且能直接用来控制硬件,是计算机能够提供给用户的最快且最有效的汇编语言。 本次设计即是在8086汇编语言的基础上,利用Masmforwindows集成实验环境,通过应用微机原理中汇编的几个步骤编辑、汇编、连接、运行或调试运行,使得在doc界面完成图形变换。关键词:汇编语言 doc

    5、 控制 Masm 图形变换程序设计1 设计意义(1) 巩固和加深课堂所学知识。(2)将课本上的理论知识和实际应用有机的结合起来,培养同学们分析和解决实际问题的能力。 (3)通过对汇编语言程序代码的阅读、修改、设计,理解和掌握复杂的汇编语言应用程序的编程,提高实践编程能力。 本程序要求按不同的键显示不同的图形,按“q”键退出。实质上通过做这道题目可以检查学生对汇编语言这门课程的基本知识的掌握程度。能用汇编语言熟练地运用顺序、选择、循环三大结构,进一步掌握各个指令的功能,特别是转向指令,能够让我们熟悉并掌握DOS系统功能调方法;同时在程序设计过程中熟悉并掌握各种指令的应用,知道编程的具体流程。 只

    6、有掌握汇编语言基本编程方法,掌握程序各部分功能及其相互联系、相互作用,才能把程序写出来,才能把程序写好。2 设计内容2.1程序的内容与要求 掌握8086汇编语言程序设计方法,设计一个图形变换显示程序。程序运行后,键盘输入不同进行不同处理:(1)输入Q,显示Thank You !并结束程序;(2)输入E,显示一个用不同颜色填充且带有边框的矩形图案;输入F,显示一个用不同颜色填充的圆形图案。2.2 程序运行条件本程序可在DOS,windows 98或DOS模拟器上运行。所需要工具软件为MASM5.0及以上版本。3 方案设计3.1 设计思路3.1.1 显示字符程序 显示“Thank You”程序是最

    7、易于设计的一部分,只需要定义其字符串为字节型变量,并定义在当键盘输人为Q时显示,并退出运行即3.1.2 显示圆形 首先,定义x为竖线的列值,Y1和Y2分别为竖线的两端点的行值,并将界面分成LEFT和RIGHT两部分。在LEFT部分,输入值为列数A,给圆的半径R赋具体值,通过算法完成下式求得A对应的行值,从而确定Y2,再利用中间变量实现Y1与Y2的等值,即可画出LEFT部分的一条弦。再用宏定义,使A值从0到R,完成弦在0到R上的积分,就形成左半部分的半圆,同理,可完成右半部分的半圆,两个半圆整合,便形成圆。 图3-1 定义弦 图3-2 计算圆上点的坐标 3.1.3 显示矩形 先确定一点,定义为矩

    8、形左上角的列号和行号,即确定了矩形的一个角点坐标,再定义其长度和宽度并赋值,知道左上角角点坐标及矩形长宽,即可画出矩形。边框的设计实际是大小两个矩形的重叠形成的,定义第二个矩形时,其角点及长宽比之前的尺寸少有增加,酌情而定,设置输出时,底层显示尺寸较大的矩形,上层显示尺寸较小的矩形,使得上层矩形显示完整,下层矩形显示多出来的部分,即形成边框,并在输出颜色是设置两个举行的色差,从而明显显示出边框。3.2 程序流程图 程序流程图如图3-3所示 图3-3 程序流程图4 程序分解4.1 字符显示程序 在设计思路中已经提到,显示字符的程序较为简单,只需用字节型变量定义字符串,并定义在接收Q是显示,并退出

    9、运行即可。 DB 0DH,0AH,Q: display Thank You ! and quit to DOS.,0DH,0AHMSGQ DB 0DH,0AH,Thank You !,$4.2 圆形显示程序(1)利用弦的积分方法,定义宏: LINE MACRO X,Y1,Y2 ;画列值为x,行值从Y1到Y2的直线 LOCAL LL,FIRST MOV AAAAA MOV AAAAA MOV AAAAA MOV AAAAA JMP AAAAALL: INC AAAAA ;行值加1FIRST: MOV AAAAA INT 10H CMP DX,Y2 JNZ LL ;判断Y1和Y2是否相等,若相等则

    10、完成 ENDM(2)定义坐标: CIRCLE MACRO MOV A,0 ;初始化圆的横坐标AGA: CALL AAA ;计算纵坐标的值 MOV AAA MOV CL,A ADD CX,X0 MOV AAA ;右平面弦的列值 MOV AAA MOV CL,A NEG CX ADD CX,X0 MOV AAA MOV AAA ADD AAA MOV AAA ;弦的上端点的行值 MOV AAA NEG AAA ADD AAA MOV AAA;弦的下端点的行值 LINE AAA LINE RIGHT,DOWN,UP;在右平面画弦 INC A MOV AL,R(3) 计算纵坐标的子程序: SQRT P

    11、ROC NEAR ;计算行坐标 MOV MUL MOV MOV MUL SUB MOV CX,0LAST1: MOV DX INC D SUB AX JC E INC C JMP LEXIT1: MOV H,CX;计算结果保存在H单元内 RETSQRT ENDP4.3 矩形程序显示 产生矩形的子程序: RECTANGLE PROC NEAR PUSH ? PUSH ? PUSH ? PUSH ? PUSH ? MOV D? ;矩形左上角行号 MOV CX? MOV AL,? MOV DI? ;矩形的长 ADD DI,CX MOV SI,?TWID ;矩形的宽 ADD SI,DXHLINE: M

    12、OV C?MNHAGAIN: MOV AHV MOV ? INT ? INC CX CMP ? ;是否达到矩形的长? JL HA? ADD DX,1 CMP D?E POP ? POP ? POP ?X POP D? POP AX RETRECTANGLE ENDP4.4 产生颜色的子程序 RANDOMCOLOR ?OC NEAR PUSH ? PUSH BX PUSH ?XRANDCOLOR: IN AL,40H CMP A? JA ?OLOR MOV V?,AL POP ? POP BX POP AX RETRANDOMCOLOR ENDP4.5 屏幕初始化子程序 CLSMENU PROC

    13、 NEAR MOV ? ;设置屏幕显示方式 MOV ?;定义成640*480 16色图形模式 INT 10H LEA B? ;显示菜单 MOV AH,13H MOV AL,01 MOV C? MOV ? MOV BH,0 MOV ? INT ? RETCLSMENU ENDP5 运行结果显示5.1 矩形输出显示 输入E,矩形输出显示如图5-1所示 图5-1(a) 矩形输出显示程序 图5-1(b) 矩形输出显示程序5.2 圆形输出显示 输入F,圆形输出显示如图5-2所示 图5-2(a)圆形输出显示 图5-2(b)圆形输出显示5.3 字符串输出显示 输入Q,字符串输出显示如图5-3所示5-3 字符

    14、串输出显示6 设计过程中的问题 在设计过程中出现的最大问题,就是开始按E后正常显示矩形,再按F后,在显示圆的同时,还会显示矩形,矩形在底层,再按E,在显示矩形的同时还会显示圆形,且圆形在底层,运行结果如图6-1所示。 图6-1(a) 错误运行结果 图6-1(b) 错误运行结果 经分析,出现该问题的原因是没有清屏,导致按下一个键,显示下一个图形的时候,上一个图形依旧不会消失,找到了问题所在,之前是由于在设置输出时,仅在第一次输出矩形之前屏幕初始化。修改后,定义屏幕初始化的子程序,在输出矩形和圆形事,都先有调用清屏的子程序这一步,是的错误得以纠正,屏幕初始化子程序的调用如下: CALL CLSME

    15、NU ;屏幕初始化并显示菜单 CALL RAN? ;随机产生颜色 CALL ? ;画外框矩形 CALL CLSMENU ;屏幕初始化并显示菜单 CALL RANDOMCOLOR ;随机产生颜色 MOV ? CIRCLE;在屏幕上画出半径为R的圆心得体会 本次课程设计题目是图形变换程序设计。初次看到题目,没有任何的思路,情急之下,心神不定地查了一整天的资料,也没有太大的收获。自己完全局限于课本上所学的简单的语言,但那远不足以完成本次课设的任务。最后,我决定通过查阅参考资料,并上网查询各种代码的含义,自己设计画图的算法,实现图形的显示。 在整个过程中,圆的画法是最不易的。开始参考了别人画圆轨迹线,

    16、从中得到了启示,做圆上弦的积分由线及面,形成圆面。 这次课程设计对我而言,其难度是之前从未有过的。然而,我还是靠自己的毅力挺了过来。在查阅了大量资料后,掌握了简单图形显示的程序,熟悉了子程序的调用和doc功能的实现,并初步学会了中断在程序中的应用。 两周的汇编语言课程设计结束了,我的收获是很大的。通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实提高了我的编程能力,补全了我的不足。 值得庆幸的是,这次课程设计,自己是独立完成的,并未参考他人方案。虽然并未有很多设计上创新的地方,但对我来说,这是一种突破,自己独立解决问题的能力进一步提高。 在今后的课程设计中

    17、,我依旧要保持这种独立思考的习惯,将自己的短处变为长处。 致谢 我本次的课程设计是在?老师老师亲切关怀与细心指导下完成的。从题目的选择到设计的最终完成,?老师始终都给予了我细心的指导和不懈的支持,并且在耐心指导之余,?老师仍不忘关心我们的生活,冷冷寒冬的关怀让我们倍感温暖。值得一提的是,?老师宅心仁厚,闲静少言,不慕荣利,对学生认真负责,在他身上,我们可以感受到一个学者的严谨和务实,这些都让我们获益菲浅,并且将终生受用无穷。毕竟“经师易得,人师难求”,希望借此机会向?老师表示最衷心的感谢!参考文献【1】彭虎 周佩玲 付忠谦.微机原理与接口技术(第二版) 电子工业出版社 2008.3【2】张凡.

    18、微机原理与接口技术(第二版) 清华大学出版社 2010.9【3】朱定华. 微机原理、汇编与接口技术清华大学出版社 1010.1 【4】牟琦 聂建萍. 微机原理与接口技术清华大学出版社 1007.12【5】吴叶兰. 微机原理与接口技术机械工业出版社 2009.8附录;-;宏功能:画一条竖线;哑元意义:x为竖线的列值; Y1和Y2分别为竖线的两端点的行值;-LINE MACRO X,Y1,Y2 ;画列值为x,行值从Y1到Y2的直线 LOCAL LL,FIRST MOV ? MOV ?/? MOV /? MOV D/? JMP /?LL: INC /?;行值加1FIRST: MOV /? INT 1

    19、0H;写一个像素点 CMP /? JNZ LL ;判断Y1和Y2是否相等,若相等则完成 ENDM;-;宏功能:通过分别在左右平面画垂直于x轴的弦来画一个实心圆;-CIRCLE MACRO MOV /?;初始化圆的横坐标AGA: CALL/?;计算纵坐标的值 MOV /? MOV /? ADD /?;右平面弦的列值 MOV CH,0 MOV /? NEG V ADD C/? MOV /?;左平面弦的列值 MOV DX,H ADD /? MOV V/? NEG DX ADD /? MOV /?;弦的下端点的行值 LINE LEFT,V/?;在左平面画弦 LINE /?;在右平面画弦 INC A;继

    20、续画其他弦至画出圆 MOV AL,R CMP /? JNZ /? ENDM;*DATA SEGMENT MENU DB 0DH,0AH,Please press a key:,0DH,0AH DB 0DH,0AH,E: show a rectangle. DB 0DH,0AH,F: show a circle. DB 0DH,0AH,Q: display Thank You ! and quit to DOS.,0DH,0AH MENULEN EQU $-MENU MSGQ DB 0DH,0AH,Thank You !,$ ROW /? COLUMN /? RECTLEN DW /? RECT

    21、WID DW V COLOR DB/? R DB ? /? DB ? ;存放圆的横坐标 A2 DW /? H DW /? ;存放圆的纵坐标 Y0 EQU /? ;纵坐标的行值 X0 EQU /? ;横坐标的列值 RIGHT DW ? ;存放右平面的列值 LEFT DW ? ;存放左平面的列值 UP DW ? ;存放上半平面的行值 DOWN DW ? ;存放下半平面的行值DATA ENDS;*CODE SEGMENT ASSUME DS:DATA,CS:CODE,ES:DATA;-START: MOV A/? MOV/? MOV /?;- CALL CLSMENU;屏幕初始化并显示菜单WAITP

    22、RESS:;等待按键 MOV /?;接受命令 INT 1/? OR A/?;转换成小写字母 CMP AL,e JZ DRAWRECT CMP AL/? CMP A/? JZ QuitProc JMP W/?DRAWRECT: CALL CLSMENU;屏幕初始化并显示菜单 CALL R/?;随机产生颜色 CALL RECTANGLE;画外框矩形 PUSH V/?/? PUS/? PUSH RECTLEN DD ROW,8 ADD/? SUB /? S/? ADD COLOR,8 CALL R/?;画内部矩形 POP REC/? POP R/? POP ROW JMPV/?SDRAWCIRC:

    23、CALL CLV/?;屏幕初始化并显示菜单 CALL/?;随机产生颜色 MOV /? CIRCLE;在屏幕上画出半径为R的圆 JMP /?QuitProc: MOV AL,03 MOV AH,0 INT /? MOV DX,OFFSET MSGQ;显示信息 MOV /? INT 21H MOV /?;返回DOS INT 21H;-;产生矩形 子程序RECTANGLE PROC/? PUSH AX PUSH /? PUSH CX PUSH /? PUSH /? MOV DX,ROW ;矩形左上角行号 MOV /? ;矩形左上角列号 MOV /? MOV /? ;矩形的长 ADD DI,CX MO

    24、V /? ;矩形的宽 ADD SI/?HLINE: MOV /?HAGAIN: MOV AH/? ;写像素 MOV /? INT /? INC /? CMP /? ;是否达到矩形的长? JL /? ADD /? CMP /? ;是否达到矩形的宽? JL /?E POP SI/? DI POP /? POP /? RETRECTANGLE ENDP;-; 计算纵坐标的值辅助画圆子程序SQRT PROC /? ;计算行坐标 MOV A/? MUL /? MOV /? MOV /? MUL /? SUB A/? MOV CX,0LAST1: MOV /? ADD /? INC DX SUB /? J

    25、C EXIT1 INC CX JMP /?EXIT1: MOV /?;计算结果保存在H单元内 RETSQRT ENDP;-; 随机产生颜色 子程序RANDOMCOLOR PROC NEAR PUSH /? PUSH BX PUSH /?RANDCOLOR: IN /? CMP/? JA RANDCOLOR MOV /? POP DX POP /? POP AX RETRANDOMCOL/?;-;屏幕初始化并显示菜单 子程序;-CLSMENU PROC/? MOV AH,0 ;设置屏幕显示方式 MOV AL,12H;定义成640*480 16色图形模式 INT /? ;调用BIOS显示中断 LE

    26、A BP,MENU /? MOV AL,01 MOV CX,MENULEN MOV /? MOV/? MOV DX,0/?H RETCLSMENU ENDP;*CODE ENDS END START本科生课程设计成绩评定表姓 名 性 别 专业、班级 课程设计题目: 图形变换程序设计课程设计答辩或质疑记录:1. 如何实现画圆?首先规定平面内某一点,实际为圆的几何中心,圆的半径R设置为某一具体值。首先定义横轴上一点A,用勾股定理求得该点半弦长,做算法使上下弦长相等,即实现一条弦的绘制。利用积分的方法,分别操作圆的左右两个半平面,使A的值从0连续变到半径R,做弦从0到R上的积分,由点变面,左右分别操

    27、作,两个半圆整合,形成了圆。2. 如何实现画矩形?首先定义矩形左上角的角点坐标,再定义其长和宽,由一个固定点和长宽,可画出符合要求的标准矩形。对于矩形的边框设置,首先输出一个尺寸略大的矩形,再输出尺寸稍小的矩形,小矩形完全显示,大矩形显示未被小矩形遮住的部分,即显示出边框。 成绩评定依据:评 定 项 目评分成绩1选题合理、目的明确(10分)2设计方案正确,具有可行性、创新性(20分)3设计结果(例如:硬件成果、软件程序)(20分)4态度认真、学习刻苦、遵守纪律(15分) 5设计报告的规范化、参考文献充分(不少于5篇)(10分)6答辩(25分)总 分最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字: 年 月 日16


    注意事项

    本文(图形变换程序设计.doc)为本站会员(星星)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922