汇编语言课设图形设计程序完整版.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
武汉理工大学《微机原理与接口技术》课程设计说明书 PAGE PAGE 7 目录 TOC \o 1-3 \h \z \u 摘要 1 1. 方案选择 1 1.1字符构成图形 2 1.2在图片模式下直接导入相关图形的图片 2 1.3在图片模式下采用计算求点写像素的方法绘图 2 1.4在图片模式下采用鼠标绘图 2 2. 编程思想 2 3. 程序设计 2 3.1 主程序设计 2 3.2矩形子程序设计 3 3.3三角形子程序设计 4 3.3圆形子程序设计 4 3.4公共使用子程序设计 5 4. 硬件原理 5 5. 调试结果 5 结束语 6 参考文献 6 附录1 7 附录2宏文件 21 摘要 本绘图程序人机交互性好,可以方便的调节矩形,三角,圆的大小和形状。在采用bresenham算法提高了运行速度同时,图形的显示方法是采用写像素的方法定位精确轨迹平滑。同时还增加了动态显示效果,可以直观的看到像素点的移动。程序在编译之后只有2KB大小占用内存小运算快速。 关键字:绘图 动态显示 任意大小 计算机图形显示软件设计 方案选择 1.1字符构成图形 在图形由字符构成时,屏幕的显示模式为为文字型。编程简单但是图像质量和交互性很差 1.2在图片模式下直接导入相关图形的图片 程序较易实现,显示的效果非常好。但是图片在取模之后很大,在读取像素写像素时较慢。交互性也不好 1.3在图片模式下采用计算求点写像素的方法绘图 程序编程复杂,算法复杂。绘图效果较好,程序很灵活可以显示各种形状大小的三角,矩形和圆。交互性很好而且还可以改变颜色,添加动态显示,实现图像移动等效果。 1.4在图片模式下采用鼠标绘图 程序的交互性很好,可以很方便的确定图形绘制的位置和大小。但是编程太复杂,查阅了有关资料。是使用dos中断来调用鼠标,之后对鼠标跟踪控制。 在综合比较之下,程序的性能是首要考虑的指标。方案三和方案四比起来较易编写一些。所以最终采用的是方案三。 编程思想 在程序设计时采用先整体再分块,模块化编程的思想。首先整体设计出程序的框架,写好主程序。再分模块写好各个子函数。调试好一个功能后再去编写下一个模块。 主函数的主体是一个分支选择程序。包含了三个绘图模块圆,三角,矩形的数据定义和分支入口程序段。而三个绘图子模块中又各自包含了若干子函数。同时为了使程序紧凑,还编写了一些各个子模块公共使用的子函数。 程序概要框架图如下 图1:程序概要框架图 程序设计 3.1 主程序设计 主程序主体是一个分支选择程序,包含了提示菜单,输入部分和选择部分。采用MOV AH,9 INT 21H中断在屏幕上输出提示信息。MOV AH,1 INT 21H从键盘输入一个字符将它的存在AL中再与1,2,3,q相比较跳转到响应的子函数入口程序段中。 同时还设计了检验输入的程序段再输入不为1,2,3 q,时将自动跳转提示重新输入。 图2:主程序流程图 3.2矩形子程序设计 在矩形子程序中采用写像素点的方法,点动成线将四条线一条一条的画出来。首先提示输入信息输入矩形的长和宽。调用一个输入函数将输入数据以16进制的方式存入AX中,再转存到L_S ,W_S 中。 之后将屏幕的模式设为图像模式640*480*16色,将长和宽一次存入CX中采用循环LOOP指令。保持X不变Y依次增加或者Y不变X依次增加将四条直线一一画出。同时为了使显示效果更好一些对线条进行了加粗,宽度为两个像素。 为了使程序结构清晰编写了WRITE_PIXEL宏指令,每调用一次就画出一个点。而且可以认为的设定点的位置颜色等。 在函数中还加入了延时子程序,每画完一个点之后就调用一个延时子程序。这样就可以在屏幕上实现动态显示。 在这部分的程序设计中也是采用模块化的思想,先画出一条直线。改变参数就可以画出另外的三条直线。同时在屏幕模式设定时也编写宏指令SETMODE。 调用的宏指令如下 WRITE_PIXEL MACRO PAGE1,ROW,COLUMN,COLOR MOV AH,0CH MOV AL,COLOR MOV BH,PAGE1 MOV DX,ROW MOV CX,COLUMN INT 10H ENDM SETMODE MACRO MODE1 MOV AH,0 MOV AL,MODE1 INT 10H ENDM 子程序流程图如下 图3:矩形子程序流程图 3.3三角形子程序设计 在三角形绘制中程序也分为几个部分,首先是三个顶点的输入子程序。然后将三个顶点压栈,再调用Bresenham画线子程序。在Bresenham画线子程序中依次调用写像素子程序和延时子程序实现三条线段的动态显示。 三角

文档评论(0)

ldj215323 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档