汇编语言课程设计打字游戏Word下载.docx
《汇编语言课程设计打字游戏Word下载.docx》由会员分享,可在线阅读,更多相关《汇编语言课程设计打字游戏Word下载.docx(20页珍藏版)》请在冰豆网上搜索。
汇编语言是一项实用性很强的技术,学完教学大纲规定的全部内容,完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言课程设计方法,提高分析问题,解决问题的综合应用能力。
学会查阅和汇编语言相关的规范,手册等技术资料。
能正确绘制和使用流程图。
掌握汇编语言程序设计和程序调试的基本技能,能进行基本的软件设计。
1.2课程设计内容
此课程设计中,实现的主要功能是在屏幕的顶端排列一排英文字母,底端对应排列一排小球或小方块,屏幕顶端的英文字母以一定的速度随机下落,落到底端的小球或小方块处,小球或小方块消失,但如果在英文字母落到底端前,正确按键(落下的英文字母的键位),则英文字母消失,英文字母消失或落到底端后,顶端原字母的空处出现另一新字母,按空格键则暂停,再按空格键字母继续下落,如过底端小球或小方块消失后,则不再出现。
2.开发环境
2.1软、硬件环境
软件环境:
操作系统:
Windows864位(DirectX11)、
BIOS系统
DOS系统
硬件环境:
处理器:
英特尔第三代酷睿i3-3110M@2.40GHz双核
内存:
4GB(三星DDR31333MHz)
主硬盘:
希捷ST500LM012HN-M500MBB(500GB/5400转/分)
显示器:
三星SEC3649(14英寸)
2.2MASM开发环境
Masm是汇编编译器,是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发的优点,支持伪指令和宏汇编,最后编译生成obj文件,通过link工具连接成可执行文件exe。
使用步骤为:
a使用编辑软件TE.EXE进行源程序的编写。
b使用汇编软件MASM.EXE对源程序汇编。
c使用连接软件LINK.EXE对目标文件进行连接。
d使用调试软件DEBUG.EXE对可执行程序进行调试。
3.功能分析
3.1基本功能设计
(1)屏幕的顶端排列一排英文字母,底端对应排列一排小球或小方块。
(2)屏幕顶端的英文字母以一定的速度随机下落,落到底端的小球或小方块处,小球或小方块消失。
(3)在英文字母落到底端前,正确按键(落下的英文字母的键位),则英文字母消失。
(4)按空格键则暂停,再按空格键字母继续下落。
(5)英文字母消失或落到底端后,顶端原字母的空处出现另一新字母。
(6)底端小球或小方块消失后,不再出现。
(7)程序执行后,出现新界面.新界面应包含以下内容:
a.显示时间
b.按回车键继续
c.按ESC键返回主界面
d.按’E’键退出程序
3.2系统程序流程图
图1打字游戏程序流程图
4.调试和运行程序
4.1程序调试
(1)打开windows命令窗口,进入masm程序的安装目录,汇编源文件,如图2:
图2文件链接图
(2)链接原文件,并运行可执行文件,如图3:
图3运行可执行文件图
4.2程序运行
(1)进入主程序段显示提示信息,程序功能实现如图4所示:
图4程序主界面图
(2)按回车键进入打字练习页面,并且开始练习打字,如图5:
图5打字主界面图
(3)进入游戏后,随机落下一字母,如果按下空格,则暂停。
如图6所示:
图6游戏中按下空格暂停游戏界面
(4)在打字练习过程中,按空格键暂停,按“ESC”键为返回主页面。
最后练习打字结束按“E”退出程序,如图7所示:
图7回到主界面图
5.课程设计总结
在短暂几天的时间里,汇编语言课程设计结束了,我的收获很大。
通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编程能力,补全了我的不足。
通过这次课程设计,我巩固了学过的知识,能用汇编语言熟练地运用顺序、选择、循环三大结构,进一步掌握了各个指令的功能,特别是转向指令,掌握了子程序的定义及调用,以及正确地运用DEBUG指令。
在整个程序的编写中,调试占了很大部分的时间。
要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这对程序的调试是非常重要的。
通过这次实际动手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,基本达到了能独立阅读、编制和调试一定规模的汇编语言程序的水平。
6.参考文献
[1]杨文显,宓双,胡建人.新编汇编语言程序设计[M],北京:
清华大学出版社,2010:
20-58
[2]朱玉龙,任文览等.汇编语言程序设计[M],北京:
清华大学出版社,2003:
67-89
[3]吴向军等.汇编语言程序设计[M],北京:
高等教育出版社,2002:
98-119
[4]沈美明等.IBM-PC汇编语言及程序设计实验教程[M],北京:
清华大学出版社,2001:
45-67
[5]钱晓捷等.汇编语言程序设计[M],北京:
电子工业出版社,2000:
1-24
[6]李珍香等.汇编语言程序设计案例精编[M],北京:
中国水利水电出版社,2004:
5-16
[7]白小明.汇编语言程序设计[M],北京:
中国铁道出版社,2009:
56-76
[8]王成耀,姚琳.汇编语言程序设计[M],北京:
机械工业出版社,2003:
34-46
[9]范立南,谢子殿.单片机原理及应用教程[M].北京:
北京大学出版社,2006.1:
123-130
[10]沈美明等.IBM-PC汇编语言及程序设计实验教程[M],北京:
清华大学出版社,2001.2:
101-113
附录:
源程序代码
INIT_GAMEMACROOP1,OP2,OP3,OP4,OP5,OP6
MOVCX,00H
MOVDH,OP1
MOVDL,OP2
OP6:
MOVAH,02H
MOVBH,00H
INT10H
PUSHCX
MOVAH,0AH
MOVAL,OP3
MOVCX,01H
POPCX
INCCX
INCOP4
CMPCX,OP5
JNEOP6
ENDM
CLEAR_SCREENMACROOP1,OP2,OP3,OP4
;
本段程序主要是通过定义变量和调用实现清屏宏定义
MOVAH,06H
MOVAL,00H
MOVBH,07H
MOVCH,OP1
MOVCL,OP2
MOVDH,OP3
MOVDL,OP4
MOVDH,00H
MOVDL,00H
MENUMACROOP1,OP2,OP3
;
本段程序主要是通过定义变量和调用来实现菜单显示宏定义
MOVAH,09H
LEADX,OP3
INT21H
DATASEGMENT
ZKDB"
WELCOMETOPLAY$"
NODB"
DATE:
2014-6-25$"
MEGDB"
PRESSENTERKEYTOCONTINUE.......$"
MEG1DB"
WHENALETTERISDROPPING,PLEASEHITIT!
$"
MEG2DB"
PRESSSPACEKEYTOPAUSE!
MEG3DB"
PRESSESCKEYTORETURNMAININTERFACE!
MEG4DB"
PRESSLETTER'
E'
TOEXIT!
SPEEDDW600D
LETTERSDB"
JWMILZOEUCGPRAVSKNTXHDYQFB"
DB"
IYTPKWNXLSVXRMOFZHGAEBUDJQ"
NWIMZOEXRPHYSFQTVDCGLJUKDA"
LETTERS_BAKDB"
LETTER_COUNTERDB0
LIFE_FLAGDB78DUP(0)
POSITION_FLAGDB78DUP(0)
PRESENT_POSITIONDB1
DATAENDS
本段主要用于主界面的显示,起到提示作用
CSEGSEGMENTPARASTACK'
stack'
DB64DUP(0)
ENDS
CODESEGMENT
MAINPROCFAR
ASSUMECS:
CODE,DS:
DATA,SS:
CSEG
START:
MOVAX,DATA
MOVDS,AX
MOVLETTER_COUNTER,00H
MOVPRESENT_POSITION,1
LEASI,POSITION_FLAG
MOVAH,00H
INIT_POSTION_FLAG:
MOV[SI],AH
INCSI
CMPCX,78D
JNEINIT_POSTION_FLAG
LEADI,LETTERS
LEASI,LETTERS_BAK
INIT_LETTERS:
MOVAH,[SI]
MOV[DI],AH
INCDI
JNEINIT_LETTERS
MOVAH,00H
LEASI,LIFE_FLAG
INIT_LIFE_FLAG:
JNEINIT_LIFE_FLAG