吃豆子 微机原理课程设计.doc
《吃豆子 微机原理课程设计.doc》由会员分享,可在线阅读,更多相关《吃豆子 微机原理课程设计.doc(32页珍藏版)》请在沃文网上搜索。
1、学 号: 课 程 设 计题 目吃豆子程序学 院 专 业 班 级 姓 名 指导教师 2012年01月12日课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 吃豆子程序 初始条件: 在屏幕上显示多行“豆子”(用“.”表示),“豆子”随机分布,用一个“嘴巴”(用字符“C”表示)吃“豆子”,程序运行时,单击上下左右键,“嘴巴”开始逐个“吃豆子”,一直到“豆子”被吃完停止或者单击P键暂停;按Q键退出程序。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1) 设计任务及要求分析(2) 方案比较及认证说明(3) 系统原理阐述(4) 硬件设计课题需要说
2、明:硬件原理,电路图,采用器件的功能说明(5) 软件设计课题需要说明:软件思想,流程图,源程序及程序注释(6) 调试记录及结果分析(7) 总结(8) 参考资料(9) 附录:芯片资料或程序清单,软件演示屏幕拷贝图或硬件实物图时间安排:1月4日1月5日:收集资料,方案选择1月6日1月8日:整体流程,程序细节1月9日1月12日:调试程序,报告撰写1月12:交设计报告,程序演示,答辩指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目 录摘要1ABSTRACT11 绪论12 设计内容及分析22.1设计内容22.2功能实现分析23 方案论证33.1方案比较33.2主要程序调用命令及格式43
3、.2.1 INT 21H中断43.2.2 INT 10H中断53.2.3 INT 16H中断64 单元程序设计74.1主程序74.2界面显示程序84.3延时子程序84.4暂停子程序104.5方向子程序115 程序编写与调试分析135.1源程序135.2程序的调试问题205.3运行结果及分析206 小结22参考文献23附录24武汉理工大学微机原理与接口技术课程设计说明书摘要本微机课程设计一种简便的编写“吃豆子”汇编程序。在屏幕上显示多行“豆子”(用“.”表示),“豆子”随机分布,用一个“嘴巴”(用字符“C”表示)吃“豆子”,程序运行时,单击上下左右键,“嘴巴”开始逐个“吃豆子”,一直到“豆子”被
4、吃完停止或者单击P键暂停;按Q键退出程序。通过设计该课程设计熟练掌握流程图的绘制,熟悉汇编语言特别是相关中断的调用以及掌握调试程序等相关知识。其中源程序主要分为主程序、延时子程序、暂停子程序、方向键子程序等主要部分。 关键字:吃豆子 汇编 方向 ABSTRACTThis computer course design an easy to write eat beans assembler. In the screen more lines beans (with . said), beans random distribution, with a mouth (with character C
5、 said) to eat beans , and the program is running, click the up and down or so key, mouth start eat beans one, has been to the beans was finished eating the stop or click P bond suspended; According to Q key quit. Through the design of the course design master chart the draw, familiar with assembly l
6、anguage especially relevant interrupted the call and master of debugging and related knowledge. The main points of the source program mainly procedures, delay subroutines, suspend the procedure, the direction key procedure and other major parts.Keywords:Bean-eating Assembly Direction 1武汉理工大学微机原理与接口技
7、术课程设计说明书1 绪论 本微机原理课程设计主要是使我们增进对汇编语言的认识,加强用汇编语言编程的能力。 使我们掌握汇编语言的中断调用功能的应用,可以用汇编语言调用各种中断调用功能,并由此实现对硬件的控制等。使学生了解和掌握汇编程序设计过程、方法及实现,同时能够更好的加强对微机原理课程的进一步的学习与巩固。 本课程设计书说明书主要分析了用汇编语言编写“吃豆子”程序的过程,其中题目要求在屏幕用“.”表示豆子,“C”表示嘴巴,然后通过相关控制键嘴巴吃豆子,并且可以随时退出程序。要实现该功能需要实现在界面上显示相关的信息(可以调用DOS中断)、对键盘信息的采集(可以调用BIOS中断)、并且实现相关的
8、控制(如退出程序、暂停等)。 汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。 2 设计内容及
9、分析2.1设计内容课程设计的题目是吃豆子程序,通过分析要实现的功能又如下几点: 1. 在屏幕上显示多行“豆子”(用“.”表示),“豆子”随机分布;2. 用一个“嘴巴”(用字符“C”表示)吃“豆子”;3. 程序运行时,单击上下左右键,“嘴巴”开始“吃豆子”;4. 一直到“豆子”被吃完停止或者单击P键暂停;5. 按Q键退出程序。2.2功能实现分析功能一:显示豆子在程序数据段定义一段再调用DOS中断显示豆子;功能二:显示嘴吃豆子在光标所在位置显示C嘴,在将DL(DH)加一(减一),再将光标位置显示成空格,表示成豆子被“吃”了;功能三:单击方向键开始吃豆子取光标键的扫描码,判断输入方向然后分别向不同方
10、向吃豆子,即调用功能二;功能四:单击P暂停读取键盘的是否有P输入,有则然后执行暂停子程序;功能五:单击Q退出程序读取键盘的是否有Q输入,有则退出程序;3 方案论证3.1方案比较经过相关资料的查阅与网上资料的收集初步整理得到了如下的两种方案;方案1:具体流程图如下图3-1所示 图3-1 方案1的流程图方案1说明:主要运用DOS调用及BIOS调用得到相关的程序得到的,在程序数据段定义一段再调用DOS中断显示豆子;在光标所在位置显示C嘴,在将DL(DH)加一(减一),再将光标位置显示成空格,表示成豆子被“吃”了;单击方向键开始吃豆子取光标键的扫描码,判断输入方向然后分别向不同方向吃豆子;读取键盘的是
11、否有P输入,有则然后执行暂停程序;读取键盘的是否有Q输入,有则退出程序。方案2:具体流程图如下图3-2所示图3-2 方案2流程图方案2说明首先定义一个字符串,内容为字符“C”的ASC值还有其他的一些相关信息,然后把屏幕设置多行豆子,或者布满豆子,把“C”每往前走一格就把该位子上的豆子变为空格键,即“C”遇到非空格就跳转到下一步;这样一颗豆子就吃掉了,只要依次循环下去,就可以把豆子全部吃掉,或者中间按空格,暂停游戏。两种方案比较:方案1编写程序时可以调用相对简单的命令,循环结构不是很复杂,子程序的调用,实现起来相对比较简单直观;而方案2编写的程序功能不全吧,不能很好的实现题目要求功能,所以可以采
12、用方案13.2主要程序调用命令及格式3.2.1 INT 21H中断1. 9号功能调用(字符串输出)9号功能调用是将缓冲区中的一组以“”结束的字符串送标准输出设备输出(显示器或打印机)。调用前必须将输出缓冲区的首地址送DS:DX。格式如下:LEA DX,BUF;取字符串的首地址MOV AH, 9;调用功能号为9号INT 21H2. 2号功能调用(字符输出显示)2号功能是将一个字符(一个ASCII码值)输出到标准输出设备(即显示器或打印机)。入口参数为DL寄存器,寄存器DL中存放待输出的字符。格式如下:MOV DL,10;送入ASCII码 MOV AH,2;调用功能号为9号 INT 21H3.2.
13、2 INT 10H中断1. 0号功能调用0号功能是用来设置界面显示方式,在本程序中选用8025黑白文本显示方式(2号显示方式),即在AL中送入2。格式如下:MOV AH,0;调用功能号为0号MOV AL,2;选择2号显示方式INT 10H;2. 2号功能程序2号用来号功能是设置光标位置(2号功能),其中入口参数表示为AH=2(功能号),BH=页号,DH=行号,DL=列号。出口参数:无。根据DX确定了光标位置。(在调用该功能号时,之前DH、DL已经给定)格式如下:MOV AH,2;调用功能号为2号INT 10H3. 10号功能程序10号功能是实现在当前光标位置写字符,其中入口参数:AH=0AH,
14、BH=页号,AL=字符的ASCII码,CX=写入字符数。出口参数:无。格式如下:MOV AH,10;调用功能号为10号INT 10H4. 15号功能程序15号功能是实现读当前显示状态,其中入口参数:AH=0FH,出口参数:AL=当前显示方式,BH=页号,AL=屏幕上字符列数。格式如下:MOV AH,15 ;调用功能号为10号 INT 10H 3.2.3 INT 16H中断1. 0号功能调用0号功能是用来检查键盘缓冲区是否有一个字符。如果有,通过AH返回字符的扫描码,通过AL返回字符的ASCII码。若没有,等待按键出现并返回它。其中对于方向键的这样没有ASCII码的字符,只通过AH返回扫描码,A
15、L=0。在本程序中运用的上下左右键对应的扫描码分别是4BH,4DH,50H,48H。格式如下:MOV AH, 0INT 16H2. 1号功能调用1号功能调用的功能是用来查询键盘缓冲区,对键盘扫描但不等待,并设置ZF标志。若有按键操作(即键盘缓冲区不空),则ZF0,AL中存放的是输入的ASCII码,AH中存放输入字符的扩展码。若无键按下,则标志位ZF1格式如下:MOV AH, 01HINT 16H4 单元程序设计 经过方案比较后选择方案一,具体的编写流程图及单元程序部分得到各部分的程序,本课设完整的程序主要包含五个单元:主程序、界面显示程序、延时程序、延时子程序、方向子程序。首先是在界面显示提示
16、信息及相关的豆子,然后是程序的主程序,再在主程序中调用相应的子程序。4.1主程序 主程序是该程序的主要部分,其中包括主要调用相应的子程序,流程图如下图4-1所示。图4-1 主程序流程图 在主程序中首先显示豆子,然后判断输入S时可以得到,程序开始运行,按下方向键可以调用相应的方向子程序来各个方向来吃豆子,按下P程序暂停并且显示P显示暂停状态;按下Q则表示退出程序。4.2界面显示程序由于在程序中显示“豆子”,可以首先在程序的数据段中定义带有“豆子”的字符,然后调用DOS显示功能调用,另外在输入多行字符时需要回车与换行的调用。其中界面显示部分流程图如下图4-2所示。另外相应的界面提示语的显示与豆子的
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 吃豆子 微机原理课程设计 豆子 微机 原理 课程设计
