版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、i课 程 设计2013 2014 学年第二学期学年第二学期设计题目设计题目 汇编语言程序设计课程设计汇编语言程序设计课程设计- -打字练习程序的设计打字练习程序的设计 院(系)院(系) 计算机科学与信息工程学院计算机科学与信息工程学院 专专 业业 网络工程网络工程 提交日期提交日期 20142014 年年 7 7 月月 5 5 日日 ii上海应用技术学院课程设计任务书上海应用技术学院课程设计任务书课程名称汇编语言程序设计课程设计课程代码B704207设计题目汇编语言程序设计课程设计-打字练习程序的设计题目序号设计时间2014 年 6 月 30 日 2014 年 7 月 5 日系(院)计算机科学
2、与信息工程专业网络工程班级12104332一、课程设计任务(条件) 、具体技术参数(指标)本课程设计是汇编语言程序设计课程的后继教学环节, 通过对一个较大型的、综合性的应用程序进行阅读、修改、添加功能等工作, 使学生对汇编语言程序设计有更进一步的认识, 提高阅读理解复杂程序的能力和程序设计能力。根据所给的“typetest.asm”应用程序框架, 在此基础上修改和添加功能。基本任务1认真阅读“typetest.asm”源程序, 理解程序每一条指令在程序中的作用。绘制程序流程图(简略总图,各模块详细流程图) ,给程序中的关键语句(后跟分号)作注释;2设置输入界面,用户输入密码后才能进入主菜单;3
3、修改主菜单,在主菜单上显示当天日期;4修改主菜单,增加可供用户选择难度级别的选项;5为用户打分,正确输入字母使用时间越少,得分越高;6修改程序,在屏幕右上角显示用户得分、已输入字母数、正确数;7将程序中的“置光标位置”程序段落用宏调用完成,添加“置光标位置”宏定义。扩展任务1设置限定时间,到达该时间,用户尚未得到要求的分数时,游戏停止;2到达限定时间,用户得分达到预设的值时, 自动提高难度等级,屏幕变色;3修改程序,底行的笑脸字母消失后,不再在该列下落字母(提示:设置数组记录笑脸字母的存在与否) 。笑脸字母全部消失后,游戏停止,显示告别画面,显示用户成绩。其他任务自行设计新的功能。二、对课程设
4、计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求)1分析原“typetest.asm”程序结构(见附件) ,画出主程序粗略的流程图和各个模块的详细流程图,每个功能模块用文字说明他们的功能(与对应流程图放在一起) ;2对已经实现的功能(修改的、新编写的)做详细的说明, 并附上流程图及程序清单(修改/增加的指令请使用大写字母,以示区别) ;3对该“打字练习程序”的进一步设想;4对于有设想但最终未实现的功能的大致编程思路的阐述;5论述在设计过程中遇到的并且对你具有启发性的问题三、课程设计工作进度计划:周一:布置任务,介绍程序功能和基本模块。学生仔细阅读原始源程序,在重要行添加注解。周二
5、:画出主程序粗略的流程图和各个模块的详细流程图,对课程设计的基本任务进行设计,并开始编程。周三周四:设计程序及调试程序。同时着手撰写课程设计报告。周五:完成设计,提交开发完成的程序和课程设计报告,接受教师考评。四、主要参考资料1 杨文显,宓双,胡建人新编汇编语言程序设计清华大学出版社,20102 朱玉龙,任文览等汇编语言程序设计清华大学出版社,20033 美Kip R.Irvine. 汇编语言程序设计电子工业出版社,2004指导教师(签名): 教研室主任(签名):杨晶鑫 2014 年 6 月 25 日 2014 年 6 月 25 日iii目录目录上海应用技术学院课程设计任务书上海应用技术学院课
6、程设计任务书 .i 错误!未定义书签。目录目录.iii1概述概述.11.1 基本功能.11.2 拓展功能.11.3 代码的格式.12详细设计说明详细设计说明.42.1 原“TYPETEST.ASM”程序结构.42.2 已经实现的功能(修改的、新编写的)程序结构.52.3 各模块功能.72.3.1 用户验证模块:.72.3.2 功能选择模块:.92.3.3 游戏选择模式:.122.3.4 游戏模块:.142.3.5 游戏结束模式:.212.3.6 退回主菜单:.223课程设计总结课程设计总结.243.1 设计体会.243.2 系统改进.244软件使用说明软件使用说明.254.1 用户密码:.25
7、4.2 运行环境: .254.3 使用方法.25参考文献参考文献.33附录附录.34源代码:.34汇编语言程序设计课程设计-打字练习程序的设计1上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告1 概述本次课程设计主要是设计一个打字游戏,通过对一个较大型的、综合性的应用程序进行阅读、修改、添加功能等工作, 加深对汇编语言程序设计的认识, 提高阅读理解复杂程序的能力和程序设计能力。本程序运行后,出现主界面,按回车键出现由 26 个字母组成的乱序行,这时其中任一字母落下,在键盘上敲入该字母,如果输入正确,字母消失;按回车键进入打字练习;按 ESC 键返回主界面;按空格键暂停;
8、按E退出;程序包括自动计分功能,根据打字的快慢分别获得不同的分数,根据打字的难度,分别变化不同的颜色,并且设置了用户名和密码,使软件运行起来更加安全。1.1基本功能程序要包含以下几个模块:菜单显示模块、字母显示模块、字母下落模块、暂停处理模块、退出返回模块等。其基本功能如下:1设置输入界面,用户输入密码后才能进入主菜单;2在主菜单上显示当天日期;3增加可供用户选择难度级别的选项;4为用户打分,正确输入字母使用时间越少,得分越高;5屏幕右上角显示用户得分、已输入字母数、正确数;1.2拓展功能为了是用户界面更加人性化和友好化,软件中设置了三种游戏模式,并且每一步操作都有提示,在基本功能之上,又添加
9、了相应的扩展功能满足用户需要。1根据难度不同,设置不同的界面颜色你,等级越高,字母下降速度越快;2.设置限定字母个数,到达该数目时,游戏停止;3.修改程序,底行的笑脸字母消失后,不再在该列下落字母笑脸字母全部消失后,游戏停止,显示告别画面,显示用户成绩。1.3代码的格式本程序中为了简化代码,减少不必要的代码重复,程序中多次用到了宏调用:为了代码的整洁,本程序中所有代码均有缩进处理,标记和代码段都有缩进,是程序看起来更加清楚明了。宏定义一:setcusor macro page1,row,column ;设置光标位置宏定汇编语言程序设计课程设计-打字练习程序的设计2上海应用技术学院 计算机科学与
10、信息工程学院 汇编语言程序设计课程设计报告 pushaxpushbxpushdxmovah,02hmovdh,rowmovdl,columnmovbh,page1int 10hpop dxpop bxpop axendm宏定义二:Init_boardermacrorow, col, char, dhdl, count; 写屏Localllmovcx, count movdh, rowmovdl, colll:movah, 02hmovbh, 00hint10hpushcxmovah, 0ahmoval, char movbh, 00hmovcx, 01hint10hpopcxincdhdllo
11、opll endm宏定义三:menumacrorow, col, text; 菜单显示宏定义 汇编语言程序设计课程设计-打字练习程序的设计3上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告movah, 02hmovbh, 00h ; 页号movdh, rowmovdl, col ;送参数int10hmovah, 09hleadx, text ;输出内容int21hendm汇编语言程序设计课程设计-打字练习程序的设计4上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告2 详细设计说明为了使设计思路更加清晰,故进行详细设计说明介绍。2.1原“typet
12、est.asm”程序结构程序开始显示菜单键盘输入E退出Enter程序开始字母显示模块字母下落模块暂停模块退出处理模块结束 图 2.1-1汇编语言程序设计课程设计-打字练习程序的设计5上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告2.2已经实现的功能(修改的、新编写的)程序结构汇编语言程序设计课程设计-打字练习程序的设计6上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告开始判断是否正确选择项目选择游戏模式提示输入密码进入主菜单显示界面选择游戏模式选择游戏模式选择游戏模式开始游戏游戏结束,显示成绩输入任意键否是汇编语言程序设计课程设计-打字练习程序
13、的设计7上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告2.3各模块功能2.3.1用户验证模块:(1) 功能代码:MOVROW,08D ;设置光标位置密码PS2: MOVAH,02HMOVDH,ROWMOVDL,20DMOVBH,00DINT10HINCROWLEA SI,PASSWD1LEA DI,PASSWDMOVCX,3LEA DX,STRING ;输入密码MOV AH,09HINT 21HPS3:MOV AH,07HINT 21HMOV SI,ALINCSIMOV AH,02MOV DL,*INT 21HLOOPPS3MOVCX,3LEA SI,PASSWD1N
14、EXT: MOVAL,SICMP AL,DIJNZPS1INC DIINC SILOOP NEXTJMP PSPS1:MOVAH,02HMOVDH,ROWMOVDL,20DMOVBH,00DINT10HLEA DX,STRING1汇编语言程序设计课程设计-打字练习程序的设计8上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告MOV AH,09HINT 21HMOVAH,07INT21HINCROWJMP PS2(2) 模块流程图: 图 2.3.1-1判断是否正确提示输入密码进入主菜单显示界面是否汇编语言程序设计课程设计-打字练习程序的设计9上海应用技术学院 计算机科学与信
15、息工程学院 汇编语言程序设计课程设计报告(3) 运行截图: 程序运行后进入用户验证界面,提示用户输入密码; 图 2.3-1若密码输入错误,提示重新输入;图 2.3-22.3.2功能选择模块:汇编语言程序设计课程设计-打字练习程序的设计10上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告(1) 功能代码:PS:CLEAR_SCREEN01D, 01D, 23D, 78D,00000111B; 清屏MENU05D, 15D, ZK; 显示菜单MOVAH,2AHINT 21H;取系统日期PUSH DXMOV AX,CXMOV DX,0FFFFHCALL WRITEDECMOV
16、 AH,02HMOV DL,.INT 21HPOP DXPUSH DXMOV AL,DHMOV AH,00HMOV DX,0FFFFHCALL WRITEDECMOV AH,02HMOV DL,.INT 21HPOP DXMOV AL,DLMOV AH,0MOV DX,0FFFFHCALL WRITEDEC;显示系统日期MENU09D, 15D, MES0MENU11D, 18D, MES1MENU13D, 18D, MES2MENU15D, 18D, MES3MENU17D, 15D, MES4MENU20D, 15D, MES5MOVAH, 02H; 设置光标位置MOVBH, 00HMOV
17、DH, 22DMOVDL, 33DINT10HKEYIN:MOVAH, 07H ; 从键盘输入命令字符INT21H汇编语言程序设计课程设计-打字练习程序的设计11上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告CMPAL, 0DH; 和回车键作比较JESET; 回车键,开始游戏CMPAL, E; 和“E”作比较JEEXIT1; 是“E”退出游戏nEXT1:CMPAL,X; “X”JNENEXT2JMPSETNEXT2:JMPKEYINEXIT1:JMP EXIT(2) 运行截图: 进入主菜单后,可以看到系统提示时间,看到游戏说明,可以选择按“X”键进入游戏模式选择,按“
18、E”退回 dos 界面。图 2.3-3汇编语言程序设计课程设计-打字练习程序的设计12上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告图 2.3-42.3.3游戏选择模式:(1) 功能代码:SET:CLEAR_SCREEN01D, 01D, 23D, 78D,00000111B ; 清屏SETCUSOR00H,10D,20DMOV AH,09HLEA DX,MES6INT 21HMOV AH,07HINT 21HCMP AL,1JE EASYCMP AL,2JE NORMAL CMP AL,3JE HARD JMP SETEASY:CLEAR_SCREEN01D, 01
19、D, 23D, 78D ,00101111BMOV AX,9999HJMP GONORMAL :CLEAR_SCREEN01D, 01D, 23D, 78D ,00111111BMOV AX,5000HJMP GO汇编语言程序设计课程设计-打字练习程序的设计13上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告HARD: CLEAR_SCREEN01D, 01D, 23D, 78D ,01011111BMOV AX,3000HGO:MOV SPEED,AXJMP BEGIN(2) 运行截图: 选择按“X”键进入游戏模式选择,选择游戏等级,分别输入:1、2、3图 2.3-5
20、根据选择的等级不同,进入不同的游戏模式,同时改变界面模式:汇编语言程序设计课程设计-打字练习程序的设计14上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告图 2.3-6图 2.3-7汇编语言程序设计课程设计-打字练习程序的设计15上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告图 2.3-82.3.4游戏模块:(1) 功能代码:BEGIN:SETCUSOR00H,1D,2D;设置光标位置为(0,2) MOV AH,09HMOV CHARACTERS,0MOV SCORE,0MOV CORRECT,0LEA DX,MES7INT 21HSETCUS
21、OR00H,1D,32D;设置光标位置为(0,32)MOV AH,09HLEA DX,MES8INT 21HSETCUSOR00H,1D,62D;设置光标位置为(0,62)MOV AH,09HLEA DX,MES9INT 21HINIT_BOARDER23D, 01d, 01h, dl, 78d; 写屏写笑脸符号汇编语言程序设计课程设计-打字练习程序的设计16上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告SETCUSOR00H,2D,1DMOVCX, 78 LEASI, LETTERSNEXTLETTER:MOVAH, 02H; 显示字母MOVDL, SIINT21H
22、INCSILOOPNEXTLETTERSTART_GAME:SETCUSOR00H,1D,10DINCCHARACTERS MOVAX,CHARACTERS ;统计字母个数MOVDX,-1CALLWRITEINT CMP CHARACTERS,10 JE OVERJNES3OVER:CLEAR_SCREEN01D, 01D, 23D, 78D,00000111B ; 清屏SETCUSOR00H,10D,20DMOV AH,09HLEA DX,MES10INT 21HSETCUSOR00H,12D,20DMOV AH,09HLEA DX,MES11INT 21HMOV AX,SCOREMOV D
23、X,0FFFFHCALL WRITEDEC;显示成绩SETCUSOR00D,14D,20DMOV AH,09HLEA DX,MES12INT 21HMOV AH,07HINT 21HJMP PS;-超过 10 退回主菜单S3:MOVAH, 2CH汇编语言程序设计课程设计-打字练习程序的设计17上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告INT21H;读取系统时间 DL 带回=百分之一秒INCDL;CMPDL, 78JNASG1SUBDL, 78SG1:MOVPRESENT_POSITION, DLLEADI, LETTERSADDDI, WORD PTR PRESE
24、NT_POSITION;DECDI;MOVDL, PRESENT_POSITION;MOVAH, 02HMOVBH, 00HMOVDH, 02HINT10H;MOVCX, 20D;NEXTROW:PUSHCXMOVCX, SPEED;WAIT_FOR_KEY: ; 延迟PUSHCXMOVCX,1000DELAY:LOOPDELAYPUSHDXMOVAH, 06H; 从键盘输入字符MOVDL, 0FFHINT21HPOPDXJZPASSCMPAL, 1BH; 如果键入 ESC,则返回主菜单JETO_STARTCMPAL, ; 如果键入 SPACE,则游戏暂停JNEPASS0PAUSE:PUSHD
25、X; 暂停处理MOVAH, 06HMOVDL, 0FFHINT21HPOPDX汇编语言程序设计课程设计-打字练习程序的设计18上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告CMPAL, ;JNEPAUSE;JMPPASSTO_START:JMPSTARTPASS0:CMPAL,DI; 输入字母正确!则字母消失JEDISAPPEARPASS:POPCX;LOOPWAIT_FOR_KEY;DOWN:MOVAH, 0AH; 在当前光标位置写空格MOVAL, MOVBH, 00HMOVCX, 01HINT10H;INCDH;MOVAH, 02H; 改变光标位置MOVBH, 0
26、0HINT10HMOVAH, 0AH; 在当前光标位置写字母MOVAL, DIMOVBH, 00HMOVCX, 01HINT10H;POPCXLOOPNEXTROW; 下一行LETTER_OVER:;MOVAH, 0AHMOVAL, MOVBH, 00HMOVCX, 01HINT10H;INCDH;MOVAH, 02HMOVBH, 00HINT10H;汇编语言程序设计课程设计-打字练习程序的设计19上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告MOVAH, 0AHMOVAL, ;MOVBH, 00HMOVCX, 01HINT10HJMPNEXT_LETTERDISAP
27、PEAR:; 击中字母后输出空格POPCXPOPCXMOVAH, 0AH;MOVAL, ;MOVBH, 00HMOVCX, 01HINT10HSETCUSOR00H,1D,70DPUSHDXINCCORRECT MOVAX,CORRECT ;统计正确个数MOVDX,-1CALLWRITEINTPOPDXSETCUSOR00H,1D,40D;统计成绩CMP DH,CPJLES2JMPS1 ;-不比较 S2:INCSCOREINCSCOREJMPS4S1:INCSCORES4:MOVAX,SCORE ;统计正确个数MOVDX,-1CALLWRITEINT汇编语言程序设计课程设计-打字练习程序的设计
28、20上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告NEXT_LETTER:MOV AH, 02H;MOVBH, 00H;MOVDH, 02HMOVDL, PRESENT_POSITION;INT10H;MOVAL, DI ; 出现下一个新字母的算法ADDAL, 7;CMPAL, 7AHJNANEXT_LETTER1SUBAL, 26NEXT_LETTER1:MOVAH, 0AHMOVBH, 00HMOVCX, 01HINT10H;MOVDI, ALJMPSTART_GAME屏幕显示字母个数,正确的个数,以及成绩,26 个字母随机下落,通过变量,speed 来控制速度,
29、当字母输入正确是,字母会消失,并在其他位置上随机落下另外一个字母,当字母没被击中时,字母下落,前一行消失,如果一直没有被击中,字母降落在最后一行,击中笑脸,笑脸将会消失,下一个随机字母接着落下。期间,输入空格,游戏将暂停,当字母落下 10 个后,游戏结束,显示成绩,进入游戏结束模式。(2) 运行结果:在字母没有落到最后一行时,用户需输入相应的字母,输入正确,字母消失,下一个字母落下,如果没有输入,字母将一直下降,直到击中笑脸为止,笑脸消失;成绩计算,当输入正确时,正确的个数会加一,同时根据字母消失的为止,系统自动判断加一分还是两分,越靠近屏幕上方,加分越多。模式一:简单模式汇编语言程序设计课程
30、设计-打字练习程序的设计21上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告图 2.3-9 一般模式:图 2.3-10困难模式:汇编语言程序设计课程设计-打字练习程序的设计22上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告图 2.3-112.3.5游戏结束模式:(1) 功能模块:MOVAX,CORRECT ;统计正确个数MOVDX,-1CALLWRITEINTPOPDXSETCUSOR00H,1D,40D;统计成绩CMP DH,CPJLES2JMPS1S2:INCSCOREINCSCOREJMPS4S1:INCSCORES4:MOVAX,SCO
31、RE ;统计正确个数MOVDX,-1CALLWRITEINT显示成绩:汇编语言程序设计课程设计-打字练习程序的设计23上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告SETCUSOR00H,12D,20DMOV AH,09HLEA DX,MES11INT 21HMOV AX,SCOREMOV DX,0FFFFHCALL WRITEDEC;显示成绩SETCUSOR00D,14D,20DMOV AH,09HLEA DX,MES12INT 21HMOV AH,07HINT 21HJMP PS;-超过 10 退回主菜单图 2.3-122.3.6退回主菜单:程序运行至此,输入任意
32、键退回主菜单:汇编语言程序设计课程设计-打字练习程序的设计24上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告图 2.3-13按“E”退回 dos 界面,游戏结束; 图 2.3-14汇编语言程序设计课程设计-打字练习程序的设计25上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告3 课程设计总结3.1设计体会课设一开始,看到老师发下来的任务书,感觉困难好大。但是经过老师对源代码的讲解之后,加上自己的思考,感觉稍微有有了一些思路,但还是不够细清晰,因为汇编语言不同于高级语言,对于高级语言,我们心中可以有一个非常清晰的思路,在实现功能的时候非常得心应手
33、。但汇编语言不同,它是面向机器的语言。用它编写程序时的思路应该按照机器执行程序的思路来编写,所以这个挑战对我来说非常大。所以我就在编写程序之前,通过全局把握,画总的流程图,然后根据各模块的功能,画分快块的流程图,通过这样,是我对整个程序有了更加全面深刻的了解。 。在编写的时候,我也是按照别人的思路,一步一步进行。很多地方看似简单,但是等到自己亲自实践的时候就编的很复杂。汇编语言的前后联系非常紧密,如果要改一点东西的话整个程序的很多地方都要重新做,可以说是牵一发而动全身。所以在编写的时候要很仔细,要记住前面已经实现了那些功能,还有那些功能要实现,这些必须记好,否则程序会出错,同样在编程过程中,很
34、多错误都是经老师指导才解决的,感觉自己有时候考虑还是不够充分。通过这次课程设计,我了解了汇编语言编写程序的步骤:先确定程序要实现的功能,接着定义需要的寄存器、存储器,如果需要的话还要画出流程图。然后逐个模块实现其功能。如果将模块分好了,再去实现它的功能就不是那么复杂了。此次的课程设计,提高了我阅读和分析程序的能力。因为刚一拿到目标代码时,有太多的不明白,必须一行一行地分析其目的和功能。而时间又比较紧迫,所以我在比较短的时间里分析出了代码的道理。在这个过程中我的分析与模仿能力得到了提高。最后要感谢宓老师这一个星期来的辛苦指导,帮我解除了好多难点,让自己对汇编语言有了进一步的了解。3.2系统改进由
35、于时间关系,本系统还有诸多不完善,还有许多可以改进的地方。首先我做的界面不够华丽,显得很单调。其次,如果能随着得分达到一定阶段,难点自动增加就更好了。而且计分系统没计时功能,如果结合计时功能,当时间达到一定阶段时,自动结束游戏就好了。汇编语言程序设计课程设计-打字练习程序的设计26上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告4 软件使用说明4.1用户密码:运行程序后用户登录密码为:7134.2运行环境:本游戏在 win32 系统运行;4.3使用方法(1) 程序运行后进入用户验证界面,提示用户输入密码; 图 4.3-1若密码输入错误,提示重新输入;汇编语言程序设计课程
36、设计-打字练习程序的设计27上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告图 4.3-2(2) 运行截图: 进入主菜单后,可以看到系统提示时间,看到游戏说明,可以选择按“X”键进入游戏模式选择,按“E”退回 dos 界面。图 4.3-3汇编语言程序设计课程设计-打字练习程序的设计28上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告图 4.3-4(3) 选择按“X”键进入游戏模式选择,选择游戏等级,分别输入:1、2、3图 4.3-5根据选择的等级不同,进入不同的游戏模式,同时改变界面模式:汇编语言程序设计课程设计-打字练习程序的设计29上海应用技
37、术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告图 4.3-6图 4.3-7汇编语言程序设计课程设计-打字练习程序的设计30上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告图 4.3-8(4) 在字母没有落到最后一行时,用户需输入相应的字母,输入正确,字母消失,下一个字母落下,如果没有输入,字母将一直下降,直到击中笑脸为止,笑脸消失;成绩计算,当输入正确时,正确的个数会加一,同时根据字母消失的为止,系统自动判断加一分还是两分,越靠近屏幕上方,加分越多。模式一:简单模式 图 4.3-9汇编语言程序设计课程设计-打字练习程序的设计31上海应用技术学院 计算机科
38、学与信息工程学院 汇编语言程序设计课程设计报告一般模式:图 4.3-10困难模式:图 4.3-11汇编语言程序设计课程设计-打字练习程序的设计32上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告图 4.3-12(5) 退回主菜单:程序运行至此,输入任意键退回主菜单:图 4.3-13按“E”退回 dos 界面,游戏结束;汇编语言程序设计课程设计-打字练习程序的设计33上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告 图 4.3-14汇编语言程序设计课程设计-打字练习程序的设计34上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报
39、告参考文献1汇编语言李珍香 刘红梅 赵润林主编 中国水利水电出版社2汇编语言程序设计从 DOS 到 Windows 张雪兰等主编 清华大学出版社3 IBM-PC 汇编语言程序设计第二版 沈美明 温冬婵主编 清华大学出版社4IBM-PC 汇编语言程序设计实验教程第二版 沈美明 温冬婵主编 清华大学出版社汇编语言程序设计课程设计-打字练习程序的设计35上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告附录附录说明文字。程序清单等。没有请删去此部分内容。源代码:; Assembly program for test your type skills 1210400713+ JX
40、Z; Writed by in 06/24/2003; Modified by Mi shuang in 06/06/2005; -include ylib.hsetcusor macro page1,row,column ;设置光标位置宏定pushaxpushbxpushdxmovah,02hmovdh,rowmovdl,columnmovbh,page1int 10hpop dxpop bxpop axendmInit_boarder macrorow, col, char, dhdl, count; 写屏Localllmovcx, count movdh, rowmovdl, colll
41、:movah, 02hmovbh, 00hint10hpushcxmovah, 0ahmoval, char movbh, 00hmovcx, 01hint10hpopcx汇编语言程序设计课程设计-打字练习程序的设计36上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告incdhdlloopll endm; -clear_screen macrotop, left, bottom, right,COLOR; 清屏宏定义 00d, 00d, 24d, 79dmovah, 06h moval, 00hmovbh, COLOR ;屏幕初始化?/movch, topmovcl,
42、leftmovdh, bottommovdl, right ;送参int10hmovah, 02hmovbh, 00hmovdh, 00hmovdl, 00h ;置零int10hendm; -menumacrorow, col, text; 菜单显示宏定义 movah, 02hmovbh, 00h ; 页号movdh, rowmovdl, col ;送参数int10hmovah, 09hleadx, text ;输出内容int21hendm; =DatasegmentZKdb WELCOME TO PLAY$ datedb Date:2014/6/30$mes0db Press Enter k
43、ey to continue.$mes1db When a letter is dropping,please hit it!$mes2db Press space key to pause!$mes3db Press ESC key to return main interface!$mes4db Press letter E to exit!$mes5db Press X to choose level$mes6db 1.easy level; 2.normal level; 3.hard level;$mes7db characters: $汇编语言程序设计课程设计-打字练习程序的设计3
44、7上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告mes8db score: $mes9db correct: $mes10db Game Over!$mes11db Your score is:$mes12db Press any key to return menu!$passwddb 713passwd1db 3 dup(?)string db Please enter the password:$string1 db please enter the password again:$charactersdw ?scoredw ?correctdw ?Speedd
45、w ?Lettersdb jwmilzoeucgpravskntxhdyqfbdb iytpkwnxlsvxrmofzhgaebudjqdb nwimzoexrphysfqtvdcgljukdaPresent_position db 1db 0;rowdb ?cpdb 10Dataends; =codesegmentmainprocfarassumecs: code, ds: datastart:movax, datamovds, axmoves, ax ;?=movcx, 1000hmovah, 01hint10hclear_screen00d, 00d, 24d, 79d,00000111
46、b;Init_boarder00d, 00d, 0ah, dl, 80d ;写边框(第一行)Init_boarder24d, 00d, 0ah, dl, 80d ;(写最后一行)Init_boarder00d, 00d, 0ah, dh, 25dInit_boarder00d, 79d, 0ah, dh, 25d;movrow,08d ;设置密码ps2: movah,02hmovdh,row汇编语言程序设计课程设计-打字练习程序的设计38上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告movdl,20dmovbh,00dint 10hinc rowlea si,pass
47、wd1lea di,passwdmovcx,3lea dx,string ;输入密码mov ah,09hint 21hps3:mov ah,07hint 21hmov si,alincsimov ah,02mov dl,*int 21hloopps3movcx,3lea si,passwd1next:moval,sicmp al,dijnzps1inc diinc siloop nextjmp psps1:movah,02hmovdh,rowmovdl,20dmovbh,00dint10hlea dx,string1mov ah,09hint 21hmovah,07int21hincrowjm
48、p ps2汇编语言程序设计课程设计-打字练习程序的设计39上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告ps: clear_screen 01d, 01d, 23d, 78d,00000111b; 清屏menu05d, 15d, ZK; 显示菜单movah,2ahINT 21H;取系统日期PUSH DXMOV AX,CXMOV DX,0FFFFHCALL WRITEDECMOV AH,02HMOV DL,.INT 21HPOP DXPUSH DXMOV AL,DHMOV AH,00HMOV DX,0FFFFHCALL WRITEDECMOV AH,02HMOV DL,
49、.INT 21HPOP DXMOV AL,DLMOV AH,0MOV DX,0FFFFHCALL WRITEDEC;显示系统日期menu09d, 15d, mes0menu11d, 18d, mes1menu13d, 18d, mes2menu15d, 18d, mes3menu17d, 15d, mes4menu20d, 15d, mes5movah, 02h; 设置光标位置movbh, 00hmovdh, 22dmovdl, 33dint10hkeyin:movah, 07h ; 从键盘输入命令字符汇编语言程序设计课程设计-打字练习程序的设计40上海应用技术学院 计算机科学与信息工程学院
50、汇编语言程序设计课程设计报告int21hcmpal, 0dh; 和回车键作比较jeset; 回车键,开始游戏cmpal, E; 和“E”作比较jeexit1; 是“E”退出游戏-有问题next1:cmpal,X; “X”jnenext2jmpsetnext2:jmpkeyinexit1:jmp exitSET:CLEAR_SCREEN01D, 01D, 23D, 78D,00000111b ; 清屏setcusor 00H,10D,20DMOV AH,09HLEA DX,mes6INT 21HMOV AH,07HINT 21HCMP AL,1JE easyCMP AL,2JE normal C
51、MP AL,3JE hard JMP SETeasy:CLEAR_SCREEN01d, 01d, 23d, 78d ,00101111BMOV AX,9999HJMP GOnormal :CLEAR_SCREEN01d, 01d, 23d, 78d ,00111111BMOV AX,5000HJMP GOhard: CLEAR_SCREEN01d, 01d, 23d, 78d ,01011111BMOV AX,3000HGO:MOV SPEED,AXJMP beginexit:movax, 4c00hint 21h汇编语言程序设计课程设计-打字练习程序的设计41上海应用技术学院 计算机科学与信
52、息工程学院 汇编语言程序设计课程设计报告begin:setcusor 00H,1D,2D;设置光标位置为(0,2) MOV AH,09HMOV characters,0MOV score,0MOV correct,0LEA DX,mes7INT 21Hsetcusor 00H,1D,32D;设置光标位置为(0,32)MOV AH,09HLEA DX,mes8INT 21Hsetcusor 00H,1D,62D;设置光标位置为(0,62)MOV AH,09HLEA DX,mes9INT 21HInit_boarder 23d, 01d, 01h, dl, 78d; 写屏写笑脸符号setcusor
53、 00H,2D,1Dmovcx, 78 leasi, lettersnextletter:movah, 02h; 显示字母movdl, siint21hincsiloopnextletterstart_game:setcusor 00H,1D,10Dinccharacters movax,characters ;统计字母个数movdx,-1callwriteint cmp characters,10 je overjnes3汇编语言程序设计课程设计-打字练习程序的设计42上海应用技术学院 计算机科学与信息工程学院 汇编语言程序设计课程设计报告over:CLEAR_SCREEN01D, 01D, 23D, 78D,00000111b ; 清屏setcusor 00H,10D,20DMOV AH,09HLEA DX,MES10INT 21Hsetcusor 00H,12D,20DMOV AH,09HLEA DX,MES11INT 21HMOV AX,SCOREMOV DX,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家庭学校考核题与详细答案
- 负压吸引技术考卷题目及答案
- 外周血管介入治疗护理查房
- 大体积混凝土通水冷却施工工艺
- 新闻传播学试题及答案
- 艺术导论论文题目及答案探讨
- 电感式开关考试题目及详细答案
- (2026年)高级养老护理员考试题及答案
- 游泳池专项施工方案
- 2026年乡村医生考试试题及答案
- 2024年种子繁育员政策法规试题及答案
- 创业园区入驻指南
- PDCA品管改善实例-降低微量泵更换血管活性药安全隐患成果汇报书
- 【安全培训】高处作业安全培训课件
- 物 理2024-2025学年人教版初中物理八年级上册各章节知识点讲解
- 2024年海南省海口市小升初数学试卷(含答案)
- 个人简历模板(5套完整版)
- 江苏省苏州市2023-2024学年高一年级上册期中数学试题
- GB/T 42792-2024航空用铝合金管、棒、型材及线材通用技术规范
- 《风电场项目经济评价规范》(NB-T 31085-2016)
- 安全生产标准化管理全套资料
评论
0/150
提交评论