简易文本编辑器设计微机原理课设.doc

上传人:文库蛋蛋多 文档编号:2882146 上传时间:2023-03-01 格式:DOC 页数:40 大小:264.50KB
返回 下载 相关 举报
简易文本编辑器设计微机原理课设.doc_第1页
第1页 / 共40页
简易文本编辑器设计微机原理课设.doc_第2页
第2页 / 共40页
简易文本编辑器设计微机原理课设.doc_第3页
第3页 / 共40页
简易文本编辑器设计微机原理课设.doc_第4页
第4页 / 共40页
简易文本编辑器设计微机原理课设.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《简易文本编辑器设计微机原理课设.doc》由会员分享,可在线阅读,更多相关《简易文本编辑器设计微机原理课设.doc(40页珍藏版)》请在三一办公上搜索。

1、课程设计任务书学生姓名: 汪鹏 专业班级: 自动化0806 指导教师: 杨胤铎 工作单位: 自动化学院 题 目: 简易文本编辑器设计 初始条件:实现文本编辑功能,如:双击可执行文件wbbjq.exe,在出现的界面中输入任意文本内容,利用DEL键,BACKSPACE键,HOME键,END键,上下左右光标键对文本进行全屏幕编辑,按f1键激活菜单file,下移光标,选择save,输入文件名.也可以选择FILE菜单的其他菜单项,他们的功能均可实现.按f10激活帮助,按ESC键退出帮助.要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1) 设计任务及要求分析(2) 方

2、案比较及认证说明(3) 系统原理阐述(4) 硬件设计课题需要说明:硬件原理,电路图,采用器件的功能说明(5) 软件设计课题需要说明:软件思想,流程图,源程序及程序注释(6) 调试记录及结果分析(7) 总结(8) 参考资料(9) 附录:芯片资料或程序清单,软件演示屏幕拷贝图或硬件实物图。时间安排:1月10日1月12日:收集资料,方案选择1月13日1月17日:整体流程,程序细节1月18日1月20日;调试程序,报告撰写1月21日:交设计报告,程序演示,答辩指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目录摘要-21 设计任务及要求-31.1 设计任务-31.2 设计要求-32 设计

3、分析-42.1 设计原理-42.2 宏设计分析-42.3 子程序设计分析-53 功能实现简介-114 软硬件说明-114.1 软件介绍 -114.2 程序简介及流程图-125 程序调试及运行结果-145.1 文本编辑器界面-145.2 编辑界面-155.3 F1菜单激活界面-155.4 F10激活帮助功能-166 心得体会-17参考文献-18附录摘要通过对微机原理与接口技术课程内容的应用,可以完成简易文本编辑器的分析与设计,较好的实现各项功能要求。通常,我们所用的此类文档编辑处理软件为Microsoft Office Word,通过它,我们可以自如的对文档进行保存、修改、删除、另存为等操作,当

4、然,它还有自己更为强大的功能系统,在此不再赘述。而我们所设计的简易文本编辑器,其与Word的基本功能也可谓如出一辙,即通过对知识的合理运用,我们也可以通过汇编程序设计实现对各种文档进行基本处理的操作要求。本报告将以设计思路为主介绍简易文档编辑器的设计实现过程,对其设计原理进行一定的阐述,并且分模块对其中较为重要的宏设计、子程序设计进行讲解,并且附上运行结果及汇编源程序。关键字:文本编辑 宏设计 子程序 汇编 AbstractBy studying the microcomputer principle andconnection technology course content, can c

5、omplete the application of simple text editor analysis and design, better realize all kinds of function requirement. Usually, we used such document editor processing software for Microsoft Office Word, through it, we can freely to classify documents preservation, modification and deletion, save as o

6、peration, of course, it still have oneself more powerful function system, in which no longer etc. While we are design of simple text editor, its basic function with Word is similar, namely, through the knowledge reasonable apply, we can also through the assembler programming realize to the various d

7、ocuments in basic treatment operation requirements.This report will give priority to in order to design ideas introduced simple document editor design implementation process, the design principle of some expatiation and points among the more important module of the macro design, subroutine design an

8、d explain, and attach operation results and assembly source program.Key words: text editor macro design subroutines assembly简易文本编辑器设计1 设计任务及要求1.1 设计任务题 目: 简易文本编辑器设计 初始条件:实现文本编辑功能,如:双击可执行文件wbbjq.exe,在出现的界面中输入任意文本内容,利用DEL键,BACKSPACE键,HOME键,END键,上下左右光标键对文本进行全屏幕编辑,按f1键激活菜单file,下移光标,选择save,输入文件名;也可以选择FIL

9、E菜单的其他菜单项,他们的功能均可实现;按f10激活帮助,按ESC键退出帮助。1.2 设计要求经过分析及设计,要求完成之后的作品达到以下要求:(1)所编程序可以实现文本编辑功能(2)设计任务及要求分析(3)进行设计时的分析(4)软硬件设计课题需要说明(5)调试记录及结果分析(6)心得体会(7)参考资料(8)附录 所以,为了出色的完成本次课程设计,除过较好的完成汇编程序的设计,实现简易文本编辑器的功能外,还需要对课程设计的报告书进行用心的书写。2 设计分析2.1 设计原理本次课程设计较好的应用了DOS和BIOS的中断功能。经过了解可以发现,DOS提供了一种完成磁盘文件的建立、打开、关闭和读写等操

10、作的功能调用,所以我们可以利用这一点,通过汇编语言来实现对磁盘文件的存取操作。其中运用较为广泛的有: BIOS中断类型10H:设置显示模式,设置窗口背景、或者字符的颜色等; DOS系统功能09号:显示菜单信息字符串;BIOS键盘I/O中断调用16H之0号功能:实现从键盘读取字符,通过对“”“”“”“”方向移动键以及“Del”“Ins”“BackSpace”“End”“Home”键的扫描码的判断,结合DOS系统功能调用中的文件管理功能,实现对文件的操作。其中,DOS系统功能调用中的文件管理功能包括建立文件(16H)、打开文件(0FH)、读文件(3FH)、写文件(40H)等。为了使程序简洁,条理清

11、晰,提高运行效率,我们采用了宏、子程序等手段的设计。2.2 宏设计分析本次所设计程序中共涉及到了5个宏:1、RED_CHR:读键盘输入 这个宏应用了BIOS中断16H的0号功能,即读取输入的扫描码。因为“”“”“”“”方向移动键以及“Del”“Ins”“BackSpace”“End”“Home”等键在ASC表中并没有相对应的表示方法,所以在此只能用键盘扫描码替代。本程序中涉及到的键盘扫描码对应表如表1所示: 键HomeEndBackSpaceDELEnterF1F10扫描码48504b4d474f0e531c3b44表1 扫描对应表 2、STRING:显示指定地址的字符串表 3、WIN:建立一

12、个窗口 这个宏的通用定义如下:win macro opr1,opr2,opr3,opr4,opr5,opr6 mov ah,06h ;BIOS中断10H中的6号功能 mov al,opr1 ;opr1表示上卷行数 mov bh,opr2 ;opr2表示卷入行属性 mov ch,opr3 ;opr3表示窗口左上角行数值 mov cl,opr4 ;opr4 表示窗口左上角列数值 mov dh,opr5 ;opr5 表示窗口右下角行数值 mov dl,opr6 ;opr6表示窗口右下角列数值 int 10hendm 4、POS_CUESE:在指定位置显示光标 5、POS_GET:获取当前光标所在位置

13、2.3 子程序设计及分析 设计初,为了提高程序设计效率以及功能分析的方便,将本次题目要求的基本功能进行了分块处理,并且将其设计成众多子程序,这样便于分工合作,也便于程序的运行及问题排查,并且这样的处理使得主程序结构得以简化,使其主要由创建窗口子程序WIND和编辑处理子程序EDIT构成。 以下列出了本次程序设计中的重要子程序:1、 EDIT:编辑处理子程序子程序EDIT的作用是完成编辑器所有复杂的编辑操作,这其中包括上、下、左、右、回车等编辑键的处理,以及特别的,没有ASC码的功能键的处理。2、 WIND:创建处理子程序3、 COM:输入处理子程序负责对键盘输入进行一定的处理。键盘的输入内容一般

14、分为两类:一类是可在屏幕上显示ASC码字母、数字、符号,另一类是全屏幕编辑键,其中后者较难处理,包括“”“”“”“”方向移动键以及“Del”“Ins”“BackSpace”“End”“Home”等键,以及“F1”等功能键。对于可显示字符而言,其处理方式一样,但是相反,由于功能各不一样,每一个全屏编辑键都需要对应自己独立的处理程序段。因此,我们还需要定义每个功能键的处理方法。“”的功能是将光标向上移一行。处理方法为保持列号不变,行号减一,但是要注意时刻判断光标的位置,当光标到达最上一行时,此种情况下行号不再变化,保持不变。“”的功能是将光标向下移一行,处理方法与上面类似,不同之处为当光标已达到最

15、后一行时,行号不再减一,而是保持所赋值不变。“”的功能是将光标向前移一个字符,当光标处于本行第一列时,特殊处理将行号减一,并将光标移至最后一个字符。如果光标已经位于整个文件的第一个字符位,则显然此时“”不改变光标的位置。“”的功能是将光标向后移一个字符,处理方法与上面相反。回车键的功能是使光标换行,处理方法是将光标的行号加一,列号值为0。4、 FUC_KEY:功能键处理子程序FUC_KEY子程序包括了对“Del”“Ins”“BackSpace”“End”“Home”等编辑功能键的处理。“Home”键在全屏编辑中的功能是将光标移到本行的第一个字符位,因此它的处理为保持其他值不变,而将列号改为0,

16、并同时改变状态栏的坐标显示值即可。“End”键在全屏编辑中的功能是把光标移至本行的最后一个字符位,其处理为保持其他值不变,将列号改为79,并同时改变状态栏的坐标显示值即可。“BackSpace”键:将光标左移并删除一个字符“Del”键:删除一个字符“F10”键:调出帮助说明5、 HELP:帮助子程序HELP子程序作用是显示帮助信息。它的实现,即是指在屏幕的指定位置显示帮助内容的字符串。在设计实现时,首先获取光标的位置,以便帮助结束的时候可以正常返回原光标处。然后使用之前定义的字符串显示帮助信息,当再按F10时,返回到编辑状态。当显示帮助信息时,如果不对屏幕上内容进行处理,显示内容将有可能被破坏

17、,所以在显示帮助信息时,要首先保存(子程序SAVEDISPLAY)当前屏幕显示的内容,等到帮助信)结束返回时,再恢复(子程序BACKDISPLAY)到原编辑状态时的显示内容。以下将对这两个实现保存、恢复的子程序进行介绍。(1)SAVEDISPLAY子程序SAVEDISPLAY子程序用来保存屏幕上显示的内容。计算机屏幕上显示的内容是保存在显示缓冲存储器中的。按照DOS是内存分配方法,显存世和系统内存同意编排地址的。以黑白方式显示时,可以分配地址的范围是B0000HB0FFFH,共4K字节。以彩色显示时,地址范围是B8000HB3FFFH,共16K字节。本次设计采用的显示模式是彩色文本方式,为80

18、*25个字符,每个字符占用两个字节。一个字节用于存放ASCII值,另一个用来存放该字符的属性。屏幕上显示的内容和显示缓冲存储器的内容一一对应。字符显示的属性格式见表2。属性BLRGBIRGB位76543210表2 字符显示属性字节格式注:字母R、G和B表示的对应位分别为红、绿和蓝,每种颜色都是这三原色合成的。位7(BL):设置闪烁。位64:确定字符的背景颜色。位3:设置正常来那个度(为0),或高亮度(为1)。位20:确定字符的前景颜色。本次我们设计的保存屏幕显示内容的方法是将显示缓冲存储器中的内容保存到内存中去。恢复屏幕显示时将保存的内容恢复到显示缓冲存储器中,就实现了屏幕内容的恢复。这个子程

19、序中的主要程序段如下:mov bx,0d ;偏移地址mov cx,3840d ;循环次数loop1:mov ax,0b800h ;显示段首址mov ds,axmov dl,ds:bxmov ax,datamov ds,axmov bakbx,dl ;将显存内容送到内存中 inc bx ;移到下一个存储单元 loop loop1(2)BACKDISPLAY子程序BACKDISPLAY子程序用来将保存在内存中的显示缓冲区的备份恢复到显示缓冲区中,从编程的角度看,BACKDISPLAY是SAVEDISPLAY子程序的逆过程。可以将下面的BACKDISPLAY程序段与SAVEDISPLAY子程序作比较

20、:mov bx,0d ;偏移地址mov cx,3840d ;循环次数loop11:mov ax,datamov ds,ax mov dl,bakbxmov ax,0b800h ;显示段首址mov ds,axmov ds:bx,dl ;将内容送到显存中inc bx ;移到下一个存储单元loop loop116、 MENU_SHOW:显示菜单子程序在本次设计中,需要显示的文件菜单包括新建文件、打开文件、保存文件、另存为和退出项。首先判断是否按下调用菜单的F1键,如果是则显示菜单。由于显示菜单会破坏屏幕显示的内容,所以在显示菜单前要调用SAVEDISPLAY子程序保存当前屏幕内容。然后显示菜单区域的

21、背景颜色,再调用显示字符串宏STRING显示菜单选项。为了使设计更加的新颖,界面更加美观,菜单显示区域还使用了背景阴影。实现的方法是首先显示一个黑色阴影窗口区域。坐标是(2,1) (7,11),然后再向上、向左各偏移一个单位,即(1,0) (6,10)再显示一个黄色窗口区域,二者迭加的结果就是显示一个带阴影的菜单。这个结果用下面两个宏命令实现:win 0,06h,2,1,7,11win 0,65h,1,0,6,107、 NEW:新建文件子程序调用NEW后,用和退出编辑相同的方法,在屏幕上显示一个对话框:Please input file name:,然后等待输入,将输入的字符一次存入PATH所

22、在的数据段内存单元,直到输入回车为止,这样就产生了文件名。8、SAVEAS子程序SAVEAS子程序的功能是在另一个文件中保存当前编辑的内容。9、OPEN子程序OPEN子程序的功能是打开一个已经存在的文件。10、SAVE子程序SAVE子程序的功能是保存当前编辑的内容。首先保存光标位置,调用BACKDISPLAY子程序恢复被菜单的显示界面。最后关闭文件,用BACKDISPLAY子程序恢复编辑界面。11、QUIT子程序QUIT子程序的作用是当选择EXIT退出时,选择保存文件。处理过程和SAVEAS子程序基本相同。12、WIN3:显示日期子程序 13、WIN4:显示行列子程序3 功能实现简介运行执行文

23、件wbbjq.exe,输入文本,利用Del键、BackSpace键、Home键、End键、“”“”“”“”方向移动对文本进行全屏幕编辑。编辑完成后,按F1键激活菜单,下移光标,选择SAVE,输入文件名。也可以选择File菜单的其他菜单项,它们的功能均可实现。按F10键激活帮助,按Esc退出帮助。4 软硬件说明4.1、软件介绍本次课程设计编译环境为微机原理实验平台集成开发环境。本开发环境在本学期的微机原理实验中曾经得到过应用,其可以新建.asm文件并进行编译,其中还有部分教学演示程序,便于我们使用时参照。图1为该集成开发环境的界面截图。图1 微机原理实验平台集成开发环境截图4.2、程序简介及流程

24、图本次设计程序中采用了较多的子程序。而且为了汇编程序的层次,在子程序中,部分子程序中还有多层的嵌套,即一个子程序中可能会调用了其他几个子程序为己用。图2给出了本程序中各子程序的相互调用关系,结合下面的子程序功能分析和软硬件实现部分中的程序流程图,可以更容易地理解我们所设计的程序的结构。 图2 子程序相互调用关系图在设计之初,为了使程序设计思路清晰,便于分工合作,结合参考资料我们初步绘制了本次简易文本编辑器的文件菜单操作程序流程图,图3所示,并且在此基础上,结合之前宏设计、子程序的运用,逐步完成了任务设计。从该流程图可以清晰的看出简易文本编辑器的文件菜单工作流程以及操作原理,任务书所要求的各项功

25、能目标均在上面有标注,便于理解复杂的主程序,对编程过程也起到了很大的帮助。当然,我们所设计的文本编辑器还有其他的功能指标比如按下F10激活帮助,按下ESC退出并返回编辑界面。为了体现设计的自主性和创新性,我们设计了欢迎界面,对编辑器的功能进行了简要的使用介绍便于用户操作,而且,编辑器的背景可以变换不同的颜色,使得设计更加的丰富。图3 文件菜单操作流程图5 程序调试及运行结果5.1 文本编辑器界面运行程序后会生成如图3所示的欢迎界面窗口。图3 欢迎界面窗口图5.2 编辑界面 按下Enter键,进入如图4所示的编辑界面。图4编辑界面图5.3 F1菜单激活界面 在编辑界面内,当按下F1键时,出现如图

26、5所示的菜单激活界面。图5 菜单激活界面图当按下F1键时,弹出文件菜单,通过向下方向键进行菜单的选择,当选中后菜单背景会自动变成蓝色,如果要进入相应的功能界面则只需直接按回车键。其中具体的功能包括新建文件、打开文件、保存文件、另存为文件以及退出窗口。特别指出,由于技术原因在进行选择时,只能用向下方向键。具体界面如图4所示。5.4 F10激活帮助功能当操作者按F10时,界面会显示出帮助窗口,在帮助窗口会有友情提示及比较详细的操作说明,来引导操作者使用这个简易的文本编辑器。具体的提示内容包括如何调出菜单、如何激活帮助菜单、如何退出窗口等。在界面上还有具体的操作日期以及可操作的界面的范围。具体的界面

27、如图6所示。图6 帮助界面图6 心得体会时光如梭,一学期的学习已经步入尾声,回首这学期所学专业课程,微机原理与接口技术可谓是其中难度相对较大的一门,因为它与本专业领域契合最紧,而且相应的理论知识较为丰富,这无疑是在考验我们的掌握能力以及知识整合能力,而且还在一定程度上慢慢的锻炼着我们的专业分析、解决问题能力。同时,在学期末安排的本次微机原理与接口技术课程设计,更是为我们提供了一个回顾知识,巩固知识的机会,让我们得以独立的完成专业知识的实际应用,进而更好的掌握。所以,经过本次课程设计,相信每个同学都会有不小的收获。那么下面,我将分几个方面对自己的本次体验做一下小结。收获一、对微机原理与接口技术基

28、础理论知识的深层次认知。如果没有机会将知识应用于实际,那么我们所学的知识必然只能是纸上谈兵,本次课设,我们得以有机会将课堂的知识拿来自己运用,这样,抽象的知识也会变得具体,自然对知识的领悟就会上一层次。收获二、分析、解决问题的综合能力有一定程度的提高。就像日常生活一样,我们会时不时的遇见措手不及的问题,但是不论如何,我们还是得坦然面对,度过难关。所以当我们碰到困难的时候,首先要做的就是勇敢面对。我很庆幸自己没有因为看见题目而散失信心,我相信经过努力,一定可以找到解决问题的办法。此外,经过本次课设,还使得我面对问题时提醒自己要全面分析,切不能以偏概全,主观臆断。收获三、工欲善其事,必先利其器。本

29、次课设中,要想处理问题有效率,就必须提高自己的综合能力,这也正是本句俗语的体现。除过需要一定的知识理论外,本次课设,如果想要出色的完成,就必须具备其他诸如信息整合能力、办公软件操作能力等。这一点,也让我发现了自己的差距所在,以便日后更全面的发展。当然,本次课设要求题目为简易文本编辑器的设计,通过不断的更正与修改,以及同学的帮助,基本完成了要求的内容,达到了本次课程设计的目标。参考文献1 周佩玲,彭虎.微机原理与接口技术. 北京:电子工业出版社,20072 宋杰.微机原理与接口技术课程设计.北京:机械工业出版社,20053 戴梅萼,史嘉权.微型计算机技术及应用.北京:清华大学出版社,20084

30、于海生.微型计算机控制技术.北京:清华大学出版社,20085 范会敏.微型计算机原理及接口技术应用.北京:科学出版社,2005附录:CLEAR MACRO MOVAH,06H;功能号为6 MOV AL, 0 ;清窗口 INT 10H ENDMred_chr macro ;读取字符宏定义 mov ah,0 int 16hendmstring macro p1 ;输入字符光标 mov ah,9 lea dx,p1 int 21hendmwin macro opr1,opr2,opr3,opr4,opr5,opr6 ;建立窗口 mov ah,06h mov al,opr1 mov bh,opr2 m

31、ov ch,opr3 mov cl,opr4 mov dh,opr5 mov dl,opr6 int 10hendmpos_curse macro op1,op2,op3 ;定义光标位置 mov ah,2 mov bh,op1 mov dh,op2 mov dl,op3 int 10hendmpos_get macro ;显示光标位置 mov ah,03h mov bh,0 int 10hendmdata segment ;定义数据段welc db_#*_,13,10db_*#_ ,13,10db_#_ WELCOME ,13,10db_#_*#*_,13,10db_#_*#_,13,10db

32、_#_*#_ Welcome to use the text editor !,13,10db_#*_#*_,13,10db_#*_ ,13,10db_#_ Del: delete the content behind.,13,10db_#=_ ,13,10db_=#_ Backspace:delete the content forward.,13,10db_*#=_ ,13,10db_*#_ End:move to the end-of-line.,13,10db_*#_ ,13,10db_#_ Home :move to the begin-of-line. ,13,10db_#_ ,1

33、3,10db_=#*_ Use Direction keys to move the cursor.,13,10db_#_ ,13,10db_#_ ,13,10db_#_ *Press Enter to continue!* ,13,10,13,10,13,10,13,10dbThe Copyright By Wang Peng and Li Liangbin !,$ menu db File Edit Help $ mass_1 db F1 Activate file F10 Activate help,$ manu_1 db New ,13,10,$ manu_2 db Open ,13,

34、10,$ manu_3 db Save ,13,10,$ manu_4 db Save as ,13,10,$ manu_5 db Exit ,$ handle dw ? message1 db Please input file name:,$ message2 db Please input save file name:,$ message3 db Please input open file name:,$ message4 db *The file is not saved! Save it now? (Y/N)*: ,$ path db 50 dup(0),$ buffer db

35、2000 dup(?) bak db 3850 dup(0) line db ? row db ? char db ? help_mas1 db welcome to use editor! $ ;帮助内容 help_mas2 db This is the first active help! $ help_mas3 db good luck! $ help_mas4 db =$ help_mas5 db Press F1 to activate File. $ help_mas6 db You can use DOWN key to choose the MenuItem $ help_mas7 db Press F10 to show the help massage. Press Esc to Quit$ date db today ?/?/,$;调用日期

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号