logo资料库

汇编语言课程设计动态小车图形.doc

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
华 北 科 技 学 院 课程设计说明书 网络 B152 姓名: 马成浩 201507024231 汇编语言课程设计 2017-12-11 至 2017-12-22 班级: 学号: 课程名称: 课设时间: 成绩评定: 1、工作量: A( ),B( ),C( ),D( ),F( 2、难易度: A( ),B( ),C( ),D( ),F( 3、答辩情况: 基本操作: A( ),B( ),C( ),D( ),F( 代码理解: A( ),B( ),C( ),D( ),F( 4、报告规范度: A( ),B( ),C( ),D( ),F( 5、学习态度: A( ),B( ),C( ),D( ),F( ) ) ) ) ) ) 总评成绩: 指导教师:
1、 课程设计的目的、任务 利用我利用所学的基本知识和技能,发挥自学能力和查找资料的能力,解决 稍微复杂的结构化程序设计问题,加深对所学知识的理解与掌握,增强自己利用 所学知识解决实际问题的能力,为以后的程序开发打下基础。巩固和加强《汇编 语言》课程的理论知识。掌握汇编语言的基本概念、语法、语义和数据类型的使 用特点和掌握汇编语言程序设计的方法及编程技巧,能正确使用汇编语言编写程 序。进一步理解与运用结构化程序设计的思想和方法;学会利用流程图或 N-S 图 表示算法。掌握调试程序的基本方法及上机操作方法。掌握书写程设计开发文档 的能力,让我学会撰写课程设计总结报告。通过查阅手册和文献资料,培养自己 独立分析问题和解决问题的能力。培养自己的创新能力和创新思维。让自己可以 根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。在课程设计 书写代码时,建立良好的程序设计风格。 2、 软件需求分析和设计 题目:小车动态图形设计 要求:小车在公路上行驶,从屏幕左侧驶向右侧。在到达屏幕右侧 ,公路下 降一段距离并改变颜色,然后小车继续由左向右行驶驶。当下降到屏幕底部时, 又返回到屏幕顶部重复上述过程,直到有键按下。公路和小车的颜色不样,要用 到INT 10H功能。 分析:在这个动态图形设计中,我的思路主要分为以下几个步骤,然后围绕以 下步骤一一解决这个问题。 (1) 确定小车是有哪些部分组成,即构造小车。 (2) 把小车显示在屏幕上。 (3) 写一个循环,让小车在屏幕上从左向右移动 (4) 清屏后改变小车的行位置,再次让小车从左向右移动。 (5) 构造一条马路
(6) 为小车和马路上色 主要的流程图如下: Yes 启动程序 小车行驶 有无按键 no Row 递增 CX 判断是否行 驶到屏幕最右端 no yes Row,column 初 始 化 程序结束
3、 程序实现说明 (1)小车和路组成,主要用到 ASCII 扩展字符集,然后用置光标位置和 9 号 功能显示出来。 car0 db 32,32,32,32,32,32,247,32,'$' car1 db 32,32,219,219,32,201,32,'$' car2 db 32,219,219,219,219,219,219,219,'$' car3 db 32,32,233,32,32,32,233,'$' road db 80 DUP(178),'$' mov cl,0 mov row,CL mov dh,row mov dl,column mov bh,0 mov ah,2 int 10h outcar 9,car0 inc row (2)通过循环改变小车的列坐标,让小车在屏幕上移动,这里用延时程序便于 观察运动轨迹。 mov cx,73 S1: push cx mov cl,0 ….. ……. longtime ;延时 POP CX dec cx ;循环 cmp cx,0 jnz S1
(3)清屏后改变小车和路行左边,列初始化再次让小车在屏幕上移动。(这里 的效果相当于公路下降) 清屏:定义了一个宏 clearsc macro color clearsc 01h ;清屏后改变公路的行位置,公路下降。 mov dh,10 mov dl,0 mov bh,0 mov ah,2 int 10h showcolor 178,6 outcar 9,road 然后再改变小车的行坐标,通过(2)步骤,让小车再次行驶在屏幕上。 (4)在移动的过程中添加 16 号中断 1 号功能,当有按键输入时,程序结束运行。 mov ah,1 int 16h jnz quit quit: mov ah,4ch int 21h (5)改变小车和路的颜色。这里小车的颜色主要是通过清屏设置前景色来实现 的。路得颜色定义了一个宏来实现。 clearsc macro color ;清屏和修改前景色改变小车颜色 mov ah,06h mov al,0 mov bh,color mov ch,0 mov cl,0 mov dh,24
mov dl,79 int 10h endm 路的颜色: showcolor macro a,b ;a 是扩展字符,b 是颜色 mov ah,09h mov al,a mov bh,0h mov bl,b mov cx,80 int 10h endm
程序运行结果:
4、 课程设计总结 在学习完汇编语言这门课程后,老师给我们安排了课程设计这个环节。然后 最开始的环节是选题目,我选的题目是动态图形设计,因为我觉得比较有趣。但 是事与愿违,题目是选了,到了刚开始做的时候,自己一头雾水。先是在网上浏 览了一些例子,然后翻阅了教材,才一步一步的入门。首先我明确了小车的组成, 然后制定了步骤,按照步骤一步一步执行,不懂的请教了和我课题的同学。最终 把这个实验完成了。在实验的过程中,遇到了许多的困难,一开始,自己着眼于 动画,但是并不了解动画是怎么形成的,深究于始,回归课本,深入研究了置光 标,发现动画无非就是改变字符组成的图形在界面上显示的位置,只要让那些图 形字符有规律的在上面移动即可。接下来就是颜色的设置,自己也是参考了课本 上的例子,通过改变前景色成功把小车变得有颜色,最后就是 bios 中断退出程 序。在书写代码的过程中,为了程序可读性更高更简明,我定义了许多宏程序, 在程序中直接调用。完成这个课程设计,真的需要明确好步骤,要有明确的目标, 清晰的逻辑,不然程序就会杂乱无章,错误百出,代码冗长等等。正是因为如此, 自己的课设完成的还是算有节奏感的,最起码通过这个实验让自己把所学知识运 用到了实际的程序中,不仅巩固了以往的知识,还学到了一些新知识。不足的是 在完成的过程中,由于自己对基础知识的缺乏,在一步一步往下进行的过程中, 遇到许多的阻碍,让我明白了只有一步一个脚印,把基础夯实。才能学有所成。
分享到:
收藏