汇编语言课程设计题目文本方式下字处理程序的设计与实现学院计算机科学与技术学院专业计算机科学与技术班级计算机科学与技术0705课程设计任务书题目: 文本方式下字处理程序的设计与实现初始条件:理论:完成了《汇编语言程序设计》课程,对微机系统结构和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、设计内容1)清晰且易于操作的用户界面;2)动态显示光标的当前位置;3)在文本编辑区可以输入字符信息;4)光标上移,下移,左移,右移,还可以回车,使用home键、end键退格键;5)允许删除当前光标前的字符;6)将编辑文本存盘,读出并显示硬盘中的指定文件。
3、开发平台所使用的系统:Windows XP程序开发工具:Masn for Windows 6.0 集成实验开发环境序设计语言:IBM-PC 汇编语言二、文本编辑译系统的概要设计文本编辑程序要实现简单的文本编辑器基本功能。
1.设计一个友好,易于操作的界面,界面可仿照windows记事本,但windows记事本的菜单项不好制作,所以将主要功能说明制作到边框,方便使用即可。
并且实现在某一固定区域内可以显示当前光标的坐标。
2.实现用键盘上的功能键制编辑文本,例如:按一下BackSpace键可以删除当前光标以前的字符;按一下Delete 键可以删除当前光标之后的字符;按一下Home键可以使光标跳转到当前行的第一列;按一下End 键可以使光标跳转到当前行的最后一列;按一下F1 键可以激活File的五个功能键(new,open,save ,save as,exit);按一下Enter键可以使光标跳转到下一行的第一列;按一下F1 键可以显示帮助信息用上下左右键使光标在文本框内任意移动3.根据程序思想设计程序流程图,按照程序流程图完成实现各个模块的功能三、详细的算法描述1、本程序主要使用的数据结构如下:path db 40 dup(0),'$' ;保存文件路径buffer db 1840 dup(0) ,'$' ;保存文本内容,作为一个缓存区line db ? ;保存列号row db ? ;保存行号bak db 3850 dup(0) ;保存缓冲区的内容2、本程序主要使用的子程序说明Wind ;创建窗口的子程序edit ;进行文本文本编辑win4;动态显示光标位置,先保存光标位置,最后一行输出行列数改变了光标位置Open ;输出文本内容Save ;保存文本内容clean_path ;清除保存路径的内容3WindWin3和wind4各个键的 curs_get menu_show func_keyhome end backspace delete F10 help win44、程序中主要使用的宏汇编以及出口、入口的参数说明read_chr macro ;读取字符宏定义mov ah,0int 16hendmhuixian macromov ah,1int 21hendmxianshi macromov ah,2int 21hendmreadf macromov ah,3fhint 21hendmopenf macromov ah,3dhmov al,0int 21hendmjianlif macromov ah,3chmov cx,00int 21hendmwritef macromov ah,40hint 21hendmclosef macromov ah,3ehint 21hendmstring macro p1 ;输入字符光标mov ah,9lea dx,p1int 21hendmwin 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 ;右下角列号int 10hendmcurs_locate macro op1,op2,op3 ;定光标位置mov ah,2mov bh,op1 ;页号mov dh,op2 ;行号mov dl,op3 ;列号int 10hendmcurs_get macro ;读光标位置mov ah,03hmov bh,0int 10h ;页号ch/cl:开始/结束行;dh/dl 当前行endmbuffer_locate macro rrow,ccol;坐标定位r*80+c 坐标在ax中;即行列数对应的缓冲区偏移地址 ax中 push bxmov ah,0ddec rrowmov bl,rrowmov al,80d ;r * 80mul bladd al,ccol ;+ cadc ah,0pop bxendmedit四、软件的测试方法和测试结果经过测试实现用键盘上的功能键制文本编辑程序,1、测试用例:1.按一下BackSpace键可以删除当前光标以前的字符;2.按一下Delete 键可以删除当前光标之后的字符;3.按一下Home键可以使光标跳转到当前行的第一列;4.按一下End 键可以使光标跳转到当前行的最后一列;5.按一下Enter键可以使光标跳转到下一行的第一列;6.用上下左右键使光标在文本框内任意移动2、文件操作1.按一下new 键可以创建新文件2.按一下open 键可以打开已有的文件;3.按一下save 键可以保存当前文件4.按一下saveas 键可以另存为当前文件5.按一下exit 键可以正常退出文本编辑器Path = 完整的文件名(默认路径)或 Path = 完整的路径+文件名程序运行结果如图:运行界面如下:输入字符后如下:按F1键后如下:选择exit,如下:按ENTER后如下:同意保存,输入y;然后输入文件名:确定,按enter后退出:五、小结与体会通过本次汇编课程设计,加深了对汇编理论知识的理解,真正地把汇编的理论知识应用于实践,更好的掌握了汇编技术的基本方法。
在掌握基本指令的基础上,更加了解子程序结构设计、宏汇编设计、I/O中断、显示器的控制、基本的文件操作。
子程序设计:把程序模块化,完成独立的功能宏汇编设计:更像高级语言中的函数设计INT 21H :强大的DOS功能调用(包括文件操作)INT 10H :显示操作,进行显示控制INT 16H :键盘中断,控制键盘,完成对应的操作本程序最大特点功能比较完善,由于使用较多的宏汇编是的代码量大大降低,宏汇编从分体现代码的重用。
实现:BackSpace删除当前光标以前的字符;Delete 键删除当前光标之后的字符;Home键使光标跳转到当前行的第一列;End 键使光标跳转到当前行的最后一列;Enter键使光标跳转到下一行的第一列;用上下左右键使光标在文本框内任意移动可以保存文件,以及打开指定路径文件,基本是一个简单的文本编辑器文本的内容是由buffer定义的缓冲区保存,所以就把光标的位置换算为数组的下标,(坐标定位公式r*80+c)进行定位操作。
是每个元素都对应文本框内的一个位置起到保存文本内容的作用。
但是,文本的大小也就固定了;同时:当插入时就会覆盖原有的字符。
这样就很难实现插入操作。
为此我想:只要略微改变一下当前的数据结构就可以实现插入和扩充文本,或者专门为插入计算一个插入的函数也可实现。
六、参考文献1、IBM-PC 汇编语言程序设计(第2版)清华大学出版社沈美明温冬婵著2/、IBM-PC 汇编语言程序设计实验教程(第2版)清华大学出版社沈美明温冬婵张赤红著。