当前位置:首页 > 汇编语言实验报告
第2章 系统总体设计
2.1 打字程序包括以下四个子程序:
(1)主界面的显示模块; (2)打字练习模块; (3)设置速度模块; (4)清屏模块。
其中的打字练习模块又分为以下三个子程序: (a)游戏界面模 (b)功能模块
2.2 算法的整体设计思路
此程序涉及到宏和I/O中断的调用,通过对宏的定义和使用以及对I/O中断的使用,实现程序的相应功能。利用宏,实现各个界面的显示,采用中断,实现各个子程序的相互转换。其中最主要的是打字程序:运行程序,打字界面中出现由26个字母组成的乱序行,这时其中会有任一字母落下,在键盘上输入该字母,字母消失,分数值加1,否则字母一直移动到屏幕底端,然后消失,生命值减1。当生命值减为零且未在字母下落到屏幕底端之前输入该下落字母时,打字练习结束,显示结束界面。
2.3 程序的主要特点
本程序最大的特点就是具有较好的人机交互功能。在主界面中,可以选择不同的游戏等级,能够根据自己的实际打字速度,选择相匹配的等级进行打字练习。
第3章 详细设计
3. 1主界面伪代码
系统的主界面主要是显示欢迎语,制作人,时间,速度选择等主界面信息。方便用户了解信息并进行选择操作。用户密码为“111111”。在用户输入正确的密码之后即可进入游戏进入下一选择菜单。
STR1 DB ' Welcome to play chars',0AH,0DH, '$' STR2 DB ' Made by liudaoqing',0AH,0DH, ' $' STR3 DB ' 2018/1/18 ',0AH,0DH, ' $'
STR4 DB ' Please choose speeding',0AH,0DH, ' $'
STR5 DB ' Please press Enter to cintinue... ',0AH,0DH, ' $' STRA DB ' <------Please choose----->',0AH,0DH, '$' STRB DB 'score: ', 'i',0AH,0DH, '$' STRC DB 'You choose: ',0AH,0DH, '$'
STRD DB
'hqfuvodepfdjygnhtrwgaerjrklubgsnyrsbntrsbngtrdjykuahtrgregfytjgfjytjktru', '$'
STRE DB ' RIGHT: ', '$'
MES5 DB \
DB \DB 6 DUP(?)
PASSWORD PASSWORD1
3. 2等级界面伪代码
在主界面中选择2,进入等级界面的设置,其中有3个等级,代表不同的难易程度。用户可选则其中的任意一个级别,按Enter键表示确定并返回主界面,若用户输入的错误的等级,则一直等待,直到输入了正确的等级。
以下是等级界面的伪代码:
STR7 DB ' speed 1',0AH,0DH, ' $' STR8 DB ' speed 2',0AH,0DH, '$' STR9 DB ' speed 3',0AH,0DH, '$'
STR0 DB ' Select the number among 1-3',0AH,0DH, '$'
3.3游戏界面伪代码
此伪代码显示的是进入打字界面的提示信息: ST1 DB ' RIGHT: Pause',0AH,0DH, '$' ST2 DB ' E : Quit',0AH,0DH, '$' ST8 DB ' Esc: Back',0AH,0DH, '$' ST3 DB ' Function Meun',0AH,0DH, '$' ST4 DB ' please input... ',0AH,0DH, '$' ST5 DB ' SPACE: Continue',0AH,0DH, '$' ST6 DB ' Thank You ! ',0AH,0DH, '$' ST10 DB ' ',0AH,0DH, '$'
ST9 DB ' VREY GOOD ! ',0AH,0DH, '$'
3. 4清屏子程序设计
BIOS功能调用中的INT 10H功能6能使屏幕内容上卷指定的行,这个功能需要设置4个参数,分别代表清屏区域的左上角的坐标和右下角的坐标。如果屏幕的其实行列不为(0,0)结束的行列不为(24,79),则屏幕上只有指定的一部分具有上卷的功能,这个屏幕伤的部分区域叫做窗口(window)像这样的窗口可以在屏幕上设置多个,这些窗口都可以独立使用。如果上卷超过指定窗口的顶部,这些行的内容就消失,出现在窗口底部的新行被填为空格,其属性用BH寄存器决定。
如果AL=0,则实现完成的工作是清楚屏幕的功能,它将按AL中的BH字符使指定的窗口为空白。
以下是清除全屏幕的子程序: CLEAR PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,6
MOV AL,0 ;blank screen
MOV BH,7
MOV CH,0 ;左上角行号 MOV CL,0 ;左上角列号 MOV DH,24 ;右下角行号 MOV DL,79 ;右下角列号 INT 10H ;屏幕初始化或上卷 MOV DX,0 ; MOV AH,2
INT 10H ; DIS5 25D,10100100B ;置背景色 DIS5 25D,11110100B ;红
DIS3 RET
CLEAR ENDP
3.5密码程序设计
DIS1 MES5,5,15 LEA BX,PASSWORD1
MOV CX,6
INPUT: MOV AH,07H INT 21H MOV [BX],AL INC BX MOV AH,02H
MOV DL,'*' INT 21H
LOOP INPUT
CONTIUN: MOV AH,07H
INT 21H
行列号都为0 置光标位置 背景 蓝 前景红 置背景色 背景白色前景
共分享92篇相关文档