当前位置:文档之家› 汇编语言课设 文本编辑器

汇编语言课设 文本编辑器

汇编语言课程设计

说明书

学院:软件学院

专业:软件工程

学生姓名:马江涛

学号: 133********

题目:文本编辑器

指导教师:陈够喜潘广贞杨剑马巧梅

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 -

摘要

文本编辑器在我们的日常生活中使用非常频繁,是我们工作当中不可或缺的工具。我们经常使用的文本编辑器有微软的记事本和Microsoft Word。但是本次课程设计我使用了8086汇编语言实现了DOS下的简易文本编辑器,虽然与平时使用的文本编辑器相比功能比较简单,也不够完善。但是旨在考察汇编语言的运用以及软件的实现过程。

本次设计以设计思路为主介绍简易文档编辑器的设计实现程,对其设计原理进行一定的阐述,并且分模块对其中较为重要的

子程序进行讲解,并且附上运行结果及汇编源程序。

关键字:文本编辑器、汇编语言、DOS

一、课程设计的目的

1.1设计的目的

掌握汇编语言的使用,掌握BIOS、DOS功能调用的使用方法,以及对汇编语言程序设计的过程有较深刻的理解。

1.2 设计的内容

本次设计主要包括一下内容:

1.美观且易于操作的界面;

2.在文本编辑区可以随意输入字符;

3.可以使用Backspace键对光标的前一个字符删除;

4.实现了光标上移、下移、左移、右移;

5.实现了下拉菜单以及弹出式菜单;

6.可以实现屏幕的上卷和下卷;

1

1

二、设计方案的论证

2.1 开发背景

本次开发主要是在《微机原理与接口技术》这门课学习完成之后,通过做一些实用的小软件考察自己的学习情况。并且熟悉汇编语言开发程序的过程。

2.2 程序设计的意义

由于信息化的普遍,所以文本编辑器在我们工作中也是必不可少的,所以我选择了开发文本编辑器,不只为人们带来了便利,同时也能锻炼自己开发思路,熟悉汇编语言开发过程,以及提高软件开发水平。

常见的有Windows下的记事本,Mac OS X下的文本编辑,Linux 下的vi、emacs、gedit、DOS下的edit等。本次设计类似于DOS 下的edit。

2.3设计思路

本程序主要利用BIOS功能调用设计编辑器的菜单和编辑窗口,以及光标的定位与获取。利用DOS功能调用实现字符的读取与输出,以及对按键的识别。通过对光标以及字符输出来控制删除以及上下左右键的控制。

三、设计的实现过程

3.1 总体设计方案

程序利用模块化设计方法,对每个要实现的功能都设计成子程序,方便使用。程序中具体模块如图3-1。

主程序

绘制界面按键判断子菜单绘制功能的实现

display dis_edit

图3-1 程序关系

3.2 实现过程

程序通过对BIOS和DOS的功能调用实现了对窗口、菜单、字符输入输出、按键识别等功能。程序整体利用了模块化的程序设计方法,把每个功能模块都分成子程序来分别调用。程序中主要用到了以下子程序:

●display(显示菜单栏);

●dis_edit(显示编辑窗口);

●dis_file(显示文件菜单);

●dis_text(显示文本菜单);

●key_back(backspace删除字符);

●key_down(光标向下);

●key_left(光标向左);

●key_up(光标向上);

●key_right(光标向右);

●key_pgup(菜单的循环选择);

●ok_exit(退出);

●open(子菜单显示及控制);

3.3 数据定义

程序中要显示的字符串都事先在数据段DS和附加段ES中定义好了,由于功能调用的需要所以把数据定义在了数据段和附加段中。以下是程序中用到数据的定义:

data segment

s db 'File View Text About$'

f1 db 'Open',10,13,'Exit',10,13,'$'

f2 db 'Clear$'

i db 0

b db 0

buff db 1200 dup(?),'$'

printf db "Can't 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 ends

eata segment

s1 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 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。

图3-4-2 检测按键

开始

等待输入

AH=0?

按键处理

输出字符

返回 主程序

3.4.3 子菜单绘制

该模块同样采用了BIOS功能调用设置子菜单,具体操作见图3-4-3。

开始

绘制File

子菜单

绘制View

子菜单

绘制Text

子菜单

绘制About

子菜单

返回

主程序

图3-4-3 绘制子菜单

四、调试运行及结果分析

4.1 运行结果

程序的主界面,包含有File,View,Text,About菜单,如图4-1所示。

图4-1 程序主界面

按下PgUp键对菜单进行循环选择,绿色光带显示当前选中菜单,按任意除PgUp之外的按键切换到编辑区,如图4-2所示。

File菜单包括Open和Exit子菜单,如图4-3所示。

图4-3 下拉菜单

当光带选中Open或者Exit时按下回车键,将执行光带所选中的子菜单项所对应的程序,图中为选中Open,如图4-4所示。

图4-4 选择Open

Text菜单下只有一个Clear,用来清屏,如图4-5所示。

图4-5 text子菜单

About主要用来显示作者以及开发的相关信息,如图4-6.

图4-6 选中About

4.2 结果分析

本程序主要仿照DOS下的Edit文本编辑器,但是由于时间的关系有些功能未实现,主要实现了菜单的弹出、选择、光标的移动、文本的删除、屏幕上卷等功能。

五、测试及问题探讨

5.1程序测试

首先是测试文本编辑区,如图5-1.

图5-1 编辑测试

然后是测试菜单弹出后文本区的内容是否被抹掉,如图5-2和

5-3所示。

图5-2 文本区保存

图5-3 文本区回复接下来是测试清屏菜单项,如图5-4和5-5所示。

图5-4 选中Clear

图5-5 文本清屏

六、课设总结与体会

通过本次课程设计可以说收获颇多,虽然在程序设计的过程中遇到很多问题,其中想过放弃,也曾因此彻夜不眠过,甚至有思路就立马把程序写出来。但最终都在老师的帮助和自己的努力下走过来了。做完了这个程序之后感觉对汇编的理解更加深刻了,也似乎懂得了开发底层软件的原理。虽然汇编和其它程序设计语言相比麻烦很多,但是汇编是通过对计算机底层硬件的控制来达到人机交互的效果或者是实现了人们需要的功能。可以说了解了计算机大体的工作过程,为以后学习嵌入式系统以及计算机底层方面做了铺垫。

七、参考文献

[1]吕林涛. 微型计算机原理与接口技术.科学出版社.2011年5月

[2]王延松.微机原理与接口技术实践教程.2011年9月

[3]沈美明.IBM-PC汇编语言程序设计.清华大学出版社.2001年8月

相关主题
文本预览
相关文档 最新文档