




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信 息 工 程 学 院 课 程 设 计 报 告设计题目: 吃豆子程序 名 称: 微机原理与接口课程设计 班 级: 通信1002班 姓 名: 学 号: 设计时间: 至 指导教师: 评 语: 评阅成绩: 评阅教师: 一、课程设计的性质和目的(1)通过课程设计,进行程序设计方法和技能的基本训练,巩固在课堂上学到的有关软件程序设计的基本知识和基本方法,硬件电路的设计等;(2)通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,掌握软硬结合的控制程序设计,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。二、课程设计的要求1、遵循模块化、结构化的程序设计方法。2、要求程序必须正确。3、程序简明易懂,多运用输入输出提示,有出错信息及必要的注释。4、要求程序结构合理,语句使用得当。5、适当追求编程技巧和程序运行效率。三、主要仪器设备及软件PC机、MASM汇编软件、绘图软件及仿真等。四、课程设计题目及要求 题目:吃豆子程序要求:在屏幕上显示多行“豆子”(用“.”表示),用一个“嘴巴”(用字符“C”表示),程序运行时,单击空格,“嘴巴”开始从左到右逐行还是“吃豆子”,一直到“豆子”被吃完停止或者单击空格暂停。五、课题分析及设计思路 吃豆子程序这个课程设计,我个人觉得比较有意思,但也觉得这题目不是很简单,它不但要运用我们上课所学的知识,还涉及到许多课外的内容。 对于这个题目我的设计思路是:在屏幕上显示多行“豆子”(用“.”表示),用一个“嘴巴”(用字符“C”表示),程序运行时,单击空格,“嘴巴”开始从左到右逐行还是“吃豆子”,一直到“豆子”被吃完停止或者单击空格暂停。主要运用DOS调用及BIOS调用得到相关的程序得到的,在程序数据段定义一段再调用DOS中断显示豆子,用字符“C”表示嘴巴。用“.”表示豆子;首先屏幕上要布满“.”也就是豆子;然后字符“C”每走一步,此时豆子也要在相应位置减少一个,直到豆子被吃完或者按空格键停止游戏。主要程序调用命令及格:1. int 21H中断mov ah,07H ;调用07H设置屏幕滚屏显示int 21H ;调用系统中断,键盘输入mov ax,4c00hint 21h ;中断调用程序mov ah,07H ;利用07号DOS系统功能调用退回DOSint 21H ;调用系统中断mov ax,4C00H ;调用 INT 21H 的 4CH 号中断,安全退出程序int 21H ;调用系统中断2. int 10H中断mov al,02H ;02H用文本坐标下设置光标位置int 10H ;BIOS 对屏幕及显示器所提供的服务mov ah,02H ;02H用文本坐标下设置光标位置程序mov bh,0xor dx,dx ;二进制运算做清0操作,dx清0int 10 六、程序主要流程图: 吃豆子程序流程图如下:七、程序主要代码与分析:assume cs:code,ds:data ;assume:段寄存器伪指令。所谓关联,指某一 段寄存器使用某一指定的段空间。cs:code ,ds:data , 代码段寄存器cs与code关联;数据段寄存器ds与data关联data segment ;定义数据段temp1 dw ?temp2 dw ? ;定义段temp1和temp2data endscode segment ;定义程序代码段in al,60H ;从端口60输入内容并传送到alcmp al,57 ;比较送到al的数与57(在ascll码中代表十进制的9)的差jnz nospace ;执行跳转mov cx,1 ;把立即数1送到cxnospace:mov al,20H ;设置INT 1Fh字体指针out 20H,al ;向0x20 I/O地址送0x20的数据iret ;中断返回程序start:mov ah,00H ;00H设置显示模式mov al,02H ;02H用文本坐标下设置光标位置int 10H ;BIOS 对屏幕及显示器所提供的服务mov ah,02H ;02H用文本坐标下设置光标位置mov dl,. ;取要显示的字符到DL中mov cx,80*25 ;dos最大屏幕表示量,默认最大显示量就是80*25setpoint:int 21H ;调用系统中断,键盘输入loop setpoint ;循环指令testkey: ;模拟键盘的空格健动作 mov ah,07H ;调用07H设置屏幕滚屏显示int 21H ;调用系统中断,键盘输入cmp al, ;比较指令,保证全为空格jnz exit ;不为空格则跳转mov ax,0mov ds,ax ;把段地址0通过寄存器ax送到dsmov ax,datamov es,axmov bx,9*4+2 ;把偏移地址送到bx mov ax,bx ;寄存器间接寻址方式,把bx地址所指的值送给axmov es:temp1,axmov ax,codemov bx,ax ;把AX的值赋予BX所指向的内存单元mov bx,9*4 ;把段地址送到bx mov ax,bxmov es:temp2,axmov word ptr bx,0 ;类型操作符对名字或标号的类型属性 进行有关设置mov ah,02H ;02H用文本坐标下设置光标位置程序mov bh,0xor dx,dx ;二进制运算做清0操作,dx清0int 10Hmov ax,0B800H ;文本模式下显存起始地址;0a000h是图形模式下显存初始地址mov ds,ax ;把ax的值送到数据段xor bx,bx ;二进制运算做清0操作,bx清0mov cx,80*25 ;dos最大屏幕表示量,默认最大显示量就是80*25 eatpea:mov si,0FFFFH ;代表在2580的文本显示方式下,屏幕可有2000个字符位置,(si为源变址寄存器,si与di有自动增量和 自动减量功能,用于变址很方便)mov di,004FFHdelay:sub si,1 ;将si-1的值送到sijnz delay ;不为0就继续si-1,即吃下一个豆子sub di,1 ;将di-1的值送到dijnz delay ;不为0就继续di-1,即翻到下一页mov byte ptr bx, ;把“ ”的第一个字节的内容送到bx并把它的操作类型定义为字节 mov byte ptr bx+2,C ;把“C”的第一个字节的内容送到bx+2并把它的操作类型定义为字节add bx,2 ;将bx+2的值赋给bxloop eatpeamov ax,0mov ds,ax ;把立即数0通过ax寄存器送到ds数据段寄存器mov bx,9*4+2mov ax,es:temp1 ;把附加段中temp1中的内容通过ax送到bxmov bx,axmov bx,9*4mov ax,es:temp2mov bx,ax ;把附加段中temp2中的内容通过ax送到bxin al,60h ;读取键盘值cmp al,10hje quit ;执行跳转jmp start ;空格键则跳到开始quit:mov ax,4c00hint 21h ;中断调用程序exit:mov ah,07H ;利用07号DOS系统功能调用退回DOSint 21H ;调用系统中断mov ax,4C00H ;调用 INT 21H 的 4CH 号中断,安全退出程序int 21H ;调用系统中断code endsend start八、实验结果截图首先在C盘masm5下新建一个asm文件chidouzi.asm,把吃豆子程序代码写入chidouzi.asm中,然后打开DOS命令窗口,按照下图(1)方式,对程序进行编译,无警告和错误之后,在masm5文件夹中生成chidouzi.obj文件,再用link链接,链接无误后,在masm5文件夹中生成chidouzi.exe文件,执行chidouzi.exe文件;然后按空格键,开始吃豆子,如图(2);再按空格键暂停吃豆子。如果不按空格键,等吃完豆子后程序自动停止.图1. 程序的编译、链接和执行图2. 程序执行后,按空格键开始吃豆子九、心得体会这次的课程设计,我们的课设题目是吃豆子程序,起初拿到题目感觉这个题目比较有意思,和我的搭档讨论了一下,感觉应该比较简单,但是我们真正开始动手开始做的时候,才发现有很多问题,主要是对汇编知识的代码部分不能灵活运用,也对好多代码理解的不是很透彻,所以我们上网查了资料。起初我们用emu8086软件来运行,总是有些错误,我们逐个找出原因,改写程序,最终得出结果,后来看到老师给的模板要用MASM汇编软件,于是我们就按照老师上课给我们讲的步骤在dos命令下运行该程序,但是由于对masm的不理解,我们只是在C盘新建了一个masm5文件夹,所以总是弄不出来,然后我们上网查了下,原来在masm5文件夹里少了一些东西,于是我就下载了那些东西放在了masm5文件夹里,最后运行程序一遍就成功了,后来我把这个经验告诉了好多班里的同学,并把那些masm5文件夹里需要东西拷给了他们。程序搞定后,接下来还有很多的东西要做,于是我们分工,他做设计思路,我做流程图,开始做的流程图不是很正确,因为我做的是程序中用字符串、调用,最后结束,经过老师的指导,原来这不是老师要的那种,并指导我们需要什么样的流程图,最后我改正了,画出了上述流程图(总感觉有些太简陋、简洁)。最终在我们俩的共同努力下,我们完成了吃豆子程序的课程设计,并做成文档。程序虽然做完了,但是也有些不足,例如,第一次按空格键游戏暂停后,再按空格键程序就结束了;用dos运行后,第一次按空格键游戏暂停后,再按空格键还要在输入程序的exe文件,又重新开始。但毕竟老师给的要求就只是“豆子被吃完停止或者单击空格暂停”,后面没做要求了。当然吃豆子程序还能继续做一下延伸,例如,按上下左右键可以上下左右吃豆子,或者按某一个键可以重新开始程序,另一个键可以结束程序,不过我们指导老师对这些没做要求,所以我们课外时间可以做一做这些,毕竟很有意思,而且做出来之后很有成就感,嘿嘿!为期一个多星期课程设计对我们俩来说,真可谓受益匪浅,体会颇深。从最开始查找资料,到设计思路的比较,流程图的绘制,编写相关的程序,运
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年河北省邯郸市经济技术开发区中考一模数学试题(原卷版+解析版)
- 【CMF】2025中国宏观经济专题报告5GDP增速必要性与可能性
- 儿童应急救护培训课件
- 旅游业客户服务升级
- 2015年高考英语试卷(新课标Ⅰ)(原卷版)
- 2025景观绿化工程设计委托合同书
- 2025建筑工程材料采购销售合同示范文本模板
- 心理健康活动月策划书
- 几种重要病毒的简介
- (完整版)研发投入核算体系财务管理制度
- 热力管道吊装专项方案
- 女性经期管理
- 财务管理有趣的知识普及
- 云肩完整版本
- 2024年10月自考04741计算机网络原理试题及答案含评分参考
- 数字化技术在中国会计师事务所中应用的研究报告 2024
- 人民医院手术室装修及安装方案
- 《兰亭集序》公开课一等奖省公开课获奖课件说课比赛一等奖课件
- 2025届高考专题复习:课内外古诗词对比阅读
- 企业创业孵化与创新基地管理制度
- 2025届高考物理讲座课件:《对标三新寻求突破》
评论
0/150
提交评论