毕业设计 方块游戏设计 微机课程设计_第1页
毕业设计 方块游戏设计 微机课程设计_第2页
毕业设计 方块游戏设计 微机课程设计_第3页
毕业设计 方块游戏设计 微机课程设计_第4页
毕业设计 方块游戏设计 微机课程设计_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

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

文档简介

XXX《微机原理与接口技术》课程设计说明书微机已经成为人们生活中必不可少的一部分,掌握微机原理及其相关知识是我们电类专业的必备知识。8086CPU曾是使用最广泛的16为微处理器,它由执行部件和总线接口部件组成。汇编语言是面向机器的程序设计语言。在汇编语言中,用助记符代替操作码,用地址编号代替地址码。汇编语言用比机器语言易于读写、调试和修改,同时具有机器语言的全部优点。汇编语言用来编制系统软件和过程软件,其目标程序占用内存少,运行速度快,有着高级语言不可代替的用途。通过学习和使用汇编语言,能够感知、体会、理解机器的逻辑功能,向上为理解各种软件系统的理解,打下结束理论基础;向下为掌握硬件系统的原理,打下实践应用基础。本次课程设计题目是方块游戏设计,其中很多涉及到DOS调用通过软件中断调用的,在中断调用前需要把功能号装入AH寄存器中,把子功能号装入到AL中,除此之外,还需要在CPU的寄存器中提供专门的调用参数。调用之前,首先将调用参数装入指定的寄存器,然后把功能号装入AH中。按中断号调用DOS,检查返回2初始条件:带有编辑器、汇编程序、连接程序和调试程序的电脑一台。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)采用汇编语言设计一个方块游戏软件,实现将从屏幕上方下落的方块用键盘控制移动,按下某键停止。按Q退出程序。设计任务及要求分析方案比较及认证说明系统原理阐述调试记录及结果分析总结(8)附录:芯片资料或程序清单,软件演示屏幕拷贝图或硬件实物图1月10日~1月12日:收集资料,方案选择1月13日~1月16日:整体流程,程序细节1月17日~1月20日:调试程序,报告撰写1月21日:交设计报告,程序演示,答辩系主任(或责任教师)签名:年月XXX《微机原理与接口技术》课程设计说明书31课设任务及要求分析 4 41.2任务目标 41.3需求规定 42方案比较及认证 错误!未定义书签。43系统原理阐释 54.软件设计 54.1软件思想 54.2源程序及注释 95调试记录及结果分析 96设计心得 7参考文献 附录一:源程序及注释 XXX《微机原理与接口技术》课程设计说明书4方块游戏设计1课设任务及要求分析块的放到方格上。此游戏允许玩家旋转方块,左右移动,加速向下,满行消除并计分。1.2任务目标2>游戏开始后,通过指定的功能键控制方块,方块可以左右移动、落下、旋转。3>界面上要显示分数和游戏的难度,还要预先显示下一个方块。1.3需求规定表1产品功能需求表功能1.随机产生经典俄罗斯方块图形2.设置难度级别,不同级别速度不同3.方向键实现下落图形的左移、右移、加速下落、变形等基本操作4.正确判断游戏结束5.对游戏成绩进行记分2方案比较及认证XXX《微机原理与接口技术》课程设计说明书5在该模块完成的基础上,初始化设置和窗口函数来实现游戏的运行。定义一些宏,包括printstring(显示字符串)、string(在光标位置显示字符及其属性)、clrscr(清屏)、closecur(不显示光标)、gotoxy(设置光标位子)、clrkey(清除键盘缓冲区、,并调用一种键盘属性)、pushall(进栈保护现场)、popall(出栈恢复现场)、block(在光标位置显示2次Odbh,属性为attr)、cprintf(在光标位置显示ch)、random(定义随机函数,随机产生砖块)、printscore(显示分数)。然后在做一定义数据段,先定义方块的形状和一些标志性变量,在定义一些显示信息和音乐。定义堆栈段,开辟了100字的空间。END(暂停),HOME(重新游戏),1(方块旋转),↓(方块加速下落),—(方块左移),→(方块右移)。4.软件设计6在主程序中,调用的宏包括clrscr(清屏)、closecur(不显示光标)、clrkey(清除键盘缓冲区,并调用一种键盘属性),调用的子程序包括game_screen(调用游戏屏)、(键盘I/0调用),1AH(时间调用),21H(写输入中断)。调用方法如下:◆16H中断调用有三个功能,功能号为0~2。(2)AH=1本功能为读键盘缓冲区字符到AL寄存器中,并置ZF标志位。◆1AH中断调用有二个功能。功能号为0和1。(1)AH=0本功能为读取时钟计数器的当前值。(2)AH=1本功能为设置时钟计数器的当前值。◆10H中断调用共有16个功能。功能号为0~15。(1)设置显示方式(0号功能)(2)设置光标类型(1号功能)(3)设置光标位置(2号功能)(4)读当前光标位置(3号功能)(5)初始窗口或向上滚动(6号功能)7(6)初始窗口或向下滚动(7号功能)(7)读当前光标位置的字符与属性(8号功能)(8)在当前光标位置写字符和属性(9号功能)(9)在当前光标位置写字符(10号功能)(10)设置彩色组或背景颜色(11号功能)时,可设置彩出口参数:无。背颜色与对应值见表1.8。(11)写像素(12号功能)为1,则彩色值与当前(12)读像素(13号功能)(13)写字符并移光标位置(14号功能)前景颜色(图形方式)。清屏不显示光标调用游戏屏幕游戏初始化移动砖块砖块到底后的操作砖块到底后的操作读控制键NoNoNo是否重是否重返回DOSNo结束8XXX《微机原理与接口技术》课程设计说明书94.2源程序及注释见附录一5调试记录及结果分析分析问题,修改源程序,使之符合。程序运行结果如下AC:\WINDOWS\system32图2游戏开始e11程序运行中能够实现设计所要求的功能,所以此设计比较成功。XXX《微机原理与接口技术》课程设计说明书6设计心得微机原理课程设计结束了,我的收获很大。通过课程设计的编程和对编程过程中遇示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢![1]周佩玲等.《微机原理与接口技术》(第二版).北京:电子工业出版社,2008;****************宏定义**********************printstringmacrox,y,mess;lessbl,cx;****显示字符串*****pushbppopbpstringmacroch,len;*******在光标位置显示字符及其属性********gotoxymacrox,y;****************设置光标位子*************clrkeymacro;***********清除键盘缓冲区,并调用一种键盘属性**popallpoppopblockmacroattr;***************在光标位置显示2次Odbh,属性为attrcprintfmacroch;***********在光标位置显示ch*********printscoremacrox,y,scro;*****显示分数******popbxpushbxpopbxpopbx;**********************初始化定义****************************XXX《微机原理与接口技术》课程设计说明书NEXT;NEXT方框左边位子NEXTNEXTNEXT;NEXT方框高度NEXT;NEXT方框边框颜色.********定义砖块**************;*反七*;*正二*;*反二*arraydb(BOARD_HEIGHT+2)*(BOARD_WIDTH+2)du;游戏结束标志 jdb0mabledw?;砖块是否能移动标志mess1db0b3h,'RussianBrick;********声音***********XXX《微机原理与接口技术》课程设计说明书pushbxmovreachbottom,NOjnerb0jerb0jmprbl;若到底,则跳至rb0;若没到底,则跳至rbl;***从键盘读字符****jeexit50jeexit50jehom;将从键盘输入的字符赋给key;***********清除键盘缓冲区,并调用一种键盘属性*****jemovleftjemovrjemovdjerevo;判断是否按下向左功能键;判断是否按下向右功能键;判断是否按下向下功能键;判断是否按下旋转功能键movax,MOVEDOWNjmptmrevo:jmpmovrevolvemovr:jmpmovrightHOM:按下Home键printstringBOARD_LEFT+6,BOARjmpwhile2jmpwhile2;***************************jnewhile20jmpwhile2jnewhile20jmpwhile2movax,move_downcallmoveable;****判断能否移动,产生移动标志mable***jnerbjmpwhile2callmoveable;****判断能否移动,产生移动标志mable***jnewhile20jmpwhile2jerbjnzf2jaf2cmptime_set,axjbfljmpwhile2f2:jmpwhile2jerenewjmphomshow_nextprocnearpushbpjudge:jeclljbjudgejmpexitblockbljbcirpopbpret4;******************显示背景***********pushbxj0:movj,0incjcmpj,27jbthreejbj0;**********************显示框架*********pushbppushallmovdh.alcprintfObbhbody:cprintfObahcprintfObahcprintf0c8hcprintfObchpopall;********************游戏运行屏幕*********pushall;在光标位置显示字符串highpopall;***画砖画墙子函数****************pushallmovbx,[bp+4];[bp+4]保存的是砖块号加8后的颜色属性*****jsd:muljjbnextblockarray[bx]jnejlj1:incjcmpj,BOARD_WIDTHjbg0jbjsdcmpwordptr[bp+4],Bjzcjlj2jlj2pushbxj2:incjcmpj,3jldpopallret4;****************产生下一砖块*********************pushalljenext1jneranmovnext_brick_no,axmovax,BOARDBACK;随机产生一个砖块号__;使每个砖块对应一种颜色movmess12,0jaeelmovj,4incjjbjrjbj4jmpexit2jbellpopallnew_gameprocnearpushallgotoxySCORE_LEFT+3,SCORE_TOP+6;**初始化分数,使之为0***cprintf'0;初始化速度,使之为1popallmoveprocnearpushbppushalljedowjelefjerigjerevjmpexit3;判断是否按下向下功能键;判断是否按下向左功能键;判断是否按下旋转功能键;******************砖块下移********************cmparray[bx],BRICK;自屏幕右下角开始判断是否有砖块jnerenmovarray[bx+BOARD_WIDTH+2],BRICK;该块下降一格jmpredrawjnelelmovarray[bx],EMPTYmovarray[bx-1],BRICKcmpbx,(BOARD_HEIGHT+2)*(BOARjble0jmpredrawmovbx,(BOARD_HEIGHT+2)*(BOARD_WIDTH+2)jneriljmpredrawjmpcstrickcmpbrick_no,5jeheljehe2;如果是方块,则直接重画*******;如果是长条,则画出长条,再旋转movax,BOARDWIDTH+2pushbxmovax,BOARDWIDTH+2incjcmpj,2jlrev1movj,-1incjcmpj,2jlrev5jlrev4jmpredrawjnestr2movarray[bx][si],Bpopbxjlstrljmpredrawmovarray[bx][si],Bjlstr3popallpopbppushbppushalljemdjjemljjemrjjmpexit6jmpmdjmpmljmpmrjmprljnemd1jbmd0;subbx,BOARD_WIDTH+2jnemd3jbmd3;jgemd2jmpexit6jnemlljmpb5addbx,BOARDWIDTH+2jbml0movbx,BOARDHEIGHTmovax,BOARDWIDTH+2jneml3jbml3:jmpb5jgeml2jmpexit6jnemrljmpb5jnemr3jbmr3jmpbsjmpexit6jeb50jeb600jeb50cmpyp,BOARD_HEIGHT-1jeb50jeb50jeb50jmprl00jmpbsjmpb6jbrlljmpbsincjcmpj,2jlrl2jlrl0jmpexit6b6:jneb60jeb5jmpb61jeb5jaeb5movj,-1jbr20incjcmpj,3jlr19incjjlrl8jmpexit6b5:popallpopbp;*****砖块到底之后执行的操作***********4pushallmovax,BOARDWIDTH+2bx,axKjnerea2jerea3jbrealjnerea4jmprea5movrow_down_offset[bx],dljgerea0;*从最后一行第一各格开始判断,是否为空***;**背景色为7,加8是为避免砖块颜色与背景色相同**;***cx为此行是砖块的行数**********jee

温馨提示

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

评论

0/150

提交评论