汇编语言课设文本编辑器

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

汇编语言课程设计说明书学院:软件学院专业:软件工程学生姓名:马江涛学号:13314011744题目:文本编辑器指导教师:陈够喜潘广贞杨剑马巧梅2016年1月目录摘要...............................................-2-一、课程设计的目的..................................-1-1.1设计的目的.................................-1-1.2设计的内容....................................-1-二、设计方案的论证..................................-2-2.1开发背景......................................-2-2.2程序设计的意义................................-2-2.3设计思路.........................错误!未定义书签。三、设计的实现过程..................................-3-3.1总体设计方案..................................-3-3.2实现过程......................................-3-3.3数据定义......................................-4-3.4模块设计.....................................-6-四、调试运行及结果分析..............................-9-4.1运行结果......................................-9-4.2结果分析.....................................-12-五、测试及问题探讨.................................-13-5.1程序测试....................................-13-六、课设总结与体会.................................-16-七、参考文献.......................................-17-附录...............................................-18-摘要文本编辑器在我们的日常生活中使用非常频繁,是我们工作当中不可或缺的工具。我们经常使用的文本编辑器有微软的记事本和MicrosoftWord。但是本次课程设计我使用了8086汇编语言实现了DOS下的简易文本编辑器,虽然与平时使用的文本编辑器相比功能比较简单,也不够完善。但是旨在考察汇编语言的运用以及软件的实现过程。本次设计以设计思路为主介绍简易文档编辑器的设计实现程,对其设计原理进行一定的阐述,并且分模块对其中较为重要的子程序进行讲解,并且附上运行结果及汇编源程序。关键字:文本编辑器、汇编语言、DOS-1-一、课程设计的目的1.1设计的目的掌握汇编语言的使用,掌握BIOS、DOS功能调用的使用方法,以及对汇编语言程序设计的过程有较深刻的理解。1.2设计的内容本次设计主要包括一下内容:1.美观且易于操作的界面;2.在文本编辑区可以随意输入字符;3.可以使用Backspace键对光标的前一个字符删除;4.实现了光标上移、下移、左移、右移;5.实现了下拉菜单以及弹出式菜单;6.可以实现屏幕的上卷和下卷;11-2-二、设计方案的论证2.1开发背景本次开发主要是在《微机原理与接口技术》这门课学习完成之后,通过做一些实用的小软件考察自己的学习情况。并且熟悉汇编语言开发程序的过程。2.2程序设计的意义由于信息化的普遍,所以文本编辑器在我们工作中也是必不可少的,所以我选择了开发文本编辑器,不只为人们带来了便利,同时也能锻炼自己开发思路,熟悉汇编语言开发过程,以及提高软件开发水平。常见的有Windows下的记事本,MacOSX下的文本编辑,Linux下的vi、emacs、gedit、DOS下的edit等。本次设计类似于DOS下的edit。2.3设计思路本程序主要利用BIOS功能调用设计编辑器的菜单和编辑窗口,以及光标的定位与获取。利用DOS功能调用实现字符的读取与输出,以及对按键的识别。通过对光标以及字符输出来控制删除以及上下左右键的控制。-3-三、设计的实现过程3.1总体设计方案程序利用模块化设计方法,对每个要实现的功能都设计成子程序,方便使用。程序中具体模块如图3-1。图3-1程序关系3.2实现过程程序通过对BIOS和DOS的功能调用实现了对窗口、菜单、字符输入输出、按键识别等功能。程序整体利用了模块化的程序设计方法,把每个功能模块都分成子程序来分别调用。程序中主要用到了以下子程序:display(显示菜单栏);dis_edit(显示编辑窗口);dis_file(显示文件菜单);dis_text(显示文本菜单);主程序绘制界面按键判断子菜单绘制功能的实现displaydis_edit-4-key_back(backspace删除字符);key_down(光标向下);key_left(光标向左);key_up(光标向上);key_right(光标向右);key_pgup(菜单的循环选择);ok_exit(退出);open(子菜单显示及控制);3.3数据定义程序中要显示的字符串都事先在数据段DS和附加段ES中定义好了,由于功能调用的需要所以把数据定义在了数据段和附加段中。以下是程序中用到数据的定义:datasegmentsdb'FileViewTextAbout$'f1db'Open',10,13,'Exit',10,13,'$'f2db'Clear$'idb0bdb0buffdb1200dup(?),'$'printfdbCan'topentheFile$mssdb'Massage$'ab1db'AboutEdit$'ab2db'GaoHaiFeng$'ab3db'C1141$'ab4db'2013-6-22$'q1db'543589796$'dataendseatasegment-5-s1db'File$'s2db'View$'s3db'Text$'s4db'About$'s5db'Open$'s6db'Exit$'s7db'Clear$'eorrdb'eorr:$'okdb5bh,'OK',5dh,'$'designdb'Design:$'classdb'Class:$'datedb'Date:$'qqdb'QQ:$'eataends事先定义好数据的结构可以减少程序设计中很多的麻烦。-6-3.4模块设计3.4.1绘制界面主要利用了BIOS功能调用绘制了两个窗口,一个是编辑区,一个是菜单栏。实现过程见图3-4-1。图3-4-1绘制界面开始绘制编辑区绘制菜单栏返回主程序-7-3.4.2检测按键这个模块主要是利用了AL=0,INT16H来实现的,其中AH中存放的是按键的扫描码,AL中存放的是按键的ascii码。具体实现过程见图3-4-2。图3-4-2检测按键开始等待输入AH=0?按键处理输出字符返回主程序否是-8-3.4.3子菜单绘制该模块同样采用了BIOS功能调用设置子菜单,具体操作见图3-4-3。图3-4-3绘制子菜单开始绘制File子菜单绘制View子菜单绘制Text子菜单绘制About子菜单返回主程序-9-四、调试运行及结果分析4.1运行结果程序的主界面,包含有File,View,Text,About菜单,如图4-1所示。图4-1程序主界面按下PgUp键对菜单进行循环选择,绿色光带显示当前选中菜单,按任意除PgUp之外的按键切换到编辑区,如图4-2所示。-10-图4-2选择菜单File菜单包括Open和Exit子菜单,如图4-3所示。图4-3下拉菜单-11-当光带选中Open或者Exit时按下回车键,将执行光带所选中的子菜单项所对应的程序,图中为选中Open,如图4-4所示。图4-4选择OpenText菜单下只有一个Clear,用来清屏,如图4-5所示。图4-5text子菜单-12-About主要用来显示作者以及开发的相关信息,如图4-6.图4-6选中About4.2结果分析本程序主要仿照DOS下的Edit文本编辑器,但是由于时间的关系有些功能未实现,主要实现了菜单的弹出、选择、光标的移动、文本的删除、屏幕上卷等功能。-13-五、测试及问题探讨5.1程序测试首先是测试文本编辑区,如图5-1.图5-1编辑测试然后是测试菜单弹出后文本区的内容是否被抹掉,如图5-2和-14-5-3所示。图5-2文本区保存图5-3文本区回复接下来是测试清屏菜单项,如图5-4和5-5所示。-15-图5-4选中Clear图5-5文本清屏-16-六、课设总结与体会通过本次课程设计可以说收获颇多,虽然在程序设计的过程中遇到很多问题,其中想过放弃,也曾因此彻夜不眠过,甚至有思路就立马把程序写出来。但最终都在老师的帮助和自己的努力下走过来了。做完了这个程序之后感觉对汇编的理解更加深刻了,也似乎懂得了开发底层软件的原理。虽然汇编和其它程序设计语言相比麻烦很多,但是汇编是通过对计算机底层硬件的控制来达到人机交互的效果或者是实现了人们需要的功能。可以说了解了计算机大体的工作过程,为以后学习嵌入式系统以及计算机底层方面做了铺垫。-17-七、参考文献[1]吕林涛.微型计算机原理与接口技术.科学出版社.2011年5月[2]王延松.微机原理与接口技术实践教程.2011年9月[3]沈美明.IBM-PC汇编语言程序设计.清华大学出版社.2001年8月-18-附录源程序:datasegmentsdb'FileViewTextAbout$'f1db'Open',10,13,'Exit',10,13,'$'f2db'Clear$'idb0bdb0buffdb1200dup(?),'$'printfdbCan'topentheFile$mssdb'Massage$'ab1db'AboutEdit$'ab2db'GaoHaiFeng$'ab3db'C1141$'ab4db'2013-6-22$'q1db'543589796$'dataendseatasegments1db'File$'s2db'View$'s3db'Text$'s4db'About$'s5db'Open$'s6db'Exit$'s7db'Clear$'eorrdb'eorr:$'okdb5bh,'OK',5dh,'$'designdb'Design:$'classdb'Class:$'datedb'Date:$'qqdb'QQ:$'-19-eataendsstacksegmentdw1000dup(?)stackendscodesegmentassumeds:data,cs:code,ss:stack,es:eatastart:movax,datamovds,axmovax,eatamoves,axmovah,0moval,3int10hcalldisplay;显示菜单栏calldis_edit;显示编辑区movah,4chint21hdisplayprocnear;显示菜单栏movah,6moval,0movch,0movcl,0movdh,0movdl,79movbh,70hint10hmovah,6moval,1movch,0movcl,0movdh,0movdl,79-20-movbh,70hint10hmovah,2movbh,0movdh,0movdl,0int10hmovah,09hleadx,sint21hretdisplayendpdis_editprocnear;显示编辑区movdi,0;作为缓存指针movah,6moval,0movch,1movcl,0movdh,24movdl

1 / 52
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功