您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > 汇编语言实现文本编辑器
武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书学号:0120710340522武汉理工大学汇编语言课程设计题目文本方式下字处理程序的设计与实现学院计算机科学与技术学院专业计算机科学与技术班级计算机科学与技术0705姓名黄威指导教师李春林2010年1月15日武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书课程设计任务书学生姓名:黄威专业班级:计算机科学与技术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、开发平台所使用的系统: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、函数调用关系:主函数mainWindeditWin3和wind4各个键的curs_getmenu_showfunc_key功能模块newopensavesave_asexithomeendbackspacedeleteF10helpwin44、程序中主要使用的宏汇编以及出口、入口的参数说明read_chrmacro;读取字符宏定义movah,0int16h武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书endmhuixianmacromovah,1int21hendmxianshimacromovah,2int21hendmreadfmacromovah,3fhint21hendmopenfmacromovah,3dhmoval,0int21hendmjianlifmacromovah,3chmovcx,00int21hendmwritefmacromovah,40hint21hendmclosefmacromovah,3ehint21hendmstringmacrop1;输入字符光标movah,9leadx,p1int21hendmwinmacroopr1,opr2,opr3,opr4,opr5,opr6;建立窗口movah,07h;初始化moval,opr1;上或下卷的行数movbh,opr2;卷入行属性movch,opr3;左上角行号movcl,opr4;左下角列号movdh,opr5;右上角行号武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书movdl,opr6;右下角列号int10hendmcurs_locatemacroop1,op2,op3;定光标位置movah,2movbh,op1;页号movdh,op2;行号movdl,op3;列号int10hendmcurs_getmacro;读光标位置movah,03hmovbh,0int10h;页号ch/cl:开始/结束行;dh/dl当前行endmbuffer_locatemacrorrow,ccol;坐标定位r*80+c坐标在ax中;即行列数对应的缓冲区偏移地址ax中pushbxmovah,0ddecrrowmovbl,rrowmoval,80d;r*80mulbladdal,ccol;+cadcah,0popbxendmedit的程序流程图:NYY开始键盘输入字符判断键值是功能键录入字符保存,保存字符up光标上移row-1刷屏,重新显示文本界面武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书NYNYNYNYNYYNYNYNYNYNYdown光标下移Row+1光标左移line-1光标右移line+1光标移到本行首位line=0光标移到本行首位line=79删除光标前的字符row+1光标移到下行首位row+1;line=0leftrightHomeEndEnterBackspaceF1newDeleteF2openF3save删除光标后的字符row+1创建新文件row+1Path=输入的文件路径打开文件Path=输入的文件路径保存文件武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书NYNYN四、软件的测试方法和测试结果经过测试实现用键盘上的功能键制文本编辑程序,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=完整的路径+文件名程序运行结果如图:运行界面如下:F4save_asF5exitPath=输入的文件路径另存文件Path=输入的文件路径保存文件结束武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书输入字符后如下:按F1键后如下:武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书选择exit,如下:按ENTER后如下:武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书同意保存,输入y;然后输入文件名:确定,按enter后退出:武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书五、小结与体会通过本次汇编课程设计,加深了对汇编理论知识的理解,真正地把汇编的理论知识应用于实践,更好的掌握了汇编技术的基本方法。在掌握基本指令的基础上,更加了解子程序结构设计、宏汇编设计、I/O中断、显示器的控制、基本的文件操作。子程序设计:把程序模块化,完成独立的功能宏汇编设计:更像高级语言中的函数设计INT21H:强大的DOS功能调用(包括文件操作)INT10H:显示操作,进行显示控制INT16H:键盘中断,控制键盘,完成对应的操作本程序最大特点功能比较完善,由于使用较多的宏汇编是的代码量大大降低,宏汇编从分体现代码的重用。实现:BackSpace删除当前光标以前的字符;Delete键删除当前光标之后的字符;Home键使光标跳转到当前行的第一列;End键使光标跳转到当前行的最后一列;Enter键使光标跳转到下一行的第一列;用上下左右键使光标在文本框内任意移动可以保存文件,以及打开指定路径文件,基本是一个简单的文本编辑器文本的内容是由buffer定义的缓冲区保存,所以就把光标的位置换算为数组的下标,(坐标定位公式r*80+c)进行定位操作。是每个元素都对应文本框内的一个位置起到保存文本内容的作用。但是,文本的大小也就固定了;同时:当插入时就会覆盖原有的字符。这样就很难实现插入操作。为此我想:只要略微改变一下当前的数据结构就可以实现插入和扩充文本,或者专门为插入计算一个插入的函数也可实现。武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书六、参考文献1、IBM-PC汇编语言程序设计(第2版)清华大学出版社沈美明温冬婵著2/、IBM-PC汇编语言程序设计实验教程(第2版)清华大学出版社沈美明温冬婵张赤红著七、程序清单武汉理工大学计算机科学与技术学院《汇编语言》课程设计报告书本科生课程设计成绩评定表班级:计算机0705班姓名:黄威学号:0120710340522序号评分项日満分实得分1学习态度认真,遵守纪律。202设计结果。403设计报告规范(包括设计图、设计代码)40总得分/等级注:最终成绩以五级分制记。优(90-100分)、良(80-89分)、中(70-79分)、及格(60-69分)、60分以下为不及格指导教师签名:2010年月日
本文标题:汇编语言实现文本编辑器
链接地址:https://www.777doc.com/doc-6345869 .html