ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:38.49KB ,
资源ID:9075236      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9075236.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(动态图形设计小车动画doc.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

动态图形设计小车动画doc.docx

1、动态图形设计小车动画doc 华北科技学院计算机系 课 程 设 计 报 告 课程名称 汇编语言课程设计 设计题目 动态图形设计 设计时间 2008-12-08 至 2008-12-19 年 级 2006 专业班级 网络B061 姓 名 皇甫建杰 学 号 200507024207 指导教师 李冬艳 成 绩 评 语 计算机系制一课程设计的性质和目的性质:汇编语言是计算机科学与技术专业及网络工程本科学生必修的专业课程。目的要求:进行程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定

2、规模的汇编语言程序的水平。二课程设计的要求1.遵循模块化、结构化的程序设计方法。2.要求程序必须正确。3.程序简明易懂,多运用输入输出提示,出错信息及必要的注释。4.要求程序结构合理,语句使用得当。5.适当追求编程技巧和程序运行效率。三主要仪器设备 及软件计算机、MASM汇编软件。四 设计题目动态图形设计:要求:小车在公路上行驶,从屏幕左侧驶向右侧。在到达屏幕右侧 ,公路下降一段距离并改变颜色,然后小车继续由左向右行驶驶。当下降到屏幕底部时,又返回到屏幕顶部重复上述过程,直到有键按下。公路和小车的颜色不样。也要用INT 10H功能。五题目分析图形移动程序,调用CRT显示功能实现。具体可分5步进

3、行:1.在屏幕上显示图形(单字符或多字符图形)。2.延迟一个时间周期,这样图形更清晰。3.清除图形。 4.改变图形的行列坐标,修改图形显示位置。5.若没有键按下,则重复以上过程六运行结果选择操作显示动画七程序流程 本程序主要分三段:数据段,堆栈段及代码段。其中数据段定义了小车的图形集,堆栈段定义了堆栈空间,代码段执行各种功能,大体包括显示图形,延时,移动图形,清屏等。具体流程图如下八代码data segment infor db 0dh,0ah,input 1 or 2(1:show a car,2:exit):$ bufa db 200 db ? db 200 dup(0) bufb db

4、200 dup(?) car db 7; 小汽车的字符图形表 db 52h,7,0,0 db 0b1h,7,0,1 db 0dbh,7,0,1 db 0dbh,7,0,1 db 4fh,7,1,0 db 4fh,7,0,-3 db 2,7,-2,1 char_cnt dw ? pointer dw ? line_on db ? col_on db ? data ends ;数据段stack segment stack db 200 dup(0) stack ends ;堆栈段code segment assume cs:code,ds:data,ss:stack start: mov ax,d

5、ata mov ds,ax mov ah,0; 设置显示方式为640*350彩色图形方式 mov al,10h int 10h lea dx,infor; 在显示器上显示字符串提示信息 mov ah,9 int 21h mov ah,0;从键盘读取字符到AL寄存器 int 16h cmp al,31h jne a call qiche sub ax,ax a : cmp al,32h;比较al是否等于2 jne start b : mov ah,4ch;终止当前程序并返回调用程序 int 21h clear macro pch,pcl,pdh,pdl,pbh ;清屏宏定义 mov ah,0 m

6、ov al,10h int 10h mov ah,6;调用6号功能设置整个屏幕为bh值所对应的属性 sub al,al mov al,1;设置滚动行数为1 mov ch,pch mov cl,pcl;窗口左上角(0行,0列) mov dh,pdh mov dl,pdl;窗口右下角(24行,79列) mov bh,pbh;正常属性显示:1绿、2青、3蓝、4红、5粉、6黄、7白(高亮) int 10h endm dly proc near; 延时子程序 push cx push dx mov dx,10000 dl1 : mov cx,6801 dl2 : loop dl2 dec dx jnz

7、dl1 pop dx pop cx ret dly endp qiche proc near;汽车子程序 mov ah,0 mov al,10h int 10h push dx push bx cmp ax,ax;zf标志位置1 mov dh,3 mov bh,1 next: cmp dh,25;公路是否退至屏幕底端? jb next1 sub dh,dh mov dh,3 next1: mov ah,01h;检查键盘缓冲区中有无输入字符(zf是否等于0) int 16h jne fh;zf等于0则退出程序 clear 0,0,dh,79,bh; 清屏宏调用 lea di,car ;di指向字

8、符图形表 push dx;保护dh源值 call move_shape pop dx pop ax add dh,3 add bh,1 cmp bh,8;循环改变公路的颜色 jb bs sub bh,bh mov bh,1 bs: jmp next fh: ret qiche endpmove_shape proc near ;移动子程序push ax push bx push cx sub dh,2;从第1行0列位置开始显示汽车 mov dl,0 push dx push di mov ah,0fh;取当前显示方式 int 10h sub ch,ch mov cl,di; cl存放字符个数

9、inc di; di指向字符图形表中的第一个字符 mov char_cnt,cx mov pointer,di mov line_on,dh mov col_on,dl plot_next: add dh,di+2;改变行列坐标 add dl,di+3 cmp dl,80;出屏否? jb mov_crsr pop di pop dx pop cx pop bx pop ax jmp exit2 mov_crsr: mov ah,2 int 10h mov al,di;取字符值 mov bl,di+1;取字符属性 push cx mov cx,1 mov ah,09;显示字符 int 10h p

10、op cx add di,4; di指向下一个字符 loop plot_next call dly call erase jmp short plot_next exit2 : ret move_shape endp erase proc near ;擦除子程序mov cx,char_cnt mov di,pointer mov dh,line_on mov dl,col_on erase_next : add dh,di+2 add dl,di+3 mov ah,2 int 10h mov al,di mov bl,0 push cx mov cx,1 mov ah,9 int 10h po

11、p cx add di,4 loop erase_next mov cx,char_cnt mov di,pointer mov dh,line_on inc col_on mov dl,col_on ret erase endp code ends ;代码段end start九心得体会两周的课程设计,让我基本上掌握了,子程序的调用与运用;它不但大大减化了程序代码,使程序的逻辑性大大加强。汇编语言是一门与硬件直接打交道的语言,因此很多操作功能的使用需要反复调用,为此,程序显得十分烦琐,通过子程序的调用,可将这些重复的步骤,加以简化,为内存节省空间。可是,子程序也有若点,它的形式参数只能为操作数

12、与地址,当数据交错时,容易出错,于是又引入了一个概念:宏。 宏必须先定义,后调用,他的形式参数比较灵活,但是它不能节省空间。因此,我们常常要用宏与子程序相互联系起来。使我们的程序不断的优化,达到更好的效果,此外,对于数据缓冲区里的内部结构了解掌握也是非常重要的,这将是一个飞跃。因为它会使得我们对数据的处理更加的精准。通过编程和对编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编程能力,补全了我的不足。通过这次课程设计,我巩固所了学过的知识,能用汇编语言熟练地运用顺序、选择、循环三大结构,进一步掌握了各个指令的功能,特别是转向指令,以及正确地运用DEBUG指令。在整

13、个程序的编写中,调试占了很大部分的时间。要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这对程序的调试是非常重要的。通过这次实际动手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,基本达到了能独立阅读、编制和调试一定规模的汇编语言程序的水平。 设计过程中暴露出了自己的一些问题,动手和实践能力不足,知识上还有许多漏洞,缺乏大型程序的开发经验,理论联系实际的能力更有待提高。希望随着以后设计的增多,阅历的增长,能够逐渐弥补这些不足对我而言,知识上的收获重要,精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆!

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

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