打字游戏汇编报告
- 格式:doc
- 大小:156.00 KB
- 文档页数:26
实训报告书
实训名称: 打字游戏
系 (部):
专业班级:
学生姓名:
学 号:
指导教师:
完成日期:
实训课题 打字游戏
实训人姓名 同组人员
实训日期
实训成绩
指导教师评语
指导教师签名:______________
_______年 ____ 月____日
课程实训报告书
1 目 录
1 实训目的 ................................................................................................. 2
2 打字游戏系统的设计与分析 .............................................................. 2
2.1 系统设计与功能的描述 ............................................................ 2
2.2 系统模块分析 ............................................................................ 3
2.3 系统整体设计方案流程图 ......................................................... 4
2.4 程序流程图 ................................................................................ 5
3 主要代码清单....................................................................................... 6
4 程序运行与测试 ................................................................................ 20
4.1 程序的调试 .............................................................................. 20
4.2 程序中使用的部分重要指令 .................................................. 21
5 实训总结 ............................................................................................. 23
……………………………装……………………………………订…………………………………线…………………………… 课程实训报告书
2 打字游戏系统的设计与实现
1、实训目的
《微机原理及应用》实训的教学让学生通过接触客观实际,来了解和认识所学的专业知识,让学生了解和掌握所学知识在客观实际中的应用,通过实训课可以使学生了解解决实际问题的过程,并能亲自动手完成相关题目设计。让学生对实际课题设计的过程和方法有个很好的认识,又能亲自动手来锻炼提高专业技能,把所学的理论知识与实际能力紧密的结合在一起。
在进行实训的同时,教师应培养学生具有初步的科研意识,培养学生查找资料、运用设计资料,完成工程问题的能力,为后继课程的学习打下坚实的基础。
本次课程设计的目的主要是将课堂上所学的知识学以致用,通过程序的制作过程学习课外的新知识,并加强加深对旧知识的理解与掌握,最终使学生达到以下三点:
1.使学生增进对汇编语言的认识,加强用汇编语言编程的能力。
2.使学生了解和掌握汇编语言程序设计过程、方法及其实现,为以后微机原理课程的深入学习打下良好基础。
3. 使学生进一步掌握屏幕输出显示的设计方法。
2、打字游戏系统的设计
2.1系统功能的描述
运行该程序,首先进入游戏主功能界面,在该界面如果按“Enter”键会进入游戏主界面,如果按“E”字母键会退出程序。进入程序主界面,会有随机字母落下,如果击中正确字母会在下方的“hit:”那里显示您击中的次数,如果没击中或者击中的是错误的字母,则会在下方的“lost:”显示未击中的次数。您还可以按“Space”键暂停游戏,按“ESC”键返回游戏主功能菜单,从另选择功能项。当您未击中的次数等于9次时,游戏结束,进入游戏结束页面,在该页面中您还可以按“ESC”键返回游戏主功能菜单,开始新一轮的游戏或退出。
2.2系统模块分析:
该打字游戏系统主要分为一下几大模块:清屏宏定义模块,菜单显示宏定义模块,数据块定义模块,栈定义模块,主代码段模块。 课程实训报告书
3 清屏宏定义模块:用于当前页面跳转下一页面清除上一页面的内容,以便正常显示该页面内容。
菜单显示宏定义模块:用于显示实现游戏主功能页面中几项主要功能。
数据块定义模块:程序中所有的变量或者常量全都在此模块中定义。
栈定义模块:指定段的名称和范围。
主代码段模块:在所有代码段中该代码段最重要也最长,它容扩了所有上面的代码段并实现了他们的功能,其他还有:定义初始字符位置,宏定义模块的调用,设置光标位置,输入字符,计算击中和未击中的次数,字母下落循环,击中字符消失,当击中次数大于9时进位,出现下一个字符的算法,和返回DOS状态等等。 课程实训报告书
4 2.3系统整体设计方案流程图
开始
欢迎界面
结束
进入游戏界面
游戏运行
游戏结束 ESC E
ENTER
输入字母并进行相关操作后返回
图2.1 课程实训报告书
5 2.4程序流程图
开始
游戏主功能界面
键盘输入:
是否E
是否Enter
开始游戏
字母随机落下
检查键盘
是否Space
输入字符正确 结束
下落字母消失,hit加1 暂停游戏
Lost加1
Lost等于九
进入游戏结束界面 课程实训报告书
6 3、主要的清单代码
;;;清屏宏定义
clear_screen MACRO op1,op2,op3,op4
MOV AH,06h
MOV AL,00h
MOV BH,07h
MOV CH,op1
MOV CL,op2
MOV DH,op3
MOV DL,op4
INT 10h
MOV AH,02h
MOV BH,00h
MOV DH,00h
MOV DL,00h
INT 10h
ENDM
;;;菜单显示宏定义
menu MACRO op1,op2,op3
MOV AH,02h
MOV BH,00h
MOV DH,op1
MOV DL,op2
INT 10h
MOV AH,09h
LEA DX,op3
INT 21h
ENDM
;;;定义数据段 课程实训报告书
7 data SEGMENT
no DB "2010/6/24$"
ZK DB "Typing Game,Come on$"
meg DB "Press [Enter] key to continue.......$"
meg1 DB "Press [space] key to pause!$"
meg2 DB "Press [ESC] key to return main interface!$"
meg3 DB "Press letter [E] to exit!$"
meg4 DB "Suyu,Sunchuanyan$"
meg5 DB "lost:$"
meg6 DB "GameOver$"
meg7 DB "Hit:$"
meg8 DB "(Because you have lost 9 times)$"
speed DW 6000d ;定义下落的速度
hittimel DB "0$" ;显示击中数的个位
hittimeh DB "0$" ;显示击中数的十位
count DB "0" ;定义未击中的个数
letters DB "QWERTYUIOPASDFGHJKLZXCVBNM"
DB "MNBVCXZLKJHGFDSAPOIUYTREWQ"
DB "LKJHGFDSAMNBVCXZOIUYTREWQP" ;定义下落字符串
letters_bak DB "TREWQGFDSABVCXZYUIOPHJKLNM"
DB "PLMOKNIJHBYGVTFCRDXESZWAQ"
DB "ZXCVMNBLKJHGASDFPOIUYTQWER"
letter_counter DB 0
life_flag DB 78 DUP(0)
position_flag DB 78 DUP(0) ;定义光标位置
present_position DB 1
data ENDS
;;;定义堆栈段
stack SEGMENT para stack 'stack'