汇编语言实现文本编辑器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
bak
db 3850 dup(0) ;保存缓冲区的内容
2、本程序主要使用的子程序说明
Wind ;创建窗口的子程序
edit ;进行文本文本编辑
win4 ;动态显示光标位置,先保存光标位置,最后一行输出 行列数 改变了光标位置
Open
;输出文本内容
Save
;保存文本内容
clean_path ;清除保存路径的内容
3、 开发平台
所使用的系统:Windows XP 程序开发工具:Masn for Windows 6.0 集成实验开发环境 序设计语言:IBM-PC 汇编语言
二、 文本编辑译系统的概要设计
文本编辑程序要实现简单的文本编辑器基本功能。 1. 设计一个友好,易于操作的界面,界面可仿照 windows 记事本,但 windows 记事本
read_chr macro
;读取字符宏定义
mov ah,0
int 16h
endm
win4
武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书
huixian macro mov ah,1 int 21h endm xianshi macro mov ah,2 int 21h endm readf macro mov ah,3fh int 21h endm openf macro mov ah,3dh
光标移到下行首位
Y
row +1; line =0
Y
删除光标前的字符
row+1
Y
删除光标后的字符 row+1
Y
创建新文件
row+1
Y
Path = 输入的文件路径
打开文件
Y
Path = 输入的文件路径 保存文件
武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书
N
F4 save_as
Y
Path = 输入的文件路径
mov al,0 int 21h endm jianlif macro mov ah,3ch mov cx,00 int 21h endm writef macro mov ah,40h int 21h endm closef macro mov ah,3eh int 21h endm string macro p1 mov ah,9 lea dx,p1 int 21h endm
本科生课程设计成绩评定表
班级:计算机 0705 班
序 号
姓名:黄威 学号:0120710340522
评分项日
満分
实得分
1 学习态度认真,遵守纪律。
20
2 设计来自百度文库果。
40
3 设计报告规范(包括设计图、设计代码)
课程设计任务书
学生姓名: 黄威 专业班级:计算机科学与技术 0705
指导教师: 李春林
工作单位:计算机科学与技术学院
题目: 文本方式下字处理程序的设计与实现
初始条件:
理论:完成了《汇编语言程序设计》课程,对微机系统结构和 80 系列指令系统有了 较深入的理解,已掌握了汇编语言程序设计的基本方法和技巧。
;输入字符光标
win macro opr1,opr2,opr3,opr4,opr5,opr6 mov ah,07h mov al,opr1 mov bh,opr2 mov ch,opr3 mov cl,opr4 mov dh,opr5 mov dl,opr6
;建立窗口 ;初始化 ;上或下卷的行数 ;卷入行属性 ;左上角行号 ;左下角列号 ;右上角行号 ;右下角列号
mov al,80d ;r * 80
mul bl
add al,ccol
;+ c
adc ah,0
pop bx
endm
edit 的程序流程图:
开始
键盘输入字符
判断键值 是功能键
Y up
N
录入字符保存,
保存字符
Y
光标上移
row - 1
刷屏,重新显示 文本界面
武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书
int 10h endm
;读光标位置 ;页号 ch/cl:开始/结束行;dh/dl 当前行
buffer_locate macro rrow,ccol
;坐标定位 r*80+c 坐标在 ax 中;即行列数对应的缓冲区偏移地址 ax 中
push bx
mov ah,0d
dec rrow
mov bl,rrow
另存文件
N F5 exit
N
Y Path = 输入的文件路径
保存文件
结束
四、 软件的测试方法和测试结果
经过测试实现用键盘上的功能键制文本编辑程序, 1、测试用例:
1. 按一下 BackSpace 键可以删除当前光标以前的字符; 2. 按一下 Delete 键可以删除当前光标之后的字符; 3. 按一下 Home 键可以使光标跳转到当前行的第一列; 4. 按一下 End 键可以使光标跳转到当前行的最后一列; 5. 按一下 Enter 键可以使光标跳转到下一行的第一列; 6. 用 上下左右 键 使光标在文本框内任意移动
武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书
五、 小结与体会
通过本次汇编课程设计,加深了对汇编理论知识的理解,真正地把汇编的理论知识应 用于实践,更好的掌握了汇编技术的基本方法。在掌握基本指令的基础上,更加了解子程 序结构设计、宏汇编设计、I/O 中断、显示器的控制、基本的文件操作。
子程序设计:把程序模块化,完成独立的功能 宏汇编设计:更像高级语言中的函数设计 INT 21H :强大的 DOS 功能调用(包括文件操作) INT 10H :显示操作,进行显示控制 INT 16H :键盘中断,控制键盘,完成对应的操作 本程序最大特点功能比较完善,由于使用较多的宏汇编是的代码量大大降 低,宏汇编从分体现代码的重用。 实现:BackSpace 删除当前光标以前的字符;
3、函数调用关系:
主函数 main
Wind
Win3 和 wind4
各个键的 功能模块
curs_get
edit
menu_show
func_key
new open save save_as exit
home end backspace delete F10 help
4、程序中主要使用的宏汇编以及出口、入口的参数说明
(2)通过设计、编制、调试一个文本方式下字处理程序。实现一个简单的文本编辑器 的基本功能
2、 设计内容
1)清晰且易于操作的用户界面; 2)动态显示光标的当前位置; 3)在文本编辑区可以输入字符信息; 4)光标上移,下移,左移,右移,还可以回车,使用 home 键、end 键退格键; 5)允许删除当前光标前的字符; 6)将编辑文本存盘,读出并显示硬盘中的指定文件。
三、 详细的算法描述
武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书
1、本程序主要使用的数据结构如下:
path db 40 dup(0),'$' ;保存文件路径
buffer db 1840 dup(0) ,'$'
;保存文本内容,作为一个缓存区
line db ?
;保存列号
row
db ? ;保存行号
Delete 键删除当前光标之后的字符; Home 键使光标跳转到当前行的第一列; End 键使光标跳转到当前行的最后一列; Enter 键使光标跳转到下一行的第一列; 用 上下左右 键 使光标在文本框内任意移动 可以保存文件,以及打开指定路径文件,基本是一个简单的文本编辑器 文本的内容是由 buffer 定义的缓冲区保存,所以就把光标的位置换算为数组的下标, (坐标定位公式 r*80+c)进行定位操作。是每个元素都对应文本框内的一个位置起到保存 文本内容的作用。但是,文本的大小也就固定了;同时:当插入时就会覆盖原有的字符。 这样就很难实现插入操作。为此我想:只要略微改变一下当前的数据结构就可以实现插入 和扩充文本,或者专门为插入计算一个插入的函数也可实现。
武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书
endm
int 10h
curs_locate macro op1,op2,op3 mov ah,2 mov bh,op1 mov dh,op2 mov dl,op3 int 10h
endm
;定光标位置
;页号 ;行号 ;列号
curs_get macro mov ah,03h mov bh,0
N down
N
Y
光标下移 Row + 1
left N
right
N Home
Y
光标左移
line - 1
Y
光标右移
line + 1
Y
光标移到本行首位
line =0
N End
Y光标移到本行首位
line =79
Enter N
Backspace N
Delete N
F1 new N
F2 open N
F3 save
指导教师签名: 系主任(或责任教师)签名:
一、 系统描述
年月日 年月日
武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书
1、 目的
(1)掌握计算机汇编语言的使用。学完汇编课程,理解和掌握键盘和显示器接口的工 作原理,掌握 BIOS 键盘和显示器中断调用的使用方法,掌握复杂内存数据结构 的定义和管理方法。
武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书
六、 参考文献
1、IBM-PC 汇编语言程序设计(第 2 版)
清华大学出版社
沈美明 温冬婵 著
2/、IBM-PC 汇编语言程序设计 实验教程(第 2 版)
清华大学出版社
沈美明 温冬婵 张赤红 著
七、程序清单
武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书
实践:完成了《汇编语言程序设计》的 4 个实验,熟悉了汇编语言程序的设计环境并 掌握了汇编语言程序的调试方法。
要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等
具体要求) 理解键盘和显示器接口的工作原理,掌握 BIOS 键盘和显示器中断调用的使用方
法,掌握复杂内存数据结构的定义和管理方法。具体的设计任务及要求: 1)清晰且易于操作的用户界面;动态显示光标的当前位置; 2)在文本编辑区接受并保存输入信息; 3)光标上移,下移,左移,右移; 4)允许删除当前光标前的字符; 5)将编辑文本存盘,读出并显示硬盘中的指定文件。(任选)
的菜单项不好制作,所以将主要功能说明制作到边框,方便使用即可。并且实现在 某一固定区域内可以显示当前光标的坐标。 2. 实现用键盘上的功能键制编辑文本, 例如: 按一下 BackSpace 键可以删除当前光标以前的字符; 按一下 Delete 键可以删除当前光标之后的字符; 按一下 Home 键可以使光标跳转到当前行的第一列; 按一下 End 键可以使光标跳转到当前行的最后一列; 按一下 F1 键可以激活 File 的五个功能键(new,open,save ,save as,exit); 按一下 Enter 键可以使光标跳转到下一行的第一列; 按一下 F1 键可以显示帮助信息 用 上下左右 键 使光标在文本框内任意移动 3. 根据程序思想设计程序流程图,按照程序流程图完成实现各个模块的功能
程序运行结果如图:
运行界面如下:
武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书
输入字符后如下: 按 F1 键后如下:
武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书
选择 exit,如下: 按 ENTER 后如下:
武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书
同意保存,输入 y;然后输入文件名: 确定,按 enter 后退出:
在完成设计任务后,按要求撰写课程设计说明书;对课程设计说明书的具体要求 请见课程设计指导书。
阅读资料: 1)《IBM—PC 汇编语言程序设计实验教程》3.3 节 2)《IBM—PC 汇编语言程序设计(第 2 版)》9.1 节
时间安排:
设计安排一周:周 1、周 2:完成系统分析及设计。 周 3、周 4:完成程序调试,和验收。 周 5:撰写课程设计报告。
武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书
学 号: 0120710340522
武汉理工大学
汇编语言课程设计
题 目 文本方式下字处理程序的设计与实现
学院
计算机科学与技术学院
专业
计算机科学与技术
班级
计算机科学与技术 0705
姓名
黄威
指导教师
李春林
2010 年 1 月 15 日
武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书
2、文件操作 1.按一下 new 键可以创建新文件 2.按一下 open 键可以打开已有的文件; 3.按一下 save 键可以保存当前文件 4.按一下 saveas 键可以另存为当前文件 5.按一下 exit 键可以正常退出文本编辑器 Path = 完整的文件名(默认路径) 或 Path = 完整的路径+文件名