欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    图形变换.docx

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

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

    图形变换.docx

    1、图形变换微机原理课程设计说明书 级 专业 班题 目 图形变换 姓 名 学号 指导教师 职称 年 月 日图形变换摘要汇编语言是一门涉及硬件的程序语言,也是电气工程及其自动化专业的一门重要的专业基础课。也是学习微机接口与原理技术必须掌握的一门语言。本次课程设计就是利用汇编语言直接操作硬件,实现画图,并且根据键盘字母输入从从屏幕上输出不同颜色,不同形状的图形。该报告主要包括了涉及任务及要求分析,系统原理阐述,流程图和源程序,其中程序主要分为两大部分,主程序和子程序,主程序中包含了清屏指令组,子程序调用指令和退出指令,子程序分别实现画三角形,画矩形的功能。本次课程设计主要是通过应用微机原理中汇编的几个

    2、步骤编辑、汇编、连接、运行或调试运行,使得在DOS界面完成图形变换。关键词:汇编语言、DOS、BIOS一、设计任务及要求分析 1、设计任务 按S用四种颜色各显示一个矩形的程序,按T用三种颜色各显示一个三角形的程序,按Q退出程序。2、要求分析本课程设计的任务是用汇编语言编写一个“显示图形变换程序”,根据题目分析可得该程序需要实现以下几个功能,第一,检测键盘字母输入;第二,判断字母是否符合要求,第三,当符合条件时调用正确的子程序;第四,运行输出想要的结果。本课程设计大体可分为二个子程序,即显示矩形和显示三角形的程序。设计之前要查询资料,熟悉DOS调用和BIOS调用,以便在DOS界面上能输出图形和颜

    3、色。二、图形变换的原理分析 根据课程设计任务书所给出条件要求,我主要把程序分为四部分来实现,即把程序分为四个模块,采用子程序调用的方法,这样不仅有利于程序的编写,使程序清晰可见,还方便程序的修改及阅读。第一个模块为主程序模块,该程序快中主要有清屏程序组,使屏幕上卷,从而实现清屏功能,清屏功能用INT 10H的功能六实现,键盘输入判断,利用CMP指令,判断ZF标志位,从而调用正确的子程序,最后是退出语句。第二个模块为画圆程序块。第三个模块和第四个模块分别为画矩形和画三角形子程序,他们的原理是完全相同的,首先利用CX确定一个行坐标,利用DX确定一个纵坐标,两坐标交点即为像素点坐标,然后利用INT

    4、10H的0CH号功能写入像素,用BH的值确定像素点颜色,利用CX寄存器的值确定直线的像素点个数,即为线长,此法关键在于正确确定每个顶点的坐标。3、设计方案的选择根据题目要求需实现画图功能,我主要采用了两种方法。第一种方法是直接建立坐标,在坐标点写入像素,该方法利用10H中断的0CH号功能写像素,并且通过AL寄存器设置像素点颜色,用这个方法的话比较容易理解,无需其他算法,操作起来比较简单,但是能实现的画图功能比较有限,如利用这个方法画直线比较简单,语句较少,但是在画非直线图形的时候用这个方法反而变得很复杂。 第二个方法通过各行、各列像素中心构造一组虚拟网格线,按直线从起点到终点的顺序计算直线各垂

    5、直网格线的交点,然后确定该列像素中与此交点最近的像素。该算法的优点在于可以采用增量计算,使得对于每一列,只要检查一个误差项的符号,就可以确定该列所求的像素。四、程序分析与设计 1、主程序的分析与设计首先分析主程序,主程序中包含了清屏程序和子程序调用以及退出子程序,清屏子程序的目的是清楚屏幕上的内容,接着根据输入字母判断后调用符合条件的子程序。主程序如下: MAIN PROC FAR MOV AX,DATAS MOV DS,AX MOV AX,0600H ; 用INT 10H的功能6清屏 MOV BH,7 MOV CX,0 ;窗口左上角坐标 MOV DX,184FH ;窗口右上角坐标 INT 1

    6、0H L1: MOV AH,1 ;利用21H中断判断字母 INT 21H ; 输入并改变ZF标志位 CMP AL,S JZ P1 CMP AL,T JZ P2 CMP AL,Q JZ EXIT JMP L1 P1: CALL JUXING ;调用画矩形的子程序 JMP L1 P2: CALL SANJIAO ;调用画三角形的子程序 JMP L1 EXIT: MOV AX,4C00H :退出子程序 INT 21H MAIN ENDP主程序流程图如下图图1所示: Y N Y N N Y 图1 程序流程图2、画三角形子程序分析 画三角形子程序:画三角形子程序靠点亮屏幕像素点实现,通过INT 10H中

    7、断的0C号功能设置屏幕的模式为写像素模式,通过BH的值确定像素点颜色,通过坐标确定三角形各点的坐标,CX的值为横坐标,DX的值为纵坐标,通过循环点亮像素点分别构成三角形的两直角边和斜边。画三角形子程序如下: SANJIAO PROC NEAR MOV AH,0 ;设置显示模式 MOV AL,12H INT 10H MOV CX,100 ;从坐标(100,200)处画第一个三角形水平线 MOV DX,200 LOP1: MOV AH,0CH MOV AL,0AH MOV BH,0 INT 10H INC CX CMP CX,200 ;线长为100 JNZ LOP1 MOV CX,100 ;从坐标

    8、(100,200)处画第 MOV DX,200 一个三角形垂直线 LOP2: MOV AH,0CH ;写像素功能 MOV AL,0AH ;颜色为浅绿色 MOV BH,0 INT 10H DEC DX CMP DX,100 ;判断线是否结束,线长为100 JNZ LOP2 MOV CX,100 ;从坐标(100,100)处画第一个 MOV DX,100 三角形斜线 LOP3: MOV AH,0CH MOV AL,0AH MOV BH,0 INT 10H INC CX INC DX CMP DX,200 JNZ LOP3 MOV CX,300 ;画第二个三角形,画法和的个三角 MOV DX,200

    9、 一样关键在于找准坐标 LOP4: MOV AH,0CH MOV AL,0CH MOV BH,0 INT 10H INC CX CMP CX,400 JNZ LOP4 MOV CX,300 MOV DX,200 LOP5: MOV AH,0CH MOV AL,0CH MOV BH,0 INT 10H DEC DX CMP DX,100 JNZ LOP5 MOV CX,300 MOV DX,100 LOP6: MOV AH,0CH MOV AL,0CH MOV BH,0 INT 10H INC CX INC DX CMP DX,200 JNZ LOP6 MOV CX,500 ;画第三个三角形 M

    10、OV DX,200 LOP7: MOV AH,0CH MOV AL,0EH MOV BH,0 INT 10H INC CX CMP CX,600 JNZ LOP7 MOV CX,500 MOV DX,200 LOP8: MOV AH,0CH MOV AL,0EH MOV BH,0 INT 10H DEC DX CMP DX,100 JNZ LOP8 MOV CX,500 MOV DX,100 LOP9: MOV AH,0CH MOV AL,0EH MOV BH,0 INT 10H INC CX INC DX CMP DX,200 JNZ LOP9 RET SANJIAO ENDP画三角形程序流

    11、程图如下图图2所示: Y N 图2 画三角形程序流程图 图2为画三角形程序流程图,画出一边后,依据同样的方法确定坐标即可画出其余所有边。 3、画矩形子程序分析 画矩形程序分析:矩形的画法和三角形的画法是一样的,找准各个点的坐标,从一个坐标到另一个坐标之间点亮像素点即为矩形的边。画矩形的程序如下: JUXING PROC FAR MOV AH,0 MOV AL,12H INT 10H MOV CX,50 ;画第一个矩形 MOV DX,200 ;起始点坐标为(50,200) LOP1: MOV AH,0CH ;设置写像素 MOV AL,0AH ;设置颜色 MOV BH,0 ;设置页号(一般为0)

    12、INT 10H INC CX ;横坐标加一 CMP CX,100 ;判断直线是否画完 JNZ LOP1 ;若ZF不为0则循环LOP1 直到画完直线 MOV CX,50 ;以下程序段和上一断是一样的 MOV DX,200 ;除坐标外用法相似,在此不再 LOP2: MOV AH,0CH ;阐述 MOV AL,0AH MOV BH,0 INT 10H DEC DX CMP DX,100 JNZ LOP2 MOV CX,50 MOV DX,100 LOP3: MOV AH,0CH MOV AL,0AH MOV BH,0 INT 10H INC CX CMP CX,100 JNZ LOP3 MOV CX

    13、,100 MOV DX,100 LOP4: MOV AH,0CH MOV AL,0AH MOV BH,0 INT 10H INC DX CMP DX,200 JNZ LOP4 MOV CX,150 ;第二个矩形 MOV DX,200 LOP5: MOV AH,0CH MOV AL,0CH MOV BH,0 INT 10H INC CX CMP CX,200 JNZ LOP5 MOV CX,150 MOV DX,200 LOP6: MOV AH,0CH MOV AL,0CH MOV BH,0 INT 10H DEC DX CMP DX,100 JNZ LOP6 MOV CX,150 MOV DX

    14、,100 LOP7: MOV AH,0CH MOV AL,0CH MOV BH,0 INT 10H INC CX CMP CX,200 JNZ LOP7 MOV CX,200 MOV DX,100 LOP8: MOV AH,0CH MOV AL,0CH MOV BH,0 INT 10H INC DX CMP DX,200 JNZ LOP8 MOV CX,250 ; 第三个矩形 MOV DX,200 LOP9: MOV AH,0CH MOV AL,0EH MOV BH,0 INT 10H INC CX CMP CX,300 JNZ LOP9 MOV CX,250 MOV DX,200 LOP10

    15、: MOV AH,0CH MOV AL,0EH MOV BH,0 INT 10H DEC DX CMP DX,100 JNZ LOP10 MOV CX,250 MOV DX,100 LOP11: MOV AH,0CH MOV AL,0EH MOV BH,0 INT 10H INC CX CMP CX,300 JNZ LOP11 MOV CX,300 MOV DX,100 LOP12: MOV AH,0CH MOV AL,0EH MOV BH,0 INT 10H INC DX CMP DX,200 JNZ LOP12 MOV CX,350 ;第四个矩形 MOV DX,200 LOP13: MOV

    16、 AH,0CH MOV AL,0FH MOV BH,0 INT 10H INC CX CMP CX,400 JNZ LOP13 MOV CX,350 MOV DX,200 LOP14: MOV AH,0CH MOV AL,0FH MOV BH,0 INT 10H DEC DX CMP DX,100 JNZ LOP14 MOV CX,350 MOV DX,100 LOP15: MOV AH,0CH MOV AL,0FH MOV BH,0 INT 10H INC CX CMP CX,400 JNZ LOP15 MOV CX,400 MOV DX,100 LOP16: MOV AH,0CH MOV

    17、AL,0FH MOV BH,0 INT 10H INC DX CMP DX,200 JNZ LOP16 RET JUXING ENDP 画矩形程序流程图和三角形程序流程图如下图图3所示: Y N 图3 画矩形程序流程图 五、调试记录与结果分析 1、调试记录程序代码写好之后,我进行了大量调试工作,首先是把子程序通过主函数连接在一起,运行程序后,生成了EXE文件,但是无法得出结果,跳出对话框显示“系统不支持全屏显示”,于是在网上查了之后发现在win7下DOS不支持全屏显示,如下图图4所示:图4 调试错误截图通过同学的帮助,最终找到了解决办法,利用一个叫DOSBOX的软件能在win7的环境下运行汇编

    18、该EXE文件,但在运行时需要用到几句调用指令。指令如下MOUNT C D:C:文件名.EXE 此外在程序编写过程中也遇到了一些小问题,跳转设置不正确,使程序无法按预定的步骤跳转,在主程序中条件跳转JZ和无条件跳转JMP的运用没有用对,最终通过几次调试,找到了正确的排放顺序。 2、结果分析程序调试正确后按不同的字母有不同的显示,实现了题目所要求的功能。按S后程序运行后结果显示如下图图5所示: 图5 四个矩形按T后程序运行结果显示如下图图6所示: 图6三个三角形五、心得体会通过几天的努力,我完成了这次微机原理课程设计,其中遇到了很多问题,最难得应该是如何画圆我通过上网查资料最终找到了解决办法,其次

    19、是无法运行的问题,通过同学的帮助的利用DOS软件解决了该问题,在课程设计中,我把程序分为两个大步骤进行,首先是分别完成画三角形,画矩形,画圆的功能,实现模块化功能,然后再通过子程序调用将程序连接起来并调试实现我们想要的功能。在课程设计中,用到了很多在课堂上没有涉及并学习的相关知识,如很多中断功能号的作用及相关寄存器的设置,颜色的搭配等,本次课程设计中我主要用到了10H中断,16H中断,21H中断,它们都有很多功能号,且不同的功能号实现不同的功能,所以我们必须查阅很多资料,借此我们可以学到了一些新的东西,如INT 10H的06H号克用来作清屏功能,21H中断的01H可以用来扫描键盘输入,在设置像

    20、素点颜色是只需在10H中断的0C 号功能下设置BH寄存器即可等。 通过课程设计,让我认识到汇编语言和其他高级语言的不同点,汇编语言晦涩难懂但运行效率很高,高级语言虽然容易编写但相对汇编语言效率较低,通过这次课程设计让我对微机原理课程上讲到的各种部分的功能,以及子程序的调用有了实际运用的机会,还提高了自己的动手能力和运用汇编语言的编程能力,对我以后走上工作岗位很有帮助,加强了专业技能。参考文献1微机原理与接口技术(基于16位机),周佩玲等,电子工业出版社.20052微型计算机原理与接口技术,姚燕南,高等教育出版社.20043计算机硬件技术及应用基础下册:接口与应用,邹逢兴,国防科技大学出版社.2

    21、0014微型计算机接口技术及应用,2000.刘乐善,华中科技大学出版社.5IBM PC汇编语言程序设计,2001.沈美明、温冬婵,清华大学出版社.680X86汇编语言程序设计. 马妮编著,机械工业出版社,20097 汇编语言程序设计.齐志儒、高福祥,东北大学出版社,20008微型计算机原理与接口技术. 姚燕南、薛钧义,北京:高等教育出版社,20049 汇编语言(第二版).王爽,清华大学出版社,200810Windows环境下汇编语言程序设计. 蓝琚成,地质出版社,200011IBMPC汇编语言程序设计(第二版). 沈美明、温冬婵,清华大学出版社,2005年设计总结:通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。指导教师评语:课程设计成绩: 指导教师签名: 年 月 日


    注意事项

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

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开