汇编语言实现文本编辑器Word文档格式.doc
《汇编语言实现文本编辑器Word文档格式.doc》由会员分享,可在线阅读,更多相关《汇编语言实现文本编辑器Word文档格式.doc(14页珍藏版)》请在冰豆网上搜索。
指导教师:
李春林工作单位:
计算机科学与技术学院
题目:
文本方式下字处理程序的设计与实现
初始条件:
理论:
完成了《汇编语言程序设计》课程,对微机系统结构和80系列指令系统有了较深入的理解,已掌握了汇编语言程序设计的基本方法和技巧。
实践:
完成了《汇编语言程序设计》的4个实验,熟悉了汇编语言程序的设计环境并掌握了汇编语言程序的调试方法。
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
理解键盘和显示器接口的工作原理,掌握BIOS键盘和显示器中断调用的使用方法,掌握复杂内存数据结构的定义和管理方法。
具体的设计任务及要求:
1)清晰且易于操作的用户界面;
动态显示光标的当前位置;
2)在文本编辑区接受并保存输入信息;
3)光标上移,下移,左移,右移;
4)允许删除当前光标前的字符;
5)将编辑文本存盘,读出并显示硬盘中的指定文件。
(任选)
在完成设计任务后,按要求撰写课程设计说明书;
对课程设计说明书的具体要求请见课程设计指导书。
阅读资料:
1)《IBM—PC汇编语言程序设计实验教程》3.3节
2)《IBM—PC汇编语言程序设计(第2版)》9.1节
时间安排:
设计安排一周:
周1、周2:
完成系统分析及设计。
周3、周4:
完成程序调试,和验收。
周5:
撰写课程设计报告。
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
一、系统描述
1、目的
(1)掌握计算机汇编语言的使用。
学完汇编课程,理解和掌握键盘和显示器接口的工作原理,掌握BIOS键盘和显示器中断调用的使用方法,掌握复杂内存数据结构的定义和管理方法。
(2)通过设计、编制、调试一个文本方式下字处理程序。
实现一个简单的文本编辑器的基本功能
2、设计内容
2)动态显示光标的当前位置;
3)在文本编辑区可以输入字符信息;
4)光标上移,下移,左移,右移,还可以回车,使用home键、end键退格键;
5)允许删除当前光标前的字符;
6)将编辑文本存盘,读出并显示硬盘中的指定文件。
3、开发平台
所使用的系统:
WindowsXP
程序开发工具:
MasnforWindows6.0集成实验开发环境
序设计语言:
IBM-PC汇编语言
二、文本编辑译系统的概要设计
文本编辑程序要实现简单的文本编辑器基本功能。
1.设计一个友好,易于操作的界面,界面可仿照windows记事本,但windows记事本的菜单项不好制作,所以将主要功能说明制作到边框,方便使用即可。
并且实现在某一固定区域内可以显示当前光标的坐标。
2.实现用键盘上的功能键制编辑文本,
例如:
按一下BackSpace键可以删除当前光标以前的字符;
按一下Delete键可以删除当前光标之后的字符;
按一下Home键可以使光标跳转到当前行的第一列;
按一下End键可以使光标跳转到当前行的最后一列;
按一下F1键可以激活File的五个功能键(new,open,save,saveas,exit);
按一下Enter键可以使光标跳转到下一行的第一列;
按一下F1键可以显示帮助信息
用上下左右键使光标在文本框内任意移动
3.根据程序思想设计程序流程图,按照程序流程图完成实现各个模块的功能
三、详细的算法描述
1、本程序主要使用的数据结构如下:
pathdb40dup(0),'
$'
;
保存文件路径
bufferdb1840dup(0),'
;
保存文本内容,作为一个缓存区
linedb?
保存列号
rowdb?
;
保存行号
bakdb3850dup(0);
保存缓冲区的内容
2、本程序主要使用的子程序说明
Wind;
创建窗口的子程序
edit;
进行文本文本编辑
win4
;
动态显示光标位置,先保存光标位置,最后一行输出行列数改变了光标位置
Open;
输出文本内容
Save;
保存文本内容
clean_path;
清除保存路径的内容
3、函数调用关系:
主函数main
Wind edit
Win3和wind4
各个键的 curs_getmenu_showfunc_key
功能模块
newopen savesave_asexit
homeendbackspacedeleteF10helpwin4
4、程序中主要使用的宏汇编以及出口、入口的参数说明
read_chrmacro;
读取字符宏定义
movah,0
int16h
endm
huixianmacro
movah,1
int21h
xianshimacro
movah,2
readfmacro
movah,3fh
openfmacro
movah,3dh
moval,0
int21h
endm
jianlifmacro
movah,3ch
movcx,00
writefmacro
movah,40h
closefmacro
movah,3eh
stringmacrop1;
输入字符光标
movah,9
leadx,p1
winmacroopr1,opr2,opr3,opr4,opr5,opr6;
建立窗口
movah,07h ;
初始化
moval,opr1 ;
上或下卷的行数
movbh,opr2 ;
卷入行属性
movch,opr3 ;
左上角行号
movcl,opr4 ;
左下角列号
movdh,opr5 ;
右上角行号
movdl,opr6 ;
右下角列号
int10h
curs_locatemacroop1,op2,op3;
定光标位置
movah,2
movbh,op1 ;
页号
movdh,op2 ;
行号
movdl,op3 ;
列号
curs_getmacro;
读光标位置
movah,03h
movbh,0
int10h ;
页号 ch/cl:
开始/结束行;
dh/dl当前行
buffer_locatemacrorrow,ccol
;
坐标定位r*80+c坐标在ax中;
即行列数对应的缓冲区偏移地址ax中
pushbx
movah,0d
decrrow
movbl,rrow
moval,80d ;
r*80
mulbl
addal,ccol ;
+c
adcah,0
popbx
开始
edit的程序流程图:
键盘输入字符
判断键值
是功能键
刷屏,重新显示文本界面
录入字符保存,保存字符
N
Y
up
光标上移
row-1
Y
down
光标下移
Row+1
光标左移
line-1
left
光标右移
line+1
right
光标移到本行首位
line=0
Home
line=79
End
Y
Enter
光标移到下行首位
row+1;
line=0
删除光标前的字符
row+1
Backspace
删除光标后的字符
Delete
创建新文件
F1new
Path=输入的文件路径
打开文件
F2open
保存文件
F3save
另存文件
F4save_as
F5exit
结束
四、软件的测试方法和测试结果
经过测试实现用键盘上的功能键制文本编辑程序,
1、测试用例:
1.按一下BackSpace键可以删除当前光标以前的字符;
2.按一下Delete键可以删除当前光标之后的字符;
3.按一下Home键可以使光标跳转到当前行的第一列;
4.按一下End键可以使光标跳转到当前行的最后一列;
5.按一下Enter键可以使光标跳转到下一行的第一列;
6.用上下左右键使光标在文本框内任意移动
2、文件操作
1.按一下new键可以创建新文件
2.按一下open键可以打开已有的文件;
3.按一下save键可以保存当前文件