汇编语言课设---文本编辑器

上传人:re****.1 文档编号:548793575 上传时间:2022-10-20 格式:DOC 页数:41 大小:131KB
返回 下载 相关 举报
汇编语言课设---文本编辑器_第1页
第1页 / 共41页
汇编语言课设---文本编辑器_第2页
第2页 / 共41页
汇编语言课设---文本编辑器_第3页
第3页 / 共41页
汇编语言课设---文本编辑器_第4页
第4页 / 共41页
汇编语言课设---文本编辑器_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《汇编语言课设---文本编辑器》由会员分享,可在线阅读,更多相关《汇编语言课设---文本编辑器(41页珍藏版)》请在金锄头文库上搜索。

1、汇编语言课程设计说明书学 院:软件学院专 业:软件工程 学生姓名: 马江涛 学号: 题 目: 文本编辑器 指导教师:陈够喜 潘广贞 杨剑 马巧梅2016年 1 月目录摘 要I一、课程设计的目的- 1 -11设计的目的- 1 -1.2 设计的内容- 1 -二、设计方案的论证- 2 -2.1 开发背景- 2 -2.2 程序设计的意义- 2 -2.3设计思路- 2 -三、设计的实现过程- 3 -3.1 总体设计方案- 3 -3.2 实现过程- 3 -3.3 数据定义- 4 -3.4模块设计- 6 -四、调试运行及结果分析- 9 -4.1 运行结果- 9 -4.2 结果分析- 12 -五、测试及问题探

2、讨- 13 -5.1程序测试- 13 -六、课设总结与体会- 16 -七、参考文献- 17 -附录- 18 -摘 要文本编辑器在我们的日常生活中使用非常频繁,是我们工作当中不可或缺的工具。我们经常使用的文本编辑器有微软的记事本和Microsoft Word。但是本次课程设计我使用了8086汇编语言实现了DOS下的简易文本编辑器,虽然与平时使用的文本编辑器相比功能比较简单,也不够完善。但是旨在考察汇编语言的运用以及软件的实现过程。本次设计以设计思路为主介绍简易文档编辑器的设计实现程,对其设计原理进行一定的阐述,并且分模块对其中较为重要的子程序进行讲解,并且附上运行结果及汇编源程序。关键字:文本编

3、辑器、汇编语言、DOS一、课程设计的目的11 设计的目的掌握汇编语言的使用,掌握BIOS、DOS功能调用的使用方法,以及对汇编语言程序设计的过程有较深刻的理解。1.2 设计的内容本次设计主要包括一下内容:1. 美观且易于操作的界面;2. 在文本编辑区可以随意输入字符;3. 可以使用Backspace键对光标的前一个字符删除;4. 实现了光标上移、下移、左移、右移;5. 实现了下拉菜单以及弹出式菜单;6. 可以实现屏幕的上卷和下卷; 二、设计方案的论证2.1 开发背景本次开发主要是在微机原理与接口技术这门课学习完成之后,通过做一些实用的小软件考察自己的学习情况。并且熟悉汇编语言开发程序的过程。2

4、.2 程序设计的意义由于信息化的普遍,所以文本编辑器在我们工作中也是必不可少的,所以我选择了开发文本编辑器,不只为人们带来了便利,同时也能锻炼自己开发思路,熟悉汇编语言开发过程,以及提高软件开发水平。常见的有Windows下的记事本,Mac OS X下的文本编辑,Linux下的vi、emacs、gedit、DOS下的edit等。本次设计类似于DOS下的edit。2.3 设计思路本程序主要利用BIOS功能调用设计编辑器的菜单和编辑窗口,以及光标的定位与获取。利用DOS功能调用实现字符的读取与输出,以及对按键的识别。通过对光标以及字符输出来控制删除以及上下左右键的控制。三、设计的实现过程3.1 总

5、体设计方案程序利用模块化设计方法,对每个要实现的功能都设计成子程序,方便使用。程序中具体模块如图3-1。主程序绘制界面按键判断子菜单绘制功能的实现displaydis_edit图3-1 程序关系3.2 实现过程程序通过对BIOS和DOS的功能调用实现了对窗口、菜单、字符输入输出、按键识别等功能。程序整体利用了模块化的程序设计方法,把每个功能模块都分成子程序来分别调用。程序中主要用到了以下子程序:l display(显示菜单栏);l dis_edit(显示编辑窗口);l dis_file(显示文件菜单);l dis_text(显示文本菜单);l key_back(backspace删除字符);l

6、 key_down(光标向下);l key_left(光标向左);l key_up(光标向上);l key_right(光标向右);l key_pgup(菜单的循环选择);l ok_exit(退出);l open(子菜单显示及控制);3.3 数据定义程序中要显示的字符串都事先在数据段DS和附加段ES中定义好了,由于功能调用的需要所以把数据定义在了数据段和附加段中。以下是程序中用到数据的定义:data segments db File View Text About$f1 db Open,10,13,Exit,10,13,$f2 db Clear$i db 0b db 0buff db 1200

7、 dup(?),$printf db Cant open the File$mss db Massage$ab1 db About Edit$ab2 db GaoHaiFeng$ab3 db C1141$ab4 db 2013-6-22$q1 db 543589796$data endseata segments1 db File$s2 db View$s3 db Text$s4 db About$s5 db Open$s6 db Exit$s7 db Clear$eorr db eorr:$ok db 5bh,OK,5dh,$design db Design:$class db Class:

8、$date db Date:$qq db QQ:$eata ends事先定义好数据的结构可以减少程序设计中很多的麻烦。3.4 模块设计3.4.1绘制界面主要利用了BIOS功能调用绘制了两个窗口,一个是编辑区,一个是菜单栏。实现过程见图3-4-1。开始绘制编辑区绘制菜单栏返回主程序图3-4-1 绘制界面3.4.2 检测按键这个模块主要是利用了AL=0,INT 16H来实现的,其中AH中存放的是按键的扫描码,AL中存放的是按键的ascii码。具体实现过程见图3-4-2。开始等待输入AH=0?按键处理输出字符返回主程序否是图3-4-2 检测按键3.4.3 子菜单绘制该模块同样采用了BIOS功能调用设

9、置子菜单,具体操作见图3-4-3。开始绘制File子菜单绘制View子菜单绘制Text子菜单绘制About子菜单返回主程序图3-4-3 绘制子菜单四、调试运行及结果分析4.1 运行结果程序的主界面,包含有File,View,Text,About菜单,如图4-1所示。图4-1 程序主界面按下PgUp键对菜单进行循环选择,绿色光带显示当前选中菜单,按任意除PgUp之外的按键切换到编辑区,如图4-2所示。图4-2 选择菜单File菜单包括Open和Exit子菜单,如图4-3所示。图4-3 下拉菜单当光带选中Open或者Exit时按下回车键,将执行光带所选中的子菜单项所对应的程序,图中为选中Open,

10、如图4-4所示。图4-4 选择OpenText菜单下只有一个Clear,用来清屏,如图4-5所示。图4-5text子菜单About主要用来显示作者以及开发的相关信息,如图4-6.图4-6 选中About4.2 结果分析本程序主要仿照DOS下的Edit文本编辑器,但是由于时间的关系有些功能未实现,主要实现了菜单的弹出、选择、光标的移动、文本的删除、屏幕上卷等功能。五、测试及问题探讨5.1 程序测试首先是测试文本编辑区,如图5-1.图5-1 编辑测试然后是测试菜单弹出后文本区的内容是否被抹掉,如图5-2和5-3所示。图5-2 文本区保存图5-3 文本区回复接下来是测试清屏菜单项,如图5-4和5-5

11、所示。图5-4 选中Clear图5-5 文本清屏六、课设总结与体会通过本次课程设计可以说收获颇多,虽然在程序设计的过程中遇到很多问题,其中想过放弃,也曾因此彻夜不眠过,甚至有思路就立马把程序写出来。但最终都在老师的帮助和自己的努力下走过来了。做完了这个程序之后感觉对汇编的理解更加深刻了,也似乎懂得了开发底层软件的原理。虽然汇编和其它程序设计语言相比麻烦很多,但是汇编是通过对计算机底层硬件的控制来达到人机交互的效果或者是实现了人们需要的功能。可以说了解了计算机大体的工作过程,为以后学习嵌入式系统以及计算机底层方面做了铺垫。七、参考文献1吕林涛. 微型计算机原理与接口技术.科学出版社.2011年5

12、月2王延松.微机原理与接口技术实践教程.2011年9月3沈美明.IBM-PC汇编语言程序设计.清华大学出版社.2001年8月附录源程序:data segments db File View Text About$f1 db Open,10,13,Exit,10,13,$f2 db Clear$i db 0b db 0buff db 1200 dup(?),$printf db Cant open the File$mss db Massage$ab1 db About Edit$ab2 db GaoHaiFeng$ab3 db C1141$ab4 db 2013-6-22$q1 db 5435

13、89796$data endseata segments1 db File$s2 db View$s3 db Text$s4 db About$s5 db Open$s6 db Exit$s7 db Clear$eorr db eorr:$ok db 5bh,OK,5dh,$design db Design:$class db Class:$date db Date:$qq db QQ:$eata endsstack segmentdw 1000 dup(?)stack endscode segmentassume ds:data,cs:code,ss:stack,es:eatastart:m

14、ov ax,datamov ds,axmov ax,eatamov es,axmov ah,0mov al,3int 10hcall display;显示菜单栏call dis_edit;显示编辑区mov ah,4chint 21hdisplay proc near;显示菜单栏mov ah,6mov al,0mov ch,0mov cl,0mov dh,0mov dl,79mov bh,70hint 10hmov ah,6mov al,1mov ch,0mov cl,0mov dh,0mov dl,79mov bh,70hint 10hmov ah,2mov bh,0mov dh,0mov dl,0int 10hmov ah,09hlea dx,sint 21hretdisplay endp dis_edit proc

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号