汇编语言实现动态图形
更新时间:2024-02-29 22:08:01 阅读量: 综合文库 文档下载
华 北 科 技 学 院
课程设计说明书
课程名称: 汇编语言 设计题目: 动态图形设计 设计时间: 6/20/ 2010 至 7/1/2010 指导教师:_ _ 杜杏箐 评 语:________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:__ _ 评阅教师:____
一、课程设计目的
使用所学过的汇编语言程序设计知识,掌握结构化程序设计的基本思路和
方法,利用所学的基本知识和技能,发挥自学能力和查找资料的能力,解决稍微复杂的结构化程序设计问题,加深对所学知识的理解与掌握,增强学生利用自己所学知识解决实际问题的能力,进行程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。 二、课程设计要求
1.要求编写并调试通过一个小型软件,实现对软件或硬件的操作。 2.遵循模块化、结构化的程序设计方法。 3. 要求程序必须正确。
4. 程序简明易懂,多运用输入输出提示,出错信息及必要的注释。 5. 要求程序结构合理,语句使用得当。 6. 适当追求编程技巧和程序运行效率。
三、课程设计题目:
动态图形设计
要求:小车在公路上行驶,从屏幕左侧驶向右侧。在到达屏幕右侧 ,公路下降一段距离并改变颜色,然后小车继续由左向右行驶驶。当下降到屏幕底部时,又返回到屏幕顶部重复上述过程,直到有键按下。公路和小车的颜色不样,要用到INT 10H功能。 四、课题分析
汇编动态图形设计没怎么学,书上只是提供它的原理,生疏无法理解,从图书馆借书看到一个例程,因此问题迎刃而解。
具体设计有以下几个步聚:
1.小车是如何用汇编语言设计出来的?字符组合
2. 如何让它动起来?设计延迟程序,使小车的现实出现时间间隔,改变小车的显示列数,出现向左或向右的动态效果
3.公路如何和小车一起显示?公路也用字符的形式显示,调用时不用加延迟。 4.小车在公路上行驶,从屏幕左侧驶向右侧。在到达屏幕右侧 ,公路下降一段距离并改变颜色,然后小车继续由左向右行驶驶。当下降到屏幕底部时,又返回到屏幕顶部重复上述过程?这几个循环的过程只需要设计循环程序,具体设计如流程图。
- 1 -
5.有按键时结束程序?用到读键盘状态,此处要用到“int 16H”的01号功能 五、流程图 主程序:
显示小车的提示语 置小车显 示的列,行 调用 MOVECAR程序 置显示格式,清除之前画的小车 行数减1, 判断行是否显示到底 否 是
- 2 -
小车程序:
设置显示方式,清屏 调用路的 子程序 显示列加1 置小车工作模式 MODE = 1 调用画小车子程序 调用画小车子程序,延时子程序 置MODE = 0 判断显示列 是否到达边 缘 结束
六、程序源代码
SETMODE MACRO MODE1 MOV AH,0 MOV AL,MODE1 INT 10H ENDM DATAS SEGMENT
- 3 -
CAR DW 8 ;小车由6个字符组成
DB 0,1,0DBH,9 ;第一,二字节是字符坐标位移量 DB 0,1,0DBH,7,0,1,0DBH,9 ;三四字节是字符与字符属性 DB 1,0,4FH,8,0,-2,4FH,8 DB -2,2,3,13,0,-2,3,10 DB 0,1,3,4
DRAWLU DB 0DBH ;画路的字符
ROW DB ? ;显示小车的行坐标 COLUMN DB ? ;显示小车的列坐标 MODE DB ? ;控制画小车的变量 YS DB 4 ;控制路的颜色
A DB 'press any buton to show my work',13,10,'$';显示提示语 B db 'after the work press any key to the end$' DATAS ENDS CODES SEGMENT
ASSUME CS:CODES,DS:DATAS START:
MOV AX,DATAS MOV DS,AX
LEA DX,A ; 显示提示语 MOV AH,9 INT 21H LEA DX,B MOV AH,9 INT 21H MOV AH,7 INT 21H
A0: MOV ROW,1 ;置显示行为第1行 A1:
MOV COLUMN,0 ;置显示列为第0列 CALL MOVECAR ;调用画小车的子程序 SETMODE 02H ;设置显示格式 ADD ROW,4 ;设置显示路的行 MOV DH,ROW ;设置显示路的列 MOV DL,COLUMN ;显示光标位置 MOV AH,2 INT 10H CMP ROW,21 JZ A0 JNZ A1 EXIT:
MOV AH,4CH INT 21H
- 4 -
MOVECAR PROC NEAR
SETMODE 02H ;设置显示方式(有清屏作用) CALL LU ;画路 INC YS A2:
MOV MODE,1 ;设置小车工作模式 CALL DRAW ;画小车
CALL DELAY ;延时 CMP COLUMN,76 JA EXIT1
MOV MODE,0 CALL DRAW
INC COLUMN JMP A2 EXIT1: RET MOVECAR ENDP
DRAW PROC NEAR
MOV DH,ROW MOV DL,COLUMN
MOV CX,[CAR]
LEA DI,CAR+2 A3:
ADD DH,[DI+0] ADD DL,[DI+1]
MOV AH,2 INT 10H
MOV AL,[DI+2]
MOV BL,[DI+3] CMP MODE,0 JNE A4
MOV BL,0 A4:
PUSH CX
MOV CX,1 MOV AH,09H INT 10H POP CX ADD DI,4 LOOP A3 ADD DH,3 MOV AH,2 INT 10H RET
;是否到达显示边缘 ;设置小车工作模式(擦除) ;改变显示列重新画小车 ;设置显示字符的行列 ;字符开始的地址送给DI ;字符定义中的显示行列 ;小车属性 ;模式为0,字符为黑底黑字,擦除小车 ;画小车 - 5 -
DRAW ENDP
DELAY PROC NEAR ;延时子程序 PUSH AX
MOV AH,1H ;判读有无输入 INT 16H
JNE EXIT MOV DX,888H A5:
MOV CX,0 LOOP $ DEC DX JNZ A5 POP AX RET DELAY ENDP
LU PROC NEAR PUSH DX PUSH CX PUSH AX MOV DH,ROW MOV DL,COLUMN LEA DI,CAR+2 ADD DH,[DI+0] ADD DH,2 MOV AH,2 INT 10H
MOV AL,DRAWLU MOV BL,YS MOV CX,80 MOV AH,9 INT 10H POP AX POP CX POP DX RET
LU ENDP CODES ENDS END START
;路的子程序 - 6 -
七、结果显示
图(1)
图(2)
到达低端时又回到顶端重新显示,直到有按键输入 八、感想、收获及体会
刚知道要做课程设计时,有些兴奋,我们之前还没做过什么课设,因此我对它充满了好奇。第一天开动员会时,听到老师的一席话后,感觉课设也跟上课一样只是我们的黑板换做了电脑,你需要在你的电脑上涂鸦你的作品。之后得到题目的我,有一种冲动——我看完之后是否能立即吧它编出来呢?答案是否定的!!!我之前想先画个小车的整体,之后用控制显示来使小车动起来,这样想结果根本不能实现!这个想法也是用到了C,C++的构思。
于是,我开始翻看我的课本,找关于动画的设计方法,只可惜书上只讲了原理,这是很模糊的。根本编不出来啊!到图书馆找了几本关于动画的设计书,看过之后才明白,动画的关键问题是“延时子程序的设计”。看到这些,这个程序我有了一定的眉目,于是分析书上提供的例子开始了自己的设计。
最终,经过查书上网,我发现网上有一个例子就是我要做的这个题目,当时我就看完了,结果他的这个是在图书馆书上的一个例子!我也结合自己的想法和书上的例子把我的课设弄完了!
- 7 -
正在阅读:
汇编语言实现动态图形02-29
计算机维修与维护 试题库 ()05-08
方舟和船票在哪里05-31
北大美学真题1999-201109-16
2015下半年吉林省公务员考试行测备考:言语理解每日一练(8月28日)答案解析01-12
丧堂孝歌------三国孝歌上集05-31
《政治经济学批判》导言12-31
湖北省正地厅级干部简历02-02
《红楼梦》十三至十八回练习及答案10-22
符号经济论新艺术政治经济学批判之二05-24
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 汇编语言
- 图形
- 实现
- 动态
- 体外诊断试剂生产企业许可证现场检查内容 - 图文
- 自然辩证法参考题目 - 答案自己搜的哦亲
- 上海市行政执法证考试题库多选题(301-398)
- 江西省“赣鄱英才555工程”第三批入围名单 - 图文
- 最新今天的日本习题答案
- 小学体育课中的生态环保教育
- HD-SDI广播级高清监控解决方案
- 算法10题
- 基于县域经济视角的经济责任审计路径选择
- 工程项目管理试卷及答案2016
- 促进观念建构的化学教学(河南) - 图文
- 2017-2018学年人教B版高中数学选修4-1全册教学案
- 工会模范职工之家自荐材料
- 项目资金绩效报告
- DNS体系结构 - 图文
- 现代汉语下册答案
- 凝胶生物活性玻璃项目可行性研究报告
- 汇丰银行结构性理财产品分析
- 农业产业化发展思路
- 八年级历史上册 第9课 新文化运动导学案(无答案) 新人教版