您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 汇编语言打字练习程序实验报告
课程设计说明书题目:打字练习院系:专业班级:学号:学生姓名:指导教师:2010年12月31日安徽理工大学课程设计(论文)任务书计算机科学与工程学院硬件教研室学号学生姓名专业(班级)设计题目题目一:判断闰年题目二:简单计算器题目三:代码转换程序题目四:字符图形程序题目五:学生成绩管理题目六:打字练习√设计技术参数1.熟悉汇编指令、宏汇编语言的编程方法2.BIOS中断调用、系统功能中断调用方法3.磁盘文件、及文件内容操作设计要求题目的选择是根据汇编语言的特点主要针对系统内部的一些中断调用、系统功能调用、系统数据处理、文件数据处理而设计的,是对所学课程知识较为系统的应用。由于汇编语言编程相对其他语言编程比较复杂,因此,在设计上应把重点放在程序的功能实现上,不要太在意程序的结构和显示界面的设计。不要局限于题目所规定的要求,可以灵活裁减,设计出功能更完善程序。另外,也可以自己设计题目,同时,提出详细的功能描述,经指导老师审查同意后也可作为课程设计的题目。工作量1.完成所选题目的软件设计;2.课程设计说明书1000字(不包括程序源代码)左右。工作计划第1次熟悉软件环境。第2次绘制程序流程图。第3次用编写程序。第4次用调试运行程序。第5次编写课程设计说明书参考资料1.李敬兆8086/8088和arm核汇编语言程序设计中国科技大学出版社2.沈美明,温冬婵编著IBM—PC汇编语言程序设计(第二版)清华大学出版社出版3.沈美明,温冬婵,张赤红编著IBM—PC汇编语言程序设计实验教程清华大学出版社出版指导教师签字教研室主任签字2010年12月17日安徽理工大学课程设计(论文)成绩评定表指导教师评语:成绩:指导教师:年月日摘要在IBM-PC系统中,驻留的ROM中有8KB的BIOS。它实现对系统中种种常用设备的输入输出操作的管理。其中的16H中断调用即为键盘输入输出中断调用,实现从键盘输入字符到AL寄存器、读键盘缓冲区字符到AL寄存器、读取特殊功能键的状态等功能。本程序是一个在键盘上打字练习的程序,运行可执行程序后,出现主界面,按回车键出现由78个字母组成的乱序行,这时其中任一字母落下,在键盘上敲入该字母,如果输入正确,字母消失;按回车键进入打字练习;按ESC健返回主界面;按空格键暂停;按’E’退出。关键词:中断调用,打字练习,回车键进入,空格键暂停I目录1设计目的.....................................................12概要设计.....................................................22.1系统总体分析................................................................22.2主模块框图及说明............................................................23详细设计.....................................................43.1主模块及子模块说明..........................................................43.2各模块详细设计..............................................................44程序调试....................................................104.1运行界面分析...............................................................104.2调试过程及分析.............................................................125心得体会....................................................135.1设计体会...................................................................135.2系统改进...................................................................13参考文献......................................................14安徽理工大学课程设计(论文)-1-1设计目的汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。由于汇编语言如此的接近计算机硬件,因此,它可以最大限度地发挥计算机硬件的性能。由此可见汇编语言的重要性,学好这门课程,同样可为相关的专业打下基础。汇编语言程序设计课程设计是在教学实践基础上进行的一次试验,也是对该课程所学理论知识的深化和提高。因此,要求学生能综合应用所学知识,设计和制造出具有具有一定功能的应用系统,并且在实验的基本技能方面进行了一次全面的训练。此外,它还可以培养学生综合运用所学知识独立完成汇编程序课题的能力,使学生能够较全面的巩固和应用课堂上所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。再者,它同样可以提高学生运用理论去处理实际问题的能力和独立思考的能力,使学生的编程思想和编程能力有所提高,最终达到熟练地掌握编写汇编源程序的基本方法的目的。安徽理工大学课程设计(论文)-2-2概要设计2.1系统总体分析此程序的主要目的是在DOS界面下实现打字练习的功能。具体实现中从总体来看包括以下几个主要模块:界面显示模块、字母输入正确与否的相关处理模块,按下空格键后如何实现暂停和继续的功能模块,按下‘E’实现退出功能的模块以及按下ESC键后返回主界面模块等。2.2主模块框图及说明打字练习程序的主要功能模块图如图2-1:图2-1程序主要功能模块图程序执行流程图如图2-2:打字练习界面显示模块字母输入正确与否的相关处理模块按下空格键的相关处理模块实现退出和返回功能模块安徽理工大学课程设计(论文)-3-图2-2程序流程图执行输入字母正确?继续下落输入ESCNY主界面字母消失笑脸置空Y空格?暂停NYN按E退出空格?YN安徽理工大学课程设计(论文)-4-3详细设计3.1主模块及子模块说明界面显示模块:主要包括两部分,运行可执行程序显示主界面以及按下Enter键显示78个字母组成的乱序行。字母输入正确与否的相关处理模块:当字母输入正确后字母在当前位置消失并在原字母位置产生新的字母;当字母输入错误时,界面上字母下方的笑脸置为空格。按下空格键的相关处理模块:字母下落时按下空格键,则字母在当前位置暂停,直到你再次键入空格键后字母才会继续下落,否则保持暂停状态并一直持续下去。实现退出和返回功能模块:进入主界面后,按下‘E’则程序退出;进入字母下落界面按下ESC键程序则返回主界面。3.2各模块详细设计界面显示模块:采用宏调用的方式将界面清屏并显示主界面和字母组成的乱序行界面,如图3-1:图3-1界面显示模块字母输入正确与否的相关处理模块:当输入字母的ASCII码与当前下落字母的ASCII码相同时,字母在当前位置消失并在原字母位置产生新的字母;当字母输入错误时,界面上字母下方的笑脸置为空格。按下空格键的相关处理模块:字母下落时按下空格键,则字母在当前位置暂停,直到程序判断出你再次键入的键为空格键时字母才会继续下落,否则保持暂停状态并一直等待键盘输入。界面显示模块界面清屏并显示主界面界面显示并显示78个字母组成的乱序行安徽理工大学课程设计(论文)-5-实现退出和返回功能模块:进入主界面后,按下‘E’则程序退出;进入字母下落界面按下ESC键程序则返回主界面。程序主要功能代码及其说明如下:clear_screenmacroop1,op2,op3,op4;清屏宏定义movah,06hmoval,00hmovbh,07hmovch,op1movcl,op2movdh,op3movdl,op4int10hmovah,02h;设置光标位置movbh,00hmovdh,00hmovdl,00hint10hendmmenumacroop1,op2,op3;菜单显示宏定义movah,02hmovbh,00hmovdh,op1movdl,op2int10hmovah,09hleadx,op3int21hendmclear_screen00d,00d,24d,79d;清屏menu05d,15d,WP;菜单信息的宏调用menu07h,15d,date安徽理工大学课程设计(论文)-6-menu09d,15d,megmenu11d,15d,meg1menu13d,15d,meg2menu15d,15d,meg3menu17d,15d,meg4put:movah,02h;设置光标位置movbh,00hmovdh,22dmovdl,33dint10hmovah,01h;从键盘输入任意字符int21hcmpal,0dh;如果键入为Enter,则开始jespeed3cmpal,45h;如果键入为'E',则退出jeexitexit:movah,4chint21hspeed3:movax,speedmovspeed,axjmpbeginnextletter:movah,02h;显示字母movdl,[si]int21hincsiinccxcmpcx,78djenextcyclejmpnextletternextcycle:leadi,letters;判断字母位置是否在屏幕范围内安徽理工大学课程设计(论文)-7-leasi,position_flagaddpresent_position,30d;控制下一个字母的位置cmppresent_position,78jafrom_front;若不在则跳转out_cycle:;延迟pushcxmovcx,00hin_cycle:addcx,01hcmpcx,1000;字符在每一位置所停留时间,延迟jnein_cyclepushdx;保存之前字符位置movah,06h;从键盘输入字符movdl,0ffhint21hpopdxjzpass;字符在左上则转移cmpal,1bh;如果键入ESC,则返回主菜单jeto_start1cmpal,;如果键入SPACE,则游戏暂停jepausecmpal,[di];输入字母正确!则字母消失jedisappearpass:popcxinccxcmpcx,speed;字符下落速度,也起延迟作用jeprintjmpout_cyclepause:pushdx;暂停处理movah,06hmovdl,0ffhint21hpopdx安徽理工大学课程设计(论文)-8-cmpal,jnepausejmppass;若输入空格则继续to_start1:;返回主菜单jmpstartprint:movah,0ah;在当前光标位置写空格moval,movbh,00hmovcx,01hint10hincdhmovah,02h;改变光标位置movbh,00hint10hmovah,0ah;在当前光标位置写字母moval,[di]movbh,00hmovcx,01hint10hpopcxinccxcmpcx,21djeprint_next_letterjmpnextrow;下一行disappear:;击中字母后输出空格popcxpopcxmovah,0ahmoval,movbh,00hmovcx,01hint10hjmphit安徽理工大学课程设计(论文)-9-hit:movah,02hmovbh,00hmovdh,01hmovdl,present_positionint10hmoval,[di];出现下一个新字母的算法addal,7cmpal,7ahjaconvey_lette
本文标题:汇编语言打字练习程序实验报告
链接地址:https://www.777doc.com/doc-2400590 .html