汇编语言课程设计小车动态图形设计Word文件下载.docx

上传人:b****5 文档编号:19224857 上传时间:2023-01-04 格式:DOCX 页数:11 大小:51.57KB
下载 相关 举报
汇编语言课程设计小车动态图形设计Word文件下载.docx_第1页
第1页 / 共11页
汇编语言课程设计小车动态图形设计Word文件下载.docx_第2页
第2页 / 共11页
汇编语言课程设计小车动态图形设计Word文件下载.docx_第3页
第3页 / 共11页
汇编语言课程设计小车动态图形设计Word文件下载.docx_第4页
第4页 / 共11页
汇编语言课程设计小车动态图形设计Word文件下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

汇编语言课程设计小车动态图形设计Word文件下载.docx

《汇编语言课程设计小车动态图形设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《汇编语言课程设计小车动态图形设计Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。

汇编语言课程设计小车动态图形设计Word文件下载.docx

_________________________________________

评阅成绩:

___评阅教师:

____

一、课程设计目的

进行程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。

二、课程设计要求

1.要求编写并调试通过一个小型软件,实现对软件或硬件的操作。

2.遵循模块化、结构化的程序设计方法。

3.要求程序必须正确。

4.程序简明易懂,多运用输入输出提示,出错信息及必要的注释。

5.要求程序结构合理,语句使用得当。

6.适当追求编程技巧和程序运行效率。

三、课程设计题目:

小车动态图形设计

四、课题分析

该题目看似复杂,其实不然。

具体方式可以按以下步聚进行:

1、确定下车由哪些字符组成

2、在屏幕上显示一个小车,然后再擦除

3、改变一个列坐标,重复步聚2

4、写一个循环子程序,让小车从屏幕的左侧行驶到屏幕的右侧

5、用LOOP指令,改变行坐标,让小车从屏幕的上一端跳到屏幕的下一端,重复执行,显示一屏

6、然后再用LOOP指令,不断重复这一屏

五、流程图:

NO

               YES

NOYES

六、程序源代码                                            

DISPLAYMACROROW_OFFSET,COLUMN_OFFSET,CHAR,ATTR

MOVBH,0

ADDDH,ROW_OFFSETI;

显示一个字符和属性

ADDDL,COLUMN_OFFSET

MOVAH,2H

INT10H

MOVAL,CHAR

MOVBL,ATTRI

MOVCX,1

MOVAH,9H

ENDM

SETMODEMACROMODE1;

设置显示方式

MOVAH,0

MOVAL,MODE1

ENDM

DATASEGMENT

STRINGDB'

PleasepressENTERkeytoshowmywork'

0DH,0AH

DB'

Youcanpressanyotherkeystoend,enterkeyoranyohterkeys?

$'

CHAR_CNTLABELWORD

CARDW6

DB0,0,0DBH,7,0,1,0DBH,3

DB0,1,0DBH,7,1,-2,4FH,2

DB0,2,4FH,2,-2,0,2,12

ROWDB?

COLUMNDB?

MODEDB1

ROAD_COLORDB?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA;

主程序

MOVDS,AX

SETMODE0DH

LEADX,STRING

INT21H

MOVAH,1H

CMPAL,0DH

JNEESCAPE

OUTWARD:

MOVROW,2

MOVCOLUMN,0

MOVROAD_COLOR,2

MOVCX,5

INWARD:

PUSHCX

CALLROAD

CALLMOVE_SHAPE

ADDROW,5

INCROAD_COLOR

SETMODE0DH;

重新设置相同的显示方式,相当于清屏

POPCX

LOOPINWARD

MOVCX,2

LOOPOUTWARD

ESCAPE:

SETMODE2

MOVAX,4C00H

DELAYPROCNEAR;

延时子程序

MOVDX,500H

DL1:

MOVCX,0

LOOP$

DECDX

JNZDL1

RET

DELAYENDP

DRAWPROCNEAR;

显示或擦除小车

MOVDH,ROW

MOVDL,COLUMN

MOVCX,CHAR_CNT

LEADI,CAR+2

ONE:

CMPMODE,0

PUSHCX

JNESKIP

DISPLAY[DI+0],[DI+1],[DI+2],0

JMPABC

SKIP:

DISPLAY[DI+0],[DI+1],[DI+2],[DI+3]

ABC:

ADDDI,4

LOOPONE

DRAWENDP

MOVE_SHAPEPROCNEAR;

小车动态图形

PLOT:

MOVMODE,1

CALLDRAW

INT16H

JNEESCAPE;

检查缓冲区有无按键

CALLDELAY

CMPCOLUMN,36

JAEXIT

MOVMODE,0

INCCOLUMN

JMPPLOT

EXIT:

MOVCOLUMN,0

MOVE_SHAPEENDP

ROADPROCNEAR;

画公路

MOVCX,39

ADDDH,2

MOVDL,0

DISPLAY0,0,0DBH,ROAD_COLOR

CYCLE:

DISPLAY0,1,0DBH,ROAD_COLOR

POPCX

LOOPCYCLE

ROADENDP

CODEENDS

ENDSTART

七、结果显示

(1)

(2)

八、感想、收获及体会

在临近期末,正值我们带着喜悦回家的时候,我们搞了一个课程设计。

以前还以为这个课程设计很神秘,对它充满着期待。

搞完这个之后,才知道这个东西也没什么,跟平时的大作业差不多,看来课程设计还有待改革。

刚开始选题的时候,我看到这个题目很有意思,因为以前没有用汇编语言做过关于动画这方面的程序,所以就选了这个题目。

说实话,刚开始下手的时候,我还真是一头雾水,不知道该怎么做,老师上课的时候也没有讲过。

于是,我就到图书馆借了一两本关于这方面的书,看完动画设计那块的时候,我才明白了该怎么做。

动画无非分两种动画,一种是逐帧动画,另一种是实时动画,当然,这里是逐帧动画。

逐帧动画设计起来相对来说比较简单,就是一组图像按一定的频度连续播放,给人一种视觉上的效应,好像这个东西真的动起来了!

其实,做这个题之前,我也从网上下了一些别人以前做过的关于这方面的程序,我发现他们的程序代码比较多,可读性比较差,代码冗长,于是,我决定自己做一个代码较少,可读性较好的程序。

我写的这个程序按大的方针来说,主要用了三个循环实现了动画整个功能:

一、让小车从屏幕的左侧跑到右侧,二、让下车不断从屏幕的上端跳到下端,三、不断重复这一屏。

我这个程序还有一个小技巧,清屏的时候不是像别人那样写一很长串的代码,而是通过重新设置显示方式来清屏,这样比较简单,从而减少了代码。

搞完这次课程设计,我更加明白数学和逻辑推理对程序设计的重要性,找到简单、合适及高效的算法可以大大节约程序运行的时间和空间,优化了程序,提高了程序运行的效率,这对于一个优秀的程序设计员来说非常重要。

不过,我没有想过搞IT行业,因为,我发现在电脑旁边坐久了,会感到很虚脱,尤其对程序员来说,叫我数钱还行。

老师,说实话,你让我们搞课程设计其实是给了我们一个疯狂玩耍的机会。

也许大学的意义不在于整体,而在于个人,看自己怎么学,不可能像中学那样让老师跟在你屁股后面,毕竟,我们是成年人了!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

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