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

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(汇编语言动画程序设计优质报告.doc)为本站上传会员【a199****6536】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

汇编语言动画程序设计优质报告.doc

1、一、游戏背景介绍 伴随信息时代发展,计算机已经变为我们生活中不可缺乏一部分,它作为我们了解世界一个窗口同时还能够让我们从中以最快速度查找学习资源,休闲之余,更多人选择玩小型益智游戏来放松,因为它不仅达成了娱乐目标,而且对自己思维有一定帮助作用,依据大多数人娱乐放松需求,我做出了一款动画游戏——可控汽车和机器 人。 上了一学期汇编语言课,让我对汇编语言有了一定认识。这次课程作业我决定亲自动手用汇编语言编写一个型小程序,熟悉计算机体系结构,加深对汇编语言了解。DOS操作系统功效调用及BIOS功效调用。深入了解

2、汇编语言控制计算机硬件方法,和怎样用汇编语言来实现算法, 提升应用汇编语言编程能力,也加深了自己对部分算法了解,提升了自己编程能力。 利用汇编语言编写程序,在屏幕上显示动画,还能够经过键盘上输入来改变图片位置,实现动画运动。动画游戏程序设计开始屏幕上会出现一辆小车和一个机器人,操作者可自由选择最少两个运动物体(机器人和汽车)在屏幕上运动,一开始汽车和人分别从左向右、从右向左运动,操作者能够经过屏幕上方现实提醒对机器人和小车进行控制。能够经过键盘上W、A、S、D和上下左右方向键来分别控制运动机器人和小车经过W,A,S,D控制方向,同时整个程序包含人机界面控制台和运动中动画暂停(空格键控制),开

3、始(ENTER键控制),退出键则由ESC键控制,运动加减速动作(“+”控制逐层加速、“—”控制逐层减速)。 程序插图图1: 图1动画界面示意图 屏幕上方是操作提醒,用户可和依据提醒对汽车和小人进行操控,来改变她俩运动轨迹。起先车和小人全部是各自运动一个向左另一个向右,操作者能够经过键盘来改变这两物体运动轨迹,同时在按键盘上加号会看见物体运动速率显著加紧,减号则反之。 二、关键算法思想 本程序定义了两个图分别表示(汽车和机器人),八个坐标变量(汽车清图坐标car_row0 car_col0 汽车画图坐标car_row1 car_col1机器人清图坐标man_row0

4、 man_col0机器人画图坐标man_row1 man_col1),用于控制汽车和机器人清图和画图坐标。首先在屏幕上显示两个物体,让她们根据从左到右和从右到左方法分别运动。她们运动是经过不停修改图片坐标,并清屏,然后依据新坐标重新绘制画面来实现。经过一大个循环对上面个两个坐标进行改变,每次横坐标加上一个固定值,或减去一个固定值。再经过清图然后重绘实现物体移动。为人实现物体能依据操作者要求上下左右运动,程序实现设定好了多个能够上下左右操控图片位置键。每当操作者按下这多个键,系统自动,将图片位置横纵坐标进行加上或减去某个固定值,加多少还取决于操作者按键次数得多少。确定图片位置是经过检测用户输入和

5、外层大循环不停自加某个数,综合来改变下次重绘坐标来实现。 总而言之要想物体动起来就是经过不停地清屏来清除上次图片位置,然后获取图片坐标,这个坐标是不停地被用户和系统修改,并重回新图片画面,于是用户能够看见物体在屏幕上不停移动。以下是让运动起来运动逻辑图: 画图(row1,col1) ) 开始 row1加1 col1 加1 清图 (row0,col0) 判定是否有按键输入 row1赋给row0 col1赋给col0 修改row1、col1 否 是 图2动画运动算法示意图 首先是清理屏幕上物体将屏幕刷成黑色,然后取得机器人和小车新位置坐标,依据这根位置坐

6、标绘制出小车位置。从而实现小车运动。同时经过操控设定好上下左右键能够修改坐标,形同会自动依据你按键次数和方向键物体横纵坐标加上或减去一个先前设定好固定值。从而实现了,操作者对物体运动东方向控制。 三、关键算法步骤图 主程序: 程序开始,设置显示方法为80X25 16色图形方法和提醒信息以下: (SPACE--PAUSE,ENTER--BEGAIN,ESC--EXIT,SPEEDUP-+,SLOWDOWN- -) (CAR:UP--W,DOWN--S,LEFT--A,RIGHT--D MAN:UP--8,DOWN--2,LEFT--4,RIGHT--6) 调用car_disp和m

7、an_disp子程序设置开始图形,起始坐标在数据定义时已给出,然后调用绘图子程序控制汽车和机器人运动,空格暂停,回车开始,ESC退出,实现动画主程序算法图图3。 否 是 是 否 否 判定是否是ENTER 判定是否是空格 判定输入是否为ESC 开始 启用绘图程序 图片初始化 屏幕上显示提醒信息 结束 是 暂停 图3主程序算法示意图 程序运行后除了绘制移感人和车外,还要看是否有暂停,开始,和退出操作。依据输入对程序运行进行调整。 MOVE子程序: MOVE子程序是整个程序关键,经过键盘操作控制汽车和机器人运动,首先检测键盘,若无键盘操作,运行主程序。控

8、制物体移动算法图图4: N Y Y Y N N Y Y Y N N Y Y Y N N Y Y N N N 6? -? +? 4? 2? 8? D? S? 开始 W? 键盘检测正当字符? A? 结束 主程序 机器人下移动一个单位 机器人左移动一个单位 机器人上移动一个单位 汽车向右移动一个单位 汽车向下移动一个单位 汽车向左移动一个单位 加速 机器人右移动一个单位 减速 汽车向上移动一个单位 物体移动 图4操控物体算法示意图 加号和减号分别控制加速和减速,原本主程序会每隔一段时间自动把汽车横坐标

9、加一,人横坐标减一反复操作,若有键盘响应,则实现自动运动,则经过比较键盘扫描码来确定实施何种操作, “+”按一次速度加紧一级,“—”按一次速度减慢一级,WASD控制汽车上左下右移动,方向键和8、6、2、4全部能控制机器人运动方向, DISP绘图程序: DISP输出图形子程序该程序关键功效是依据定义图形表画出图形,过程以下: N 结束 主程序 cx=0? si+4 cx-1 字符行列坐标存入dh,dl 初始化cx 开始 si指向图形表第一个字符 显示目前si指向字符 Y 图5依据自定义图形绘图算法示意图 首先取得存放自定义图形字符串数组,进行初始化,再

10、依据坐标取得物体酒气体坐标然后绘制物体。 汽车和机器人画图子程序: 当汽车和小人运动到边界时就会消失,于是我另外写了两个子程序让运动到边界物体自此回到界面,这里我让从左边出去物体从右边出现,从右边出去物体从左边出现,这么就像地球是圆一样,当让当你控制物体从上方或下方出去时,也会出现在相反反向。 car_disp,man_disp子程序分别用于用于处理汽车和小人运动到屏幕边界情况,显示图形和设置坐标。以汽车为例:si指向汽车图形表第一个字符,当行数(car_row1)大于20,跳到第4行,行数(car_row1)小于4,跳到第20行列数(car_col1)小于3,跳到第70列,列数car_

11、col1)大于70,跳到第3列,实现边界设置,再将row1赋给row0,col1赋给col0,即把现在坐标保留,作为下次清屏坐标,然后把car_row1赋给dh,car_col1赋给dl,然后在调用DISP画出汽车图形,这么汽车就会从另一个方向冒出来。总而言之,这里也是经过修改物体左边来实现这么效果。 清图子程序: 这部分程序关键负责清理上一次绘图留下来画面为下一步重绘做准备,实现物体移动效果,不然会出现物体在上次基础上重绘,变成物体推着尾巴。影响动画效果。 这部分代码样式为: car_clear proc near ;汽车清图子程序 clear_car car_row

12、0,car_col0 ;调用汽车清图宏 ret ;返回 car_clear endp 该程序关键功效就是调用宏来清图。因为子程序不能传输参数,所以选择用宏定义来实现参数(坐标)传输,不过宏展开使得代码很长,而且该子程序调用频繁,以致超出条件转移范围,系统报错,用子程序就能够处理。 延时子程序DLY: 关键功效使控制延时,经过这个子程序就那个能够控制物体运动速度。延时时间越长,物体运动速度就越慢,相反延时时间越短,就相当于物体运动频率加紧这么物体运动就加紧了。我采取是控制延时时间长短,从而实现加速和减速。经过宏定义来实现参数(dlay

13、1)传输,用“+”“—”来改变dlay1值,控制延时,因为我给时间设定了多个值于是当用户按加号是就不停自加加到最大之时再自加就变成最小值,减号则反之,所以会看到很快物体瞬间变慢。 四、源代码 整个程序实现源代码以下: data segment ;定义数据段 CAR0 DB 7 ;汽车字符图形表 DB 0DBH,1,0,0 DB 0DBH,1,0,1 DB 0DBH,7,0,1 DB 0DBH,7,0,1 DB 4FH,6,1,0 DB 4FH,6,0,-3 DB 2,6,-2,1 ;------------

14、 MANU DB 11 ;机器人图形表 DB 0DBH,09H,0,0 DB 0DBH,09H,0,1 DB 0DBH,09H,0,1 DB 0DBH,09H,0,1 DB 0DBH,09H,0,1 DB 02H,09H,-1,-2 DB 03H,0CH,2,0 DB 0DBH,09H,1,-1 DB 0DBH,09H,0,2

15、 DB 0DBH,09H,1,-3 DB 0DBH,09H,0,4 ;------------------------------画图和清图坐标---------------------------- car_row0 db 10 ;汽车清图坐标 car_col0 db 10 car_row1 db 10 ;汽车画图坐标 car_col1 db 10 man_row0 db 15 ;机器人清图坐标 man_col0 db 60 man_row1 db 15

16、 ;机器人画图坐标 man_col1 db 60 ;延时时间间隔 dlay1 dw 10000 ;控制延时变量,即控制速度变量 ;-----------------------------输出提醒-------------------------------------- INFO1 DB 0DH,0AH,' (SPACE--PAUSE,ENTER--BEGAIN,ESC--EXIT,SPEEDUP-- +,SLOWDOWN-- - )$' ;动画控制提醒信息,空格暂停,回车开始,ESC退出, ; “+”按一次速度加紧一

17、级,“—”按一次速度减慢一级 INFO2 DB 0DH,0AH,' (CAR:UP--W,DOWN--S,LEFT--A,RIGHT--D MAN:UP--8,DOWN--2,LEFT--4,RIGHT--6)$' ;动画控制提醒信息,WASD控制汽车上左下右移动,方向键控制机器人运动方向 ;---------------------------汽车宏定义-------------------------------- clear_car macro row,col ;宏定义汽车清图 push bx mov ax,0600H mov ch,row d

18、ec ch,1 mov cl,col mov dh,ch mov dl,cl add dh,3 ;坐标加3 add dl,4 ;坐标加4 mov bh,7 int 10h pop bx endm ;---------------------------- 宏定义机器人----------------------------- clear_man macro row,col ;宏定义机器人清图 push bx mov ax,0600H mov ch,row dec ch,1 mov cl,co

19、l dec cl,0 mov dh,ch mov dl,cl add dh,5 ;坐标加5 add dl,5 ;坐标加5 mov bh,7 int 10H pop bx endm ;---------------------------------------------------------------------------- ;关键功效使控制延时,我采取是控制空制令实施条数来 ;控制延时长短,从而实现加速和减速。经过宏定义来实现 ;参数(dlay1)传输,用“+”“—”来改变dlay1值,控制延时。 ;

20、 延时程序------------------------------- d macro dlay1 ;宏定义延时程序 push cx push dx mov dx,dlay1 dl1: mov cx,6801 dl2: loop dl2 dec dx jnz dl1 pop dx pop cx endm ;----------------------------------------

21、 code segment ;定义代码段 main proc far ;主函数 assume cs:code,ds:data start: push ds mov ax,0 push ax mov ax,data mov ds,ax mov al,3 ;设置显示方法为80*25 16色图形方法 mov ah,0 int 10H

22、 lea dx,info1 ;在显示器上显示字符串提醒信息 mov ah,9 int 21h lea dx,info2 ;在显示器上显示字符串提醒信息 mov ah,9 int 21h call car_disp ;初始汽车位置 call man_disp ;初始机器人位置 call MOVE ret main endp ;-----------------------------------------------------

23、 disp proc near ;输出图形子程序 push ax push bx push cx push dx push si sub ch,ch mov cl,[si] inc si next: add dh,[si+2] ;改变行列坐标 add dl,[si+3] mov ah,2 ;置光标位置DH为行、DL为列 int 10h mov al,[si]

24、 ;取字符值 mov bl,[si+1] ;取字符属性 push cx mov cx,1 mov AH,9 ;显示字符 int 10H pop cx add si,4 ;SI指向下一个字符 loop next pop si pop dx pop cx pop bx pop ax ret disp endp ;---------------------------------------------------------------------------- car_dis

25、p proc near ;汽车画图子程序 push si lea si,CAR0 ;取汽车图 cmp car_row1,20 ;设置汽车运动边界 ja c0 ;行数大于20,跳到第4行 cmp car_row1,4 ;行数小于4,跳到第20行 jb c1 cmp car_col1,3 ;列数小于3,跳到第70列 jb c2 cmp car_col1,70 ;列数大于70,跳到第3列 ja c3 jmp cn c0: mov car_row1,4

26、jmp cn c1: mov car_row1,20 jmp cn c2: mov car_col1,70 jmp cn c3: mov car_col0,3 mov car_col1,3 jmp cn cn: mov bh,0 ;row1赋给row0,col1赋给col0,即把现在坐标保留,作为下次清屏坐标 mov bl,car_row1 mov car_row0,bl mov bl,car_col1 mov car_col0,bl mov dh,car_r

27、ow1 mov dl,car_col1 call disp ;调用DISP画出汽车图形 pop si ret car_disp endp ;---------------------------------------------------------------------------- car_clear proc near ;汽车清图子程序 clear_car car_row0,car_col0 ;调用汽车清图宏 ret ;返

28、回 car_clear endp ;---------------------------------------------------------------------------- man_disp proc near ;机器人画图子程序 push si lea si,MANU ;取机器人图 cmp man_row1,20 ;设置机器人运动边界 ja n0 ;行数大于20,跳到第4行 cmp man_row1,4 ;行数小于4,

29、跳到第20行 jb n1 cmp man_col1,3 ;列数小于3,跳到第70列 jb n2 cmp man_col1,70 ;列数大于70,跳到第3列 ja n3 jmp nn n0: mov man_row1,4 jmp nn n1: mov man_row1,20 jmp nn n2: mov man_col1,70 jmp nn n3: mov man_col0,3 mov man_col1,3 jmp nn nn: push bx ;row1赋给row0,col

30、1赋给col0,即把现在坐标保留,作为下次清屏坐标 mov bh,0 mov bl,man_row1 mov man_row0,bl mov bl,man_col1 mov man_col0,bl pop bx mov dh,man_row1 mov dl,man_col1 call disp ;调用DISP画出机器人图形 pop si ret man_disp endp ;---------------------------------------------------------------------------- ma

31、n_clear proc near ;机器人清图子程序 clear_man man_row0,man_col0 ;调用机器人清图宏 ret ;返回 man_clear endp ;---------------------------------------------------------------------------- move proc near ;控制汽车和机器人运动 push ax push bx ;----------------------------- 取键盘操

32、作------------------------------- next1: mov ah,01H ;取键盘缓冲区状态 int 16h jnz next2 ;缓冲区无按键,等候 DLY dlay1 call car_clear ;汽车一直向右运动 inc car_col1 call car_disp call man_clear ;机器人一直向左运动 dec man_col1 call man_disp jmp next1 next2: mov ah,0 ;从键盘读字符 int 16h ;---------

33、 DISP proc near ;输出图形子程序 push ax push bx push cx push dx push si sub ch,ch mov cl,[si] inc si next: add dh,[si+2] ;改变行列坐标 add dl,[si+3] mov ah,2

34、 ;置光标位置DH为行、DL为列 int 10h mov al,[si] ;取字符值 mov bl,[si+1] ;取字符属性 push cx mov cx,1 mov AH,9 ;显示字符 int 10H pop cx add si,4 ;SI指向下一个字符 loop next pop si pop dx pop cx pop bx pop ax ret disp endp ;--------------------依据键盘输入判定选择-----------

35、 up: ;W 汽车向上运动 cmp ah,11h jnz down call car_clear dec car_row1 call car_disp jmp next1 down: ;S 汽车向下运动 cmp ah,1Fh jnz left call car_clear inc car_row1 call car_disp jmp next1 left: ;A 汽车向左运动 cmp ah,1Eh jnz rig

36、ht call car_clear dec car_col1 call car_disp jmp next1 right: ;D 汽车向右运动 cmp ah,20h jnz up1 call car_clear inc car_col1 call car_disp jmp next1 up1: ;机器人向上运动 cmp ah,48h jnz down1 call man_clear dec man_row1 call man_disp jmp next1 down1:

37、 ;机器人向下运动 cmp ah,50h jnz left1 call man_clear inc man_row1 call man_disp jmp next1 left1: ;机器人向左运动 cmp ah,4bh jnz right1 call man_clear dec man_col1 call man_disp jmp next1 right1: ;机器人向右运动 cmp ah,4dh jnz speedup1 call man_clear i

38、nc man_col1 call man_disp jmp next1 speedup1: ;主键盘加号 cmp ah,0dh ;"+"加速运动 jnz speedup2 sub dlay1,1000 jmp next1 speedup2: ; ;小键盘加号 cmp ah,4Eh ;"+"(小键盘)加速运动 jnz speeddown1 sub dlay1,1000 jmp next1 speeddown1: ;主键盘减号 cmp ah,0ch ;"-"减速运动 jnz speedd

39、own2 add dlay1,1000 jmp next1 speeddown2: ;小键盘减号 cmp ah,4Ah ;"-"减速运动 jnz space1 add dlay1,1000 jmp next1 space1: cmp ah,39h ;SPACE暂停运动 jnz exit1 space: mov ah,0 ;从键盘读字符,AL=字符码,AH=扫描码 int 16h cmp ah,1ch ;回车返回next1,不然继续等候从键盘读字符,实现暂停 jnz space jmp next1

40、exit1: cmp ah,01h ;ESC退出 jnz others pop bx pop ax ret ;返回主程序 others: ;按其它键,无效,继续运行 jmp next1 MOVE ENDP ;--------------------------------------------------------------------------- code ends end start 五、心得体会 选题时候我认为动画程

41、序实现应该使很轻易实现,就是不停清屏,重新在下一个位置画图,从而实现动画。但经过此次汇编作业,我才真正知道了动画实现其实没有我想象那么简单。刚开始我做了一个图形,继而由一个图形做成两个,在这个过程中我碰到了很多难题,比如怎样画图,怎样实现图形运动,怎样在一个屏幕上显示两个图形,怎样分别控制两个图形运动,为了处理这些问题我试了很多方法,最终我选择了坐标控制运动,局部清屏,我认为这是我能想到最好方法了,即使做过程很累,整天全部在想问题处理方法,但当你处理一个问题以后,那种感觉真很享受,当整个程序完成时候我很兴奋。当然这个程序还有部分不足地方,比如说当俩物体运动到一起时没有碰撞效果,还有就是程序界面

42、不够友好。经过这次作业,也让我熟悉了很多以前全部不熟悉部分指令,并利用这些指令去实现部分操作。同时也让我愈加了解了汇编程序结构和步骤,对编程也有了更深体会。过程中我还学会了部分处理问题方法:理论和实践相结合,不懂地方应勤问老师勤问同学,直到把它搞懂为止。 源代码:(修正后) data segment ;定义数据段 CAR0 DB 7 ;汽车字符图形表 DB 0DBH,1,0,0 DB 0DBH,1,0,1 DB 0DBH,7,0,1 DB 0DBH

43、7,0,1 DB 4FH,6,1,0 DB 4FH,6,0,-3 DB 2,6,-2,1 MANU DB 11 ;机器人图形表 DB 0DBH,09H,0,0 DB 0DBH,09H,0,1 DB 0DBH,09H,0,1 DB 0DBH,09H,0,1 DB 0DBH,09H,0,1 DB 02H,09H,-1,-2 DB 03H,0CH,2,0 DB 0DBH,

44、09H,1,-1 DB 0DBH,09H,0,2 DB 0DBH,09H,1,-3 DB 0DBH,09H,0,4 car_row0 db 10 ;汽车清图坐标 car_col0 db 10 car_row1 db 10 ;汽车画图坐标 car_col1 db 10 man_row0 db 15 ;机器人清图坐标 man_col0 db 60 man_row1 db 15 ;机器人画图坐标

45、man_col1 db 60 dlay1 dw 10000 ;控制延时变量,即控制速度变量 INFO1 DB 0DH,0AH,' (SPACE--PAUSE,ENTER--BEGAIN,ESC--EXIT,SPEEDUP-- +,SLOWDOWN-- - )$' ;动画控制提醒信息,空格暂停,回车开始,ESC退出,“+”按一次速度加紧一级,“—”按一次速度减慢一级 INFO2 DB 0DH,0AH,' (CAR:UP--W,DOWN--S,LEFT--A,RIGHT--D MAN:UP--8,DOWN--2,LEFT--4,RIGHT--6)$' ;动画控制提醒信息

46、WASD控制汽车上左下右移动,方向键控制机器人运动方向 ;---------------------------------------------------------------------------- clear_car macro row,col ;宏定义汽车清图 push bx MOV AX,0600H MOV Ch,row dec ch,1 mov cl,col mov dh,ch mov dl,cl add dh,3 add dl,4 MOV BH,7 INT 10H

47、 pop bx endm ;---------------------------------------------------------------------------- clear_man macro row,col ;宏定义机器人清图 push bx MOV AX,0600H MOV Ch,row dec ch,1 mov cl,col dec cl,0 mov dh,ch mov dl,cl add dh,5 add dl,5 MOV BH,7

48、INT 10H pop bx endm ;---------------------------------------------------------------------------- DLY macro dlay1 ;宏定义延时程序 PUSH CX PUSH DX MOV DX,dlay1 DL1: MOV CX,6801 DL2: LOOP DL2 DEC DX JNZ DL1 POP DX

49、 POP CX endm ;---------------------------------------------------------------------------- code segment ;定义代码段 main proc far ;主函数 assume cs:code,ds:data start: push ds mov ax,0 push ax mov ax,data mov ds,ax

50、 mov al,3 ;设置显示方法为80*25 16色图形方法 mov ah,0 int 10H lea dx,info1 ;在显示器上显示字符串提醒信息 mov ah,9 int 21h lea dx,info2 ;在显示器上显示字符串提醒信息 mov ah,9 int 21h call car_disp ;初始汽车位置

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服