打字游戏汇编报告

  • 格式: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'