收藏 分享(赏)

吃豆子程序 汇编语言与微机原理课程设计.doc

上传人:j35w19 文档编号:7133597 上传时间:2019-05-06 格式:DOC 页数:13 大小:219KB
下载 相关 举报
吃豆子程序 汇编语言与微机原理课程设计.doc_第1页
第1页 / 共13页
吃豆子程序 汇编语言与微机原理课程设计.doc_第2页
第2页 / 共13页
吃豆子程序 汇编语言与微机原理课程设计.doc_第3页
第3页 / 共13页
吃豆子程序 汇编语言与微机原理课程设计.doc_第4页
第4页 / 共13页
吃豆子程序 汇编语言与微机原理课程设计.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、1湖 南 农 业 大 学 东 方 科 技 学 院 课 程 论 文 ( 设 计 )学 部 : 理工学部 班 级 : 08 姓 名 : 学 号 :课 程 论 文 ( 设 计 ) 题 目 : 吃豆子程序课 程 名 称 : 汇编语言与微机原理评 阅 成 绩 :评 阅 意 见 :成 绩 评 定 教 师 签 名 :日 期 : 年 月 日2目录一、概要及关键词1二、课程设计题目2三、设计思想简述2四、程序流程图3五、程序源代码4-7六、程序运行过程8七、课程设计总结报告.9-10八、参考文献.101吃豆子程序学 生:WC摘 要:本程序通过汇编语言来实现在屏幕上显示多行“豆子” (用“.”表示) ,用一个“嘴

2、巴” (用字符“C”表示) ,程序运行时,单击空格, “嘴巴”开始从左到右逐行还是“吃豆子” ,一直到“豆子”被吃完停止或者单击空格暂停。这个程序是在 Windows xp的平台上的 MASM5 进行编译的。此程序提供一个可视化游戏界面,通过键盘输入相应的操作后,便可以执行整个游戏程序。当再次空格或整局游戏完成后重新开始整个游戏,也可以通过键盘输入定义的字符后,退出程序。通过本次汇编程序的设计,使我进一步熟练掌握了汇编程序中的一些相关命令的使用。讲书本理论知识在现实中得到实际的应用,帮助我进一步的了解汇编语言编程的一些原理关键词:数据段 中断 子程序 代码段 调用 主程序Abstract: T

3、his assembly language program to achieve through the screen displays multiple lines of “beans“(with “.“ representation), with a “mouth“(with the character “C“ that), the program runs, click the box, “Mouth “line by line starting from left to right or “ Pacman “has always been to “ beans “is finished

4、 click the box to stop or pause. This program is in the platform Windows xp MASM5 compiled. This program provides a visual game interface, the corresponding operation by keyboard input, then they can execute the game program. When the space or the entire Board again after the game to start the game,

5、 you can also define the character keyboard input, exit the program. Through the design of this assembler so I further mastered some of the associated assembler commands. Theoretical knowledge about the book been in the real practical application, to help me better understand some of the principles

6、of assembly language programmingKeywords: Data segment Interrupt Subroutine Code segment The main 2program一、 课程设计题目(分析)我选择汇编语言与微机原理课程设计的题目是吃豆子程序。之所以选择这个题目,是因为我觉得这个课程设计做出来会比较有意思,对于爱好游戏的广大学生来说也有一定的实用价值;这个题目相对而言不是很简单,它不但要运用我们上课所学的知识,还涉及到许多课外的内容。吃豆子程序设计题目要求:在屏幕上显示多行“豆子” (用“.”表示) ,用一个“嘴巴” (用字符“C”表示) ,程序运

7、行时,单击空格, “嘴巴”开始从左到右逐行还是“吃豆子” ,一直到“豆子”被吃完停止或者单击空格暂停。用字符“C”表示嘴巴。用“.”表示豆子;首先屏幕上要布满“.”也就是豆子;然后字符“C”每走一步,此时豆子也要在相应位置减少一个,直到豆子被吃完或者按空格键停止游戏。二、 设计思想简述对于这个题目我的设计思想是:首先定义一个字符串,内容为字符“C”的 ASC值还有其他的一些相关信息,然后把屏幕设置多行豆子,或者布满豆子,把“C”每往前走一格就把该位子上的豆子变为空格键,即“C”遇到非空格就跳转到下一步;这样一颗豆子就吃掉了,只要依次循环下去,就可以把豆子全部吃掉,或者中间按空格,暂停游戏。3三

8、、主要程序框图开 始输入界面提示输入任意字符 AL输出字符串 STR字符串 STR 首地址输出修改字符串调用延时程序CX/DX 入栈保护现场RUZHANCX/DX 出栈恢复现场程序结束空格-STRDIC-STRDIDI+1-DIDI 为空4四、 程序源代码assume cs:code,es:data ;assue:段寄存器伪指令。所谓关联,指某一段寄存器使用某一指定的段空间。cs:code ,ds:data , 代码段寄存器 cs 与 code 关联;数据段寄存器 ds 与 data 关联。data segment ;定义数据段 temp1 dw ? temp2 dw ? ;定义段 temp1

9、 和 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 ;

10、BIOS 对屏幕及显示器所提供的服务程序5mov 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,0 mov ds,ax ;把段地址 0 通过寄存器 a

11、x 送到 dsmov ax,data mov es,ax mov bx,9*4+2 ;把偏移地址送到 bxmov ax,bx ;寄存器间接寻址方式,把 bx 地址所指的值送给 axmov es:temp1,axmov ax,codemov bx,ax ;把 AX 的值赋予 BX 所指向的内存单元mov bx,9*4 ;把段地址送到 bxmov ax,bxmov es:temp2,axmov word ptr bx,0 ;类型操作符对名字或标号的类型属性进行有关设置mov ah,02H ;02H 用文本坐标下设置光标位置6mov bh,0xor dx,dx ;二进制运算做清 0 操作,dx 清

12、0int 10Hmov ax,0B800H ;文本模式下显存起始地址; 0a000h 是图形模式下显存起始地址mov ds,ax ;把 ax 的值送到数据段xor bx,bx ;二进制运算做清 0 操作,bx 清 0mov cx,80*25 ;dos 最大屏幕表示量,默认最大显示量就是 80*25eatpea:mov si,0FFFFH ;代表在 2580 的文本显示方式下,屏幕可有 2000个字符位置, (si 为源变址寄存器,si 与 di 有自动增量和自动减量功能,用于变址很方便)mov di,004FFHdelay:sub si,1 ;将 si-1 的值送到 sijnz delay ;

13、不为 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,0 7mov ds,ax ;把立即数 0 通过 ax 寄存器送到 ds 数据段寄存器mov bx,9*4+2 mov ax,es:temp1 ;把附加

14、段中 temp1 中的内容通过 ax 送到 bxmov bx,ax mov bx,9*4 mov ax,es:temp2mov bx,ax ;把附加段中 temp2 中的内容通过 ax 送到 bxin al,60h ;读取键盘值cmp al,10h je quit ;执行跳转jmp start ;空格键则跳到开始quit: mov ax,4c00h int 21h ;中断调用程序exit:mov ah,07H ;利用 07 号 DOS 系统功能调用退回 DOSint 21H ;调用系统中断mov ax,4C00H ;调用 INT 21H 的 4CH 号中断,安全退出程序int 21H ;调用系

15、统中断code endsend start8五、程序运行过程(1)编译:*:在 windows xp 系统下运行 MASM 汇编软件,编译程序,无错误与警告,执行下一步。(2)链接:*:在编译无错误警告之后进行链接,出现警告,因为不影响运行结果,继续执行下一步。(3)执行:9*:上示截图为运行时的画面,通过键盘输入空格键后执行吃豆子游戏程序。六、课程设计总结报告(1) 课程设计中所遇到的主要问题和解决方法。 在课程设计的过程当中遇到的主要问题就是对整个汇编知识不是很熟悉,部分代码不能灵活运用,也有部分代码不能理解,因此在设计过程中花了较多时间查阅书籍跟浏览网上资料;在编写完整个程序后,编译、链

16、接、运行时,第一次按空格键开始吃豆子,再按空格键停止吃豆子,但是第三次按空格键时则出现 D:MASM等字符,如果继续按空格键则出现了手动吃豆子的现象,如果在 D:MASM后输入“文件名”则重新开始整个游戏;但是通过对整个程序的检查,我发现在源代码循环部分后少了一部分退出游戏的源代码,因此我加了一段关于按空格键退出或重新开始游戏的源代码解决了此问题;再一个就是DOS 指令不能灵活运用,导致程序运行过程中纰漏百出,这样也浪费了不少时间,最后通过多次尝试修改,终于完成了整个程序设计。(2) 创新和得意之处。这个吃豆子游戏的程序的创新之处主要体现在整个程序能以一种可视化的动态界面看到类似于“吃豆子”的

17、动作;当然这个过程也是比较巧妙的,字符“C”本身就象形与吃豆子的嘴,而“.”也很像豆子,整个程序运行起来生动形象,再者就是整个游戏通过空格键控制游戏的开始,重新开或者退出游戏,整个过程快捷方便。(3) 课程设计中存在的不足,需要进一步改进的设想。这个程序设计存在的不足主要表现在当第一次按空格键暂停后,再按空格键就重新开始游戏了,或者按空格键,然后回车键,再输入“文件名”就重新开始整个游戏了,此点需要改进应当编写成按空格键开始游戏,再按空格键暂停,又按空格键继续,按回车键退出游戏;当然如果能达到一定的高度,这个10吃豆子游戏也可以修改成人为操作的一个小游戏程序,可人手动以控制吃豆子的方向,速度等

18、,因此我会继续努力,不断提高自己编程的能力,编写出有趣味的小游戏程序。(4) 课程设计的感想和心得体会。通过本次汇编语言课程设计,让我更加明白实践的重要性,如果整天的学习课本上的理论知识而不拿来用那肯定是很烦的,不但要去理解各种指令的功能,还要学习相应的硬件知识。再者,学习理论知识的目的还是要拿来运用,通过实践来巩固所学的理论知识。并且通过这次课程设计实践,让我一改往日的厌学情绪,尤其是当程序运行正确的时候,那种来自内心的成就感,让我更加有信心学好汇编语言了。通过本次课程设计让我更深刻的明白学习的重要性,遇到不懂得问题要敢于向同学提问,没有什么不好意思的,不懂就是不懂。如果遇到问题了还坐那里发

19、呆,那肯定完成不了任务。还有遇到问题多和同学探讨,所谓“独学而无友,则孤陋而寡闻”就是这个道理,或许就在和同学的讨论过程中,点开了你的思路,问题就迎刃而解了。总之,这次汇编语言课程设计让我受益匪浅,我不但收获了知识,提高了能力,而且学到了很多人生的哲理。对于学习汇编语言这门专业课,以后要多看程序,多尝试编写程序,在实践的过程中发现问题,并及时解决问题,让自己更上一层楼。参考文献 1 钱小捷等编. 微机原理与借口技术 ,2008 年 1 月,第 4 期第 1 版,机械工业出版社2 宋彩莉等编. 汇编语言程序设计学习指导 ,2007 年出版,西安交通大学版3 东阳生等编. 宏汇编语言 MASM5 实用大全 ,1993 年出版,科学出版社4 沈美明等编. IBM-PC 汇编语言程序设计 ,2008 年第 1 版,清华大学出版社5 求伯君等编. 新编深入 DOS 编程 ,1994 年 6 月版,学苑出版社*附:程序执行文件图片11

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报