汇编动画小汽车程序设计.docx

上传人:b****4 文档编号:27069434 上传时间:2023-06-26 格式:DOCX 页数:8 大小:41.54KB
下载 相关 举报
汇编动画小汽车程序设计.docx_第1页
第1页 / 共8页
汇编动画小汽车程序设计.docx_第2页
第2页 / 共8页
汇编动画小汽车程序设计.docx_第3页
第3页 / 共8页
汇编动画小汽车程序设计.docx_第4页
第4页 / 共8页
汇编动画小汽车程序设计.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

汇编动画小汽车程序设计.docx

《汇编动画小汽车程序设计.docx》由会员分享,可在线阅读,更多相关《汇编动画小汽车程序设计.docx(8页珍藏版)》请在冰豆网上搜索。

汇编动画小汽车程序设计.docx

汇编动画小汽车程序设计

《汇编语言程序设计》

综合程序设计实验报告

题  目:

   动画小汽车     

 

1、项目简介

由汇编语言编写程序,进入DOS界面或BIOS界面,汇编语言程序结构有loop循环,子程序调用数据定义等。

有三个界面,主界面,帮助help界面和游戏界面(小车动画)在界面上显示小车图形,并有相应的操作界面的说明。

有玩家通过键盘操作,实现小车的基本功能,小车可以上,下,左,右,或一直匀速移动。

2、小组成员具体分工

小组成员:

马晓林,杨金川

马晓林:

主要编写程序,查找错误,学习相关知识,查找相关资料,提出创新思想。

杨金川:

编程查相关资料,书籍,查找错误,讨论问题,提出功能等。

3、需求分析与设计

1、程序结构有loop循环,BIOS文本显示,子程序等。

2、关键指令分析

该程序所涉及的关键指令及分析如下:

指令:

MOV AH,02H/01h  INT 21H

DOS键盘操作(INT 21H)的功能02能等待从键盘输入一个字符,但是输入字符,而且不进行Ctrl_C或Ctrl_Break的检查处理。

让操作者可以通过键盘控制小车,例如上、下、左、右的操纵小车

指令:

MOV AH,02H

MOV BH,0

MOV DH,8

MOV DL,0

INT10H

BIOS中断类型10H的功能2设置光标位置。

光标位置的行号设在DH寄存器中,列号设在DL中。

而BH是包含的页号。

使字符在屏幕的相应位置中输出,同时也能使字符串有相应的位置输出,显示相应界面。

指令:

MOV AH,09H

LEA DX,STR(或MOV DX,OFFSET STR1)

INT 21H

DOS显示操作INT 21H的功能9是显示字符串,它要求被显示输出的字符以$字符(24H)作为定界符。

而DS:

DX=缓冲区首地址,所以将字符串的首地址附给DX。

显示字符串。

例如:

显示出界面的字符串,让玩家知道如何操作界面。

指令:

MOV AH,6

MOV AL,0

MOV BH,09FH

MOV CH,0

MOV CL,0

MOV DH,24

MOV DL,79

INT 10H

INT10H的功能6能使屏幕内容上卷的行,这个功能需要设置7个参数。

其中AL=0初始化窗口,就是清屏的功能。

而CH/CL=左上角行/列号,DH/DL=右下角行/列刷新屏幕,显示出设定颜色的屏幕,同时刷新,使小车移动时候,清除旧的小车痕迹。

MOVah,0fh   ;读取当前显示方式,显示小车图案应用

int10h

3、运行环境

通过MasmforWindows集成实验环境编写代码,执行并运行程序,分析修改代码。

4、程序功能主要有:

(1)清屏,显示出背景属性。

(2)置光标位置显示字符及其属性,显示字符串,给予玩家操作界面的说明。

(3)判断键盘输入,查看玩家输入的键,得到相应的操作。

(4)玩家开始游戏,通过相应的操作控制小车。

(5)循环第一至第四的功能。

(简要说明:

进入DOS/BIOS界面,主界面显示出字符串,给予玩家操作提示,能开始游戏(run),查看操作说明(help),退出(exit),如果开始,玩家能同过‘w’,‘s’,‘a’,‘d’等键盘输入控制小车上、下、左、右,还有‘1’键是小车一直移动,同时‘q’为返回或退出,任意键为退出。

校车驶出车道会退出界面

5、程序流程:

4、代码及分析

datasegment

cardb11         ;小车图案

db0b1h,70h,0,0

db0b1h,70h,0,1

db052h,70h,0,1

db0dbh,7,1,2

db0dbh,7,0,-1

db0dbh,7,0,-1

db0dbh,7,0,-1

db0dbh,7,0,-1

db04fh,7,1,0

db04fh,7,0,4

db03ah,7,0,3

roaddb80dup('*') ;车道

m1db10 ;定义小车的起始位置

m2db10

dataends

data1segment ;主页面提示

str1db0ah,0dh,20dup(?

),"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"

db0ah,0dh,20dup(?

),"  huanyingcomeinzhuyemian!

!

!

 "

db0ah,0dh

db0ah,0dh,20dup(?

),"***************************************"

db0ah,0dh,20dup(?

),"*  pleaseenterthechose     !

*"

db0ah,0dh,20dup(?

),"*1. enter'r'comeingameyemian !

*"

db0ah,0dh,20dup(?

),"*2. enter'q'goquit       !

*"

db0ah,0dh,20dup(?

),"*3. enter'h'comeinhelpyemian !

*"

db0ah,0dh,20dup(?

),"*4. enter'0'restartenter    !

*"

db0ah,0dh,20dup(?

),"***************************************:

$"

str2db0ah,0dh,20dup(?

),"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"

db0ah,0dh,20dup(?

),"  huanyingcomeinhelpyemian!

!

!

 ";help页面

db0ah,0dh

db0ah,0dh,20dup(?

),"*******************************"

db0ah,0dh,20dup(?

),"* pleasewatchthechose!

*"

db0ah,0dh,20dup(?

),"*\  enter'd'thecar-> !

*"

db0ah,0dh,20dup(?

),"*\  enter'a'thecar<- !

*"    

db0ah,0dh,20dup(?

),"*\  enter'w'thecarup !

*"

db0ah,0dh,20dup(?

),"*\  enter's'thecardown!

*"

db0ah,0dh,20dup(?

),"*\  enter'1'thecarmove!

*"

db0ah,0dh,20dup(?

),"*******************************************"

db0ah,0dh,20dup(?

),"*1. enter'1'restartcomeback'yemian'!

*"

db0ah,0dh,20dup(?

),"*2. enter'r'comein gameyemian   !

*"

db0ah,0dh,20dup(?

),"*3. enter'q'quitgame        !

*"

db0ah,0dh,20dup(?

),"*******************************************:

$" 

data1ends

codesegment

assumeds:

data,cs:

code

start:

movax,data

movds,ax

again:

callclear  ;调用清屏

callyemian   ;调用主页面

movah,01h 

int21h

cmpal,72h ;输入r,跳转到game页面

jegame

cmpal,68h ;'h'调用help页面

jehelp

cmpal,30h ;输入0,跳转到again

jestart1

cmpal,71h

jeout1  ;输入r,跳转到game页面

out1:

movah,4ch

int21h

start1:

calldelay1 ;调用延时

jmpagain

game:

callgame1

yemianprocnear;*****主页面显示选择**********

movax,data1

movds,ax

pushax

pushbx

pushcx

pushdx

movah,2  ;显示方式

movbh,0

movdh,5

movdl,0

int10h

movdx,offsetstr1

movah,9

int21h

popdx

popcx

popbx

popax

ret

yemianendp ;************************

helpprocnear;*****help页面显示选择**********

movax,data1

movds,ax

callclear

pushax

pushbx

pushdx

movah,2   ;显示方式

movbh,0

 

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

当前位置:首页 > 党团工作 > 党团建设

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

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