您好,欢迎访问三七文档
汇编语言程序设计报告1课程设计2010~2011学年第二学期设计题目打字练习程序的设计院(系)计算机科学与信息工程专业计算机科学与技术班级09104301学号27学生姓名李迅设计时间2011年6月20日——2011年6月24日指导教师宓双提交日期2011年6月23日汇编语言程序设计报告2上海应用技术学院课程设计任务书课程名称汇编语言课程设计课程代码B704207设计题目打字练习程序题目序号设计时间2011年6月20日——2011年6月24日系(院)计算机科学与信息工程专业计算机科学与技术班级09104301一、课程设计任务(条件)、具体技术参数(指标)本课程设计是《80X86汇编语言程序设计》课程的后继教学环节,通过对一个较大型的、综合性的应用程序进行阅读、修改、添加功能等工作,使学生对汇编语言程序设计有更进一步的认识,提高阅读理解复杂程序的能力和程序设计能力。根据所给的“typetest.asm”应用程序框架,在此基础上修改和添加功能。基本任务:认真阅读“typetest.asm”源程序,理解程序每一条指令在程序中的作用。绘制程序流程图(简略总图,主要模块详细流程图)。设置输入界面,用户输入密码后才能进入主菜单;修改主菜单,在主菜单上显示当天日期;修改主菜单,增加可供用户选择难度级别的选项。为用户打分,正确输入字母使用时间越少,得分越高。修改程序,在屏幕右上角显示用户得分、已输入字母数、正确数。将程序中的“置光标位置”程序段落用宏调用完成,添加“置光标位置”宏定义。扩展任务:设置限定时间,到达该时间,用户尚未得到要求的分数时,游戏停止。到达限定时间,用户得分达到预设的值时,自动提高难度等级,屏幕变色。修改程序,底行的笑脸字母消失后,不再在该列下落字母(提示:设置数组记录笑脸字母的存在与否)。笑脸字母全部消失后,游戏停止,显示告别画面,显示用户成绩。其他任务:设置限定出错次数,到达限定出错次数,游戏停止。汇编语言程序设计报告3二、对课程设计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求)(1)分析原“typetest.asm”程序结构:画出主程序粗略的流程图和三至五个主要模块的详细流程图,并用文字说明他们的功能(与对应流程图放在一起);(2)对你已经实现的功能(修改的、新编写的)做详细的说明,并附上流程图及程序清单(修改/增加的指令请使用大写字母,以示区别);(3)自己对该“打字练习程序”的进一步设想;(4)对于有设想但最终未实现的功能的大致编程思路的阐述;(5)论述在设计过程中遇到的并且对你具有启发性的问题。(6)严禁抄袭,发现雷同,双方扣分。三、课程设计工作进度计划:周一:教师布置任务,讲解本课设模块。学生细读原始源程序,画出主程序粗略的流程图和各个模块的详细流程图,开始基本任务。周二~周三:设计程序及调试程序。同时着手写报告。周四:完成设计和课程设计报告。周五:接受教师考评并提交课程设计报告。四、主要参考资料[1]杨文显,宓双,胡建人.新编汇编语言程序设计,清华大学出版社,2005[2]朱玉龙,任文览等.汇编语言程序设计,清华大学出版社,2003[3][美]KipR.Irvine.电子工业出版社,2004指导教师(签名):宓双教研室主任(签名):2011年6月19日2010年6月19日汇编语言程序设计报告4目录1概述:..............................................................................................................................................11.1基本功能:.............................................................................................................................21.2拓展功能.................................................................................................................................31.3其他功能.................................................................................................................................32详细设计说明..................................................................................................................................32.1原“TYPETEST.ASM”程序结构..............................................................................................42.2已经实现的功能(修改的、新编写的)程序结构..............................................................53对该“打字练习程序”的进一步设想........................................................................................103.1......................................................................................................................................................103.2......................................................................................................................................................113.3......................................................................................................................................................114课程设计总结................................................................................................................................115软件使用说明................................................................................................................................126附录(参考文献,原代码:)......................................................................................................12参考文献:........................................................................................................................................12原代码................................................................................................................................................12汇编语言程序设计报告11概述:编写一个程序,执行程序后,出现主界面,按回车键出现由26个字母组成的乱序行,这时其中任一字母落下,在键盘上敲入该字母,如果输入正确,字母消失;按回车键进入打字练习;按ESC键返回主界面;按空格键暂停;按‘E’退出。因此程序要包含以下几个模块:菜单显示模块、字母显示模块、字母下落模块、暂停处理模块、退出返回模块等。汇编语言程序设计报告21.1基本功能:2认真阅读“typetest.asm”源程序,理解程序每一条指令在程序中的作用。绘制程序流程图(简略总图,各模块详细流程图),给程序中的关键语句(后跟分号)作注释。3设置输入界面,用户输入密码后才能进入主菜单;4修改主菜单,在主菜单上显示当天日期;5修改主菜单,增加可供用户选择难度级别的选项。6为用户打分,正确输入字母使用时间越少,得分越高。7修改程序,在屏幕右上角显示用户得分、已输入字母数、正确数。汇编语言程序设计报告3将程序中的“置光标位置”程序段落用宏调用完成,添加“置光标位置”宏定义7.1拓展功能8设置限定时间,到达该时间,用户尚未得到要求的分数时,游戏停止。9到达限定时间,用户得分达到预设的值时,自动提高难度等级,屏幕变色。10修改程序,底行的笑脸字母消失后,不再在该列下落字母(提示:设置数组记录笑脸字母的存在与否)。笑脸字母全部消失后,游戏停止,显示告别画面,显示用户成绩。10.1其他功能设置限定出错次数,到达该出错次数,游戏停止11详细设计说明首先先定义一个清屏幕的宏。调用这个宏,就清除Dos界面上的所有内容,汇编语言程序设计报告4专门显示我们所需要的菜单。接着定义我们的数据段代码。在数据段中,有我们菜单中所需要显示的提示信息,还有要显示在界面上方的字母乱序,以及给显示字母乱序所留出的数据空间。接下来就是定义堆栈段代码,为各段留下空间。再下来就是最重要的代码段,因为所有的功能都是在代码段中实现的。代码段中先实现显示主菜单、按Enter键开始程序和按E退出这几项简单的功能。接着实现显示字母乱序的功能,主要思想是将字母乱序放到之前定义的寄存器中。然后实现接受键盘所输入的内容的功能。如果输入的是Esc,则返回主菜单;如果输入的是Space,程序就暂停;如果是正确的字母,改字母就消失。消失的思想就是在当前字母位置输入空格,然后光标放到下一个下落的字母的位置。11.1原“typetest.asm”程序结构打字练习程序的主要流程如图所示。程序开始显示菜单键盘输入E退出Enter程序开始字母显示模块字母下落模块暂停模块退出处理模块汇编语言程序设计报告511.2已经实现的功能(修改的、新编写的)程序结构设置输入界面,用户输入密码后才能进入主菜单;iddb1,1,2,3,5,8infdb?stringdb0ah,0dh,Pleaseenterthepassword(******):$string1db0ah,0dh,Thepasswordiswrong,pleaseenterthepasswordagain:$leadx,stringmovah,09hint21htwo:movcx,6leasi,idagain:movah,01hint21handal,0fhcmpal,[si]jnzoneincsiincbxloopagainjmpexit1one:leadx,string1movah,09hint21hjmptwo汇编语言程序设计报告6修改主菜单,在主菜单上显示当天
本文标题:汇编打字练习
链接地址:https://www.777doc.com/doc-3706807 .html