汇编语言课程设计小车动态图形设计_第1页
汇编语言课程设计小车动态图形设计_第2页
汇编语言课程设计小车动态图形设计_第3页
汇编语言课程设计小车动态图形设计_第4页
汇编语言课程设计小车动态图形设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计说明书设计题目: 动态图形设计 一、课程设计目的进行程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。二、课程设计要求 1要求编写并调试通过一个小型软件,实现对软件或硬件的操作。2遵循模块化、结构化的程序设计方法。3.要求程序必须正确。4.程序简明易懂,多运用输入输出提示,出错信息及必要的注释。5.要求程序结构合理,语句使用得当。6.适当追求编程技巧和程序运行效率。三、课程设计题目: 小车动态图形设计四、课题分析该题目看似复杂,其实不然。具

2、体方式可以按以下步聚进行:1、确定下车由哪些字符组成2、在屏幕上显示一个小车,然后再擦除3、改变一个列坐标,重复步聚24、写一个循环子程序,让小车从屏幕的左侧行驶到屏幕的右侧5、用loop指令,改变行坐标,让小车从屏幕的上一端跳到屏幕的下一端,重复执行,显示一屏6、然后再用loop指令,不断重复这一屏五、流程图:enter key?终止是否行驶到右下角小车从左边行驶到右边row递增几行有无按健开始 noyes: no yesrow,column初始化六、程序源代码display macro row_offset,column_offset,char,attrmov bh,0add dh,row

3、_offset i;显示一个字符和属性 add dl,column_offsetmov ah,2hint 10hmov al,charmov bl,attrimov cx,1mov ah,9hint 10hendmsetmode macro mode1 ;设置显示方式 mov ah,0 mov al,mode1 int 10h endm data segmentstring db please press enter key to show my work,0dh,0ah db you can press any other keys to end , enter key or any oht

4、er keys?$char_cnt label wordcar dw 6 db 0,0,0dbh,7,0,1,0dbh,3 db 0,1,0dbh,7,1,-2,4fh,2 db 0,2,4fh,2,-2,0,2,12row db ?column db ?mode db 1road_color db ?data endscode segment assume cs:code,ds:datastart: mov ax,data ;主程序 mov ds,ax setmode 0dh lea dx,string mov ah,9h int 21h mov ah,1h int 21h cmp al,0

5、dh jne escapeoutward: setmode 0dh mov row,2 mov column,0 mov road_color,2 mov cx,5inward:push cx call road call move_shape add row,5 inc road_color setmode 0dh ;重新设置相同的显示方式,相当于清屏 pop cx loop inward mov cx,2 loop outwardescape: setmode 2 mov ax,4c00h int 21hdelay proc near ;延时子程序 mov dx,500hdl1: mov

6、cx,0 loop $ dec dx jnz dl1 retdelay endpdraw proc near ;显示或擦除小车 mov dh,row mov dl,column mov cx,char_cnt lea di,car+2one: cmp mode,0 push cx jne skip display di+0,di+1,di+2,0 jmp abcskip: display di+0,di+1,di+2,di+3abc: pop cx add di,4 loop one retdraw endpmove_shape proc near ;小车动态图形plot: mov mode,

7、1 call draw mov ah,1hint 16hjne escape ;检查缓冲区有无按键 call delay cmp column,36 ja exit mov mode,0 call draw inc column jmp plotexit:mov column,0 retmove_shape endproad proc near ;画公路 mov cx,39 mov dh,row add dh,2 mov dl,0 push cx display 0,0,0dbh,road_color pop cxcycle:push cxdisplay 0,1,0dbh,road_color

8、pop cx loop cycleretroad endpcode ends end start七、结果显示图(1)图(2)八、感想、收获及体会在临近期末,正值我们带着喜悦回家的时候,我们搞了一个课程设计。以前还以为这个课程设计很神秘,对它充满着期待。搞完这个之后,才知道这个东西也没什么,跟平时的大作业差不多,看来课程设计还有待改革。刚开始选题的时候,我看到这个题目很有意思,因为以前没有用汇编语言做过关于动画这方面的程序,所以就选了这个题目。说实话,刚开始下手的时候,我还真是一头雾水,不知道该怎么做,老师上课的时候也没有讲过。于是,我就到图书馆借了一两本关于这方面的书,看完动画设计那块的时候,

9、我才明白了该怎么做。动画无非分两种动画,一种是逐帧动画,另一种是实时动画,当然,这里是逐帧动画。逐帧动画设计起来相对来说比较简单,就是一组图像按一定的频度连续播放,给人一种视觉上的效应,好像这个东西真的动起来了!其实,做这个题之前,我也从网上下了一些别人以前做过的关于这方面的程序,我发现他们的程序代码比较多,可读性比较差,代码冗长,于是,我决定自己做一个代码较少,可读性较好的程序。我写的这个程序按大的方针来说,主要用了三个循环实现了动画整个功能:一、让小车从屏幕的左侧跑到右侧,二、让下车不断从屏幕的上端跳到下端,三、不断重复这一屏。我这个程序还有一个小技巧,清屏的时候不是像别人那样写一很长串的代码,而是通过重新设置显示方式来清屏,这样比较简单,从而减少了代码。搞完这次课程设计,我更加明白数学和逻辑推理对程序设计的重要性,找到简单、合适及高效的算法可以大大节约程序运行的时间和空间,优化了程序,提高了程序运行的效率,这对于一个优秀的程序设计员来说非常重

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论