汇编语言打字练习程序实验报告_第1页
汇编语言打字练习程序实验报告_第2页
汇编语言打字练习程序实验报告_第3页
汇编语言打字练习程序实验报告_第4页
汇编语言打字练习程序实验报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课 程 设 计 说 明 书题目:打字练习院系:专业班级:学 号:学生姓名:指导教师:2010年 12 月 31日安徽理工大学课程设计(论文)任务书计算机科学与工程学院硬件 教研室学 号设计题目设计技术参数1 熟悉汇编指令、宏汇编语言的编程方法2 BIOS中断调用、系统功能中断调用方法3 磁盘文件、及文件内容操作题目的选择是根据汇编语言的特点主要针对系统内部的一些中断调用、系统功能调用、系统数据处理、文件数据处理而设计的,是对所学课程知识较为系统的应用。设计要求由于汇编语言编程相对其他语言编程比较复杂,因此,在设计上应把重点放在程序的功能实现上,不要太在意程序的结构和显示界面的设计。不要局限于题

2、目所规定的要求,可以灵活裁减,设计出功能更完善程序。另外,也可以自己设计题目,同时,提出详细的功能描述,经指导老师审查同意后也可作为课程设计的题目。工作量工作计划第 1次熟悉软件环境。第 2次绘制程序流程图。第 3次用编写程序。第 4次用调试运行程序。第 5次编写课程设计说明书1.李敬兆 8086/8088和 arm核汇编语言程序设计 中国科技大学出版社2.沈美明,温冬婵 编著 IBMPC汇编语言程序设计(第二版) 清华大学出版社出版参考资料3. 沈美明,温冬婵,张赤红 编著 IBMPC 汇编语言程序设计实验教程清华大学出版社出版年 月 日安徽理工大学课程设计(论文)成绩评定表年月日摘要在 的

3、 目录1 设计目的 .12 概要设计 .2 3 详细设计 .4 4 程序调试 .10 5 心得体会 .13 参考文献.14I安徽理工大学课程设计(论文)1 算机所有硬件特性并能直接控制硬件的唯一语言。由于汇编语言如此的接近计算机硬件,因此,它可以最大限度地发挥计算机硬件的性能。由此可见汇编语言的重要性,学好这门课程,同样可为相关的专业打下基础。有一定功能的应用系统,并且在实验的基本技能方面进行了一次全面的训练。编语言程序的设计和调试。的目的。-1-安徽理工大学课程设计(论文)2 2.1 系统总体分析此程序的主要目的是在 DOS 界面下实现打字练习的功能。具体实现中从总体来看键后如何实现暂停和继

4、续的功能模块,按下E实现退出功能的模块以及按下ESC 键后返回主界面模块等。2.2 主模块框图及说明打字练习程序的主要功能模块图如图 2-1:图 程序执行流程图如图 2-2:-2-安徽理工大学课程设计(论文)按EY?NNNY?NYY图 -3-安徽理工大学课程设计(论文)3 3.1 主模块及子模块说明界面显示模块:主要包括两部分,运行可执行程序显示主界面以及按下Enter键显示 78 个字母组成的乱序行。字母位置产生新的字母;当字母输入错误时,界面上字母下方的笑脸置为空格。到你再次键入空格键后字母才会继续下落,否则保持暂停状态并一直持续下去。实现退出和返回功能模块:进入主界面后,按下E则程序退出

5、;进入字母下落界面按下 ESC 键程序则返回主界面。3.2 各模块详细设计面,如图 3-1:行图 字母输入正确与否的相关处理模块:当输入字母的 ASCII 码与当前下落字母的ASCII时,界面上字母下方的笑脸置为空格。等待键盘输入。-4-安徽理工大学课程设计(论文)实现退出和返回功能模块:进入主界面后,按下E则程序退出;进入字母下落界面按下 ESC 键程序则返回主界面。程序主要功能代码及其说明如下:clear_screen macro op1,op2,op3,op4 ;清屏宏定义mov ah,06hmov al,00hmov bh,07hmov ch,op1mov cl,op2mov dh,o

6、p3mov dl,op4int 10hmov ah,02hmov bh,00hmov dh,00hmov dl,00hint 10h;设置光标位置endmmenu macro op1,op2,op3 ;菜单显示宏定义mov ah,02hmov bh,00hmov dh,op1mov dl,op2int 10hmov ah,09hlea dx,op3int 21hendmclear_screen 00d,00d,24d,79d;清屏menu 05d,15d,WPmenu 07h,15d,date菜单信息的宏调用-5-安徽理工大学课程设计(论文)menu 09d,15d,megmenu 11d,1

7、5d,meg1menu 13d,15d,meg2menu 15d,15d,meg3menu 17d,15d,meg4put: mov ah,02h;设置光标位置mov bh,00hmov dh,22dmov dl,33dint 10hmov ah,01hint 21h;从键盘输入任意字符cmp al,0dhje speed3;如果键入为 Enter,则开始;如果键入为E,则退出cmp al,45hje exitexit: mov ah,4chint 21hspeed3: mov ax,speedmov speed,axjmp beginnextletter:mov ah,02hmov dl,s

8、iint 21h;显示字母inc siinc cxcmp cx,78dje nextcyclejmp nextletternextcycle:lea di,letters;判断字母位置是否在屏幕范围内-6-安徽理工大学课程设计(论文)lea si,position_flagadd present_position,30d ;控制下一个字母的位置cmp present_position,78ja from_front;若不在则跳转out_cycle:in_cycle:; 延迟push cxmov cx,00hadd cx,01hcmp cx,1000jne in_cyclepush dx;字符在

9、每一位置所停留时间,延迟;保存之前字符位置;从键盘输入字符mov ah,06hmov dl,0ffhint 21hpop dxjz pass字符在左上则转移cmp al,1bhje to_start1cmp al, je pause;如果键入 ESC,则返回主菜单;如果键入 SPACE,则游戏暂停输入字母正确!则字母消失cmp al,dije disappearpop cxpass:inc cxcmp cx,speedje print;字符下落速度,也起延迟作用暂停处理jmp out_cyclepause: push dxmov ah,06hmov dl,0ffhint 21hpop dx-7

10、-安徽理工大学课程设计(论文)cmp al, jne pausejmp pass;若输入空格则继续;返回主菜单to_start1:print:jmp startmov ah,0ahmov al, mov bh,00hmov cx,01hint 10h;在当前光标位置写空格inc dhmov ah,02hmov bh,00hint 10h;改变光标位置mov ah,0ahmov al,dimov bh,00hmov cx,01hint 10h;在当前光标位置写字母pop cxinc cxcmp cx,21dje print_next_letterjmp nextrow下一行disappear:;

11、击中字母后输出空格pop cxpop cxmov ah,0ahmov al, mov bh,00hmov cx,01hint 10hjmp hit-8-安徽理工大学课程设计(论文)hit: mov ah,02hmov bh,00hmov dh,01hmov dl,present_positionint 10hmov al,di ;出现下一个新字母的算法add al,7cmp al,7ahja convey_lettermov ah,0ahmov bh,00hmov cx,01hint 10hmov di,aladd letter_counter,01hjmp nextcycle-9-安徽理工大

12、学课程设计(论文)44.1 运行界面分析运行可执行程序后出现主界面,主界面如图 4-1:图键入 Enter键后出现 78个字母组成的乱序行并且字母下落,如图 4-2:图这时其中任一字母落下,在键盘上敲入该字母,如果输入正确,字母消失。如果输入不正确,界面中的笑脸变为空格,如图 4-3:-10-安徽理工大学课程设计(论文)图 按空格键暂停,如图 4-4:图 再按下空格键时字母继续下落,如图 4-5:-11-安徽理工大学课程设计(论文)图 按下 ESC 键则返回主界面。4.2 调试过程及分析用汇编编译软件 MASM 对编写的源程序(wordgame.asm)进行编译,连接,运行,并在dos界面下运

13、行debug命令debug wordgame.exe,然后执行可执行程序进入主界面。起初连接后出现了下面的问题:后来才注意到将文件保存的路径中应该不能含中文,如图 4-6:图 在接下来的运行过程中,基本上没遇到什么特别大的问题。-12-安徽理工大学课程设计(论文)5 5.1 设计体会本次的课程设计是我接触的第一门用低级语言实现的课程设计,相对于高级语言来东西,尽管花了许多的精力和时间,我感觉一切都是值得的。此次的课程设计,使我更深刻的感受到了编写程序的一般流程:确定程序的主要框实现上,不要太在意程序的结构和显示界面的设计。此次的课程设计,也激发了我对编程中遇到的问题的思考,有效地提高了我对汇编

14、细节,还必须熟练地掌握 debug 命令,这对程序的调试是非常重要的。但非常诚恳的说,这个课程设计的完成并不是我个人的功劳。刚开始我参考了网上速度、将代码简化等。但由于时间有限,其他部分改的不多,但每个模块的具体实现原理我都了解的比较透彻。5.2 系统改进此程序虽然基本功能都能实现,那么它是不是很完美呢?绝对不是。下面谈一下系一步的优化;其次程序的界面设计还不是很漂亮;再者还存在一个问题就是,当 78 个乱序行的字母都落下时,笑脸消失完了,然而字母依然在下落,实际上应该让打字练习统计你所取得的成绩,并对打字情况评个级别等等,总之还有许多可以改善的空间。针对以上的问题,今后的时间里我会不断地完善,以求更好的应用于实际生活中。-13-安徽理工大学课程设计(论文)1李敬兆等编.汇编语言程序设计.合肥:中国科学技术大学出版社,2008.92李敬兆等编.汇编语言程序设计实验教程及习题解答.合

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论