1、第一章汇编语言程序设计过程21-1 程序设计过程概述2一、源程序的编辑2二、源程序的汇编2三、链接2四、程序调试21-2 汇编程序开发环境概述3一、集成环境3二、DOS环境4第二章 调试工具DEBUG62-1 DEBUG程序的调用62-2 DEBUG命令及使用方法6一、显示存储单元命令D(Dump)6二、修改存储单元内容命令E(Enter)7三、检查和修改寄存器内容命令R(Register)8四、汇编命令A(Assemble)9五、反汇编命令U(Unassemble)9六、运行命令G(Go)10七、跟踪命令T(Trace)11八、退出命令Q(Quit)。11九、其它命令11第三章 EDIT编辑
2、器13一、DOS系统EDIT的基本使用方法13二、用EDIT建立源文件的推荐格式17三、WINDOWS下编辑源文件的方法17第四章 汇编程序MASM的使用方法19一、用MASM汇编源文件的一般格式19二、用MASM汇编源文件的推荐格式20第五章链接程序LINK的使用方法21一、用LINK链接程序的一般格式21二、用LINK链接程序的推荐格式21第六章集成开发环境使用方法23一、编辑源文件23二、汇编24三、链接24四、程序运行24第七章 BIOS中断和DOS功能调用267-1 BIOS和DOS中断类型267-2 DOS系统功能调用方法27一、DOS键盘功能调用28二、DOS显示功能调用30三、
3、程序结束系统功能调用32第一章汇编语言程序设计过程本章介绍汇编语言程序设计的基本步骤,主要目的是了解汇编程序的开发过程,各步骤的详细介绍请参考有关章节。1-1 程序设计过程概述在学习了高级语言如C/C+程序设计后,程序员对程序的开发过程已经建立了清晰的程序设计步骤,即编辑、编译、链接、运行和调试。同样,在进行汇编语言程序设计开发时,也需要类似的步骤,图1.1给出了汇编语言程序设计的基本步骤。文本编辑(EDIT.COM)创建源文件(文件名.asm)汇编程序(MASM.EXE)建立目标文件(文件名.obj)链接程序(LINK.EXE)形成可执行文件(文件名.exe)调试程序(DEBUG.EXE)得
4、到应用程序出错返回出错返回图1.1 汇编语言程序设计的过程一、源程序的编辑用户首先要用文本编辑器产生自己的汇编语言源程序(扩展名为ASM的文件),而汇编语言源程序就是用语句(MASM中可使用伪指令语句和指令性语句)编写的一种文本文件。而编辑文本文件的工具较多,如EDIT、Turbo C2.0、Windows记事本和MASM集成环境等。具体选择用那一种,按用户的习惯决定。二、源程序的汇编汇编语言源程序是不能为计算机直接识别的,所以用户要用汇编程序(如MASM.EXE)把源程序翻译成由机器代码构成的浮动目标文件(扩展名为OBJ的文件),目标文件虽然已经是二进制目标文件,但它还不能直接执行。三、链接
5、用户程序要想成为可执行程序必须要经过链接程序(LINK.EXE)把目标文件与库文件合成一个可执行程序(扩展名为EXE或COM的文件),这个文件在DOS操作系统下只要输入文件名就可以执行。四、程序调试链接成功后的可执行文件虽说可以运行,但还不一定是用户所需的最终应用程序,当程序运行后出现诸如结果不对或是结果输出格式不妥等非语法错误时,这就需要程序员重新对自己的程序进行更加细致地分析和检查,找出原因并解决它。有时程序员还想进一步了解程序执行过程中的其它细节,诸如CPU寄存器内容的变化过程、堆栈变化过程、内存内容的变化过程等,这就需要借助调试工具来完成,也就是图1.1中程序设计过程的最后一步。汇编语
6、言程序设计过程中常用的调试工具就是DEBUG。以上过程中,当汇编或链接后出现错误提示时,程序员需要返回到最初的步骤即编辑状态下对源文件进行检查和修改,然后再逐步进行。 总结上述内容,汇编程序的开发过程可分为以下步骤: (1)用文本编辑器创建源文件(文件名.asm); (2)用汇编程序建立目标文件(文件名.obj);(3)用链接程序形成可执行文件(文件名.exe);(4) 在操作系统下直接执行或用DEBUG调试可执行文件。1-2 汇编程序开发环境概述前面我们已经简单地叙述了汇编语言程序从建立到执行的过程,要完成这一过程,在计算机系统中就要相应的环境或程序,DOS环境下一般要有编辑程序、汇编程序、
7、链接程序和调试程序。基于Windows的开发环境多为集成开发工具,如VisualASM、WenMASM等。在实际开发应用中程序员可按照各自的条件灵活开发环境。以下简介两种开发环境的基本应用方法。一、集成环境用于汇编语言程序开发的集成环境种类较多,其共有的基本特点就是,开发过程的各步骤功能都基于同一平台下。图1.2给出了VisualASM的界面示例。图1.2 VisualASM界面图1.2是已打开源文件(Lei11.asm)的VisualASM界面示例。可见,VisualASM与Windows环境下的其它语言开发平台风格相似,对于使用过Windows环境下其它语言开发平台(如Visual C+6
8、.0)的用户来说,其使用方法易于掌握。二、DOS环境在DOS环境下,要想完成汇编程序的开发过程,一般要有如下文件:文本编辑器 MASM.EXE LINK.EXE DEBUG.EXE以下以使用编辑程序EDIT为例概述汇编程序的开发基本步骤。1) 创建ASM文件若用EDIT创建源程序,当用户源文件名为MOVES时,其DOS下的命令格式为:C:EDIT MOVES.ASM 8(回车) 这就可以在C盘根目录下,创建以MOVES.ASM为文件名的源文件。用EDIT创建源文件的详细使用方法请参考第三章。2) 用MASM程序产生OBJ文件 源文件创建后,就要用汇编程序对源文件进行汇编,汇编后产生二进制目标文
9、件(OBJ文件),其操作与汇编程序回答如下: C:MASM MOVES 8(回车) Microsoft(R)Macro Assmbler Version 500 Copyright(C)Microsoft Corp l981-1985,1987AH rights reserved Object filename movesobj: Source Listing NULLST: Croes referencsNUL.CRF: 0 Warning Errors0 Severs Errors这样汇编正确后产生的目标文件(movesObj),就保存在DOS的当前路径下。汇编程序的输入文件是ASM文件,
10、按以上DOS命令格式进行时,其输出文件可以有三个,表示于回答的中间三行。第一个是OBJ文件这是我们汇编的主要目的,这个文件我们是需要的对于MOVESOBJ后的回答应按 “8 ”键,这样就在C盘根目录下建立了这一目标文件。第二个是LST文件,称为列表文件。这个文件同时列出源程序和机器语言程序清单,并给出符号表,因而可使程序调试更加方便。这个文件是可有可无的,如果不需要则对 NULLST后的回答应按 “8 ”键;如果需要这个文件,则可回答文件名,这里是MOVES。这样MOVES.LST就建立起来了。汇编程序能提供的第三个文件是CRF文件,这个文件用来产生交叉引用表REF,对于一般程序不需要建立此文
11、件,所以对于第三行的NULCRF用 “8 ”来回答,这样就完成了汇编过程。以后用户若要用到LST文件和CRF文件,请参考汇编程序的相关资料。 3) 用LINK程序产生EXE文件 汇编程序已产生出二进制的目标文件(OBJ),但OBJ文件并不是可执行的文件,还必须使用链接程序(LINK)把OBJ文件转换为可执行的EXE文件。如果一个程序是由多个模块组成时,也应该通过LINK把它们链接在一起,操作方法及机器回答如下:C:LINK MOVES 8(回车) Microsoft(R) Overlay Linker Version 3.60 Microsoft(C) Microsoft Corp l983-
12、1987All rights reserved Run FileMOVES.EXE:8 List FILENUL.MAP:MOVES 8 Libraries.LIB:8 LINK:warning L4021:No STACK segmentThere was 1 error detectedLINK程序有两个输入文件OBJ和LIB。OBJ是我们需要链接的目标文件,LIB则是程序中需要用到的库文件,如无特殊需要,则应对LIB回答 “8 ”。LINK程序有两个输出文件,一个是后缀为EXE的文件,这当然是我们需要的,应对MOVES.EXE:回答 “8 ”,这样就在在DOS的当前路径下上建立了该可执行
13、文件。LINK的另一个输出文件为MAP文件,它是链接程序的列表文件,又称为链接映象(Link map),它给出每个段在存储器中的分配情况。下面给出了MOVES.MAP文件。Warning :No STACK segment Start Stop Length Name C1ass 0000H 001DH 001EH CODE 0020H 0047H 0028H DATA0050H 0077H 0028H EXTRAOrigin GroupProgram entry point at 0000:0000链接映象MOVES.MAP文件链接程序给出的无堆栈段的警告性错误并不影响程序的执行,所以,到此
14、为止,链接过程已经结束,可以执行MOVES程序了。4) 程序的执行和调试 在建立了EXE文件后,就可以直接在DOS下执行程序,如下所示(假设MOVES. EXE就在C盘当前路径下): C:MOVES 8(回车) C:程序运行结束并返回DOS。如果用户要想在计算机的显示器屏幕上显示相关的运行结果,那么程序中必须要有相关显示输出的指令,否则显示器屏幕上不会有运行结果。你怎么知道程序执行的结果是否正确呢?此外,大部分程序必须经过调试阶段才能纠正程序执行中的错误,特别是算法错误。那么又怎样来调试程序呢?这就要使用DEBUG程序。这里我们只介绍DEBUG的进入。要想对我们前面已建立的程序MOVES.EX
15、E进行调试,就要先把它装入DEBUG,操作如下:C:DEBUG MOVES.EXE 8DEBUG是以 作为提示符,出现后表明用户已进入DEBUG。有关DEBUG的各种命令和使用方法请阅读第二章。 初学汇编语言程序设计的读者必须先学会DEBUG的使用。虽然一开始要花费一些时间去学习有关命令,但它在调试程序时对你的帮助将是很大的,特别是一些较大的程序没有DEBUG的帮助,调试将会是十分困难的。注意:以上四步示例都是以所用工具在C盘根目录下为前提条件。第二章 调试工具DEBUGDEBUG.EXE是DOS提供的用于调试可执行程序的工具软件,是汇编语言程序设计中常用的调试工具。在DEBUG环境下,不但可
16、以调试经汇编、链接后生成的可执行程序,也可以编写简单的程序。在 DEBUG中,通过直接检查和修改内存单元及寄存器的内容,装入、存储及启动运行程序,使用户更加接近计算机的内部。熟悉掌握DEBUG调试命令的使用,还能为以后的软件开发工作带来更加灵活、方便的手段。本章要点: D、E、R、A、U、T、G和Q命令必须熟练掌握,I、O、F、N、L和W等命令作为参考练习。2-1 DEBUG程序的调用在DOS的提示符下,可键入命令:C:DEBUG X:PATHFILENAME.EXTPARM1PARM2 其中: X:_指定驱动器,任选项,例如:C:。 PATH_为路径,任选项,例如:USER。 FILENAM
17、E_为被调试文件的名字,任选项,例如:WANG。 EXT_为扩展名,任选项,例如:EXE。 PARM1PARM2_为运行被调试文件时所需要的命令参数,任选项。 如用户键入文件名,则DOS将指定的文件装入存储器中,用户即可对其进行调试。如果未键入文件名,则用户可以用当前存储器的内容工作,或者用DEBUG命令N和L把需要的文件装入存储器后再进行调试。在DEBUG程序调人后,将出现提示符,此时就可用DEBUG命令来调试程序。注意:1.推荐的DEBUG程序的调用格式为: C:DEBUG 文件名.EXE 8(DEBUG提示符)这里调用文件是在C盘根目录下的。若用户EXE文件在其它路径下,文件名前要注明文
18、件的路径。2. 也可以不输入文件名而直接进入DEBUG进行一般的编程和调试,但退出或死机后再进入,则以前所做的一切均无效。DEBUG不能生成EXE文件。3. DEBUG状态下显示的数后虽然没带H,但系统均默认为16进制数。2-2 DEBUG命令及使用方法DEBUG提供了许多命令,如:D、E、R、A、U、G、T、Q、P、N、C、H、S、I、O、M、L、W、F等命令。课程中最常用到的是D、E、R、A、U、G、T、Q命令。进入DEBUG后(以提示), 就可在DEBUG提示符后输入命令。若命令或命令格式不符合DEBUG的规则,则提示出错信息“error”。下面就常用命令的使用进行说明。一、显示存储单元
19、命令D(Dump) 命令格式:(1)、Daddress (2)、Drange (3)、D 功能:显示存储单元内容。其中: address为段寄存器名:位移段地址:位移 range范围是指到指定的连续单元。格式(3)显示CS:100起始的80H字节的内容。 例如,按指定范围显示DS段100H120H存储单元内容的方法为: D DS:100 120 818E4:0100 C7 06 04 02 38 01 C7 06-06 02 00 02 C7 06 08 02 G8.G.G.18E4:0110 02 02 BB 04 02 E8 02 00-CD 20 50 51 56 57 8B 37 .h
20、.MPQVW.718E4:0120 8B见到的这些显示结果实际是由三部分内容构成:左边是逻辑地址,“:”号左边是当前DS段地址,“:”号右边的0100至0120是偏移地址、,范围为100H120H。偏移地址对应的都是该行第一个单元。 中间是内存各单元里的内容,C7、06. 是用十六进制表示每个字节中的内容。“-”只是中间隔离号。右边是以ASCII字符表示的对应每个字节的内容,其中.为不可显示字符。若再用D命令显示DS段的内容,且只指定首地址,则显示DS段从指定首地址开始的80H(8行16个=128)个字节的内容。如果不指定首地址,接着用D命令显示: D 8则紧接着上次显示的后80H(128)个
21、字节的内容。若要显示其它段的内容,必须指定所在段的段地址或段寄存器名以及偏移地址。注意:推荐的D命令格式为: D 段名:起始地址 8 如: D DS:100 8 就可显示DS段从100H 单元开始的128个字节的内容。二、修改存储单元内容命令E(Enter) 命令格式:(1)、E address list (2)、E address 功能:(1)用给定的1ist内容表来替代指定范围的存储单元内容。 (2)从address开始逐个修改内存单元的内容,每键入一个修改内容之后,按键完成修改工作,直到新地址出现后按“8 ”结束E命令操作。 例如: E DS:100 F3,XYZ,8D 8 其中F3、X
22、、Y、Z和8D各占一个字节,该命令是用这五个字节来替代存储单元0100H到0104H的原先的内容。注意:推荐的E命令格式为: E 段名:起始地址 8例如: E CS:100 8(假设CS=18E4,CS段的100H单元里的内容为89H) 则显示为:18E4:0100 89._ 如果需要把该单元的内容修改为7BH,则用户可以直接键入7B,再按“空格”键可接着显示下一个单元的内容,如下:18E4:0100 89.7B 1B 这里89为100H单元的原内容,7B为该单元修改后的内容,1B为101H单元的原内容。这样,用户可以连续修改相继单元的内容,直到用“8 ”键结束该命令为止。三、检查和修改寄存器
23、内容命令R(Register)命令格式:(1) R (2) R register name (3) RF格式(1)功能:显示CPU内所有寄存器内容、标志位状态以及将要执行的下条指令的地址、代码及汇编形式等。例如: R 8于是DEBUG显示如下内容:AX=0000 BX=0000 CX=010A DX=0000 SP=FFFF BP=0000 SI=0000 DI=0000DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=0100 NV UP DI PL NZ NA PO NC18E4:0100 C70604023801 MOV WORD PTR0204,0138 DS:02
24、04=0000其中DS、ES、SS和CS的内容均为18E4H,这些值若事先没进行专门设置的话,可认为是系统自行安排的默认值,各台机器可不相同。最后一行是当前IP所指的一条指令(可以是已存在的,或是由随机数翻译成的),本例中这行有四部分内容:逻辑地址(18E4:0100);一组机器代码(C70604023801);这组机器代码对应的指令(当前IP所指的指令:MOV WORD PTR0204,0138);该条指令执行前,DS:0204所指的那个字的内容为0000(DS:0204=0000)。不是每条指令都有所对应的内容,只是与内存操作相关的指令有。格式(2) 功能:显示和修改指定的寄存器内容例如,
25、 R AX 8系统将响应如下:AX F1F4.即AX寄存器的当前内容为F1F4H,如不修改则按“8 ”键,否则,可键入欲修改的内容。 例如: R BX 8 系统将响应如下:BX 0369如在后键入059F,则把BX寄存器的内容修改为059FH。格式(3) 功能:显示和修改标志位状态。例如: RF 8 系统将响应:OV DN EI NG ZR AC PE CY-此时,如不修改其内容可按Enter键,否则,可键入欲修改的内容,如:OV DN EI NG ZR AC PE CY-PONZDINV即可,可见键入的顺序可以是任意的。注意:RF命令要慎重使用,无目的的修改会造成CPU状态的混乱!对状态标志
26、寄存器FLAG,其显示内容说明如下:标志位状态显示形式溢出标志OF方向DF中断IF符号SF零ZF辅助进位AF奇偶PF进位CF有/无减/增开/关负/正零/非零有/无偶/奇有/无OV/NVDN/UPEI/DING/PLZR/NZAC/NAPE/POCY/NC四、汇编命令A(Assemble) 命令格式:(1) Aaddress (2) A其中 address 为 “段寄存器名:位移地址”或“段地址:位移地址”功能:该命令许键入汇编语言语句,并能把它汇编成机器代码,相继地存放到指定地址开始的存储区中。A命令隐含CS段,即A命令后可不用指定段名。推荐格式: A 开始地址 8即在CS段里,从“开始地址”
27、起,用户自行输入自己的指令。例如: A 100 818E4:0100 PUSH DS 818E4:0101 XOR AX, AX 818E4:0103 PUSH AX 8.这就是从CS:0100H单元开始输入汇编指令。每条指令输完后按 “8 ”键,显示下条要输入的指令的起始逻辑地址,且等待再输入指令。若要结束输入指令再按“8 ”键,就跳出A命令,显示“-”。注意:因为在DEBUG中把键入的数字均当作十六进制数,所以,如要键入其它进制数,则其后应加以说明,如十进制数:100D。五、反汇编命令U(Unassemble)命令格式:格式(1) U格式(2) Uaddress格式(3) Urange 其
28、中:address为段地址寄存器名:位移或为段地址:位移,一般指代码段寄存器或代码段基地址,此时,只添写位移量即可。 range是指反汇编的范围。 功能:从指定地址开始,反汇编32个字节,既将机器码翻译成汇编语句。如果address被省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。格式(3)Urange对指定范围内的存储单元进行反汇编。下例为调入程序EXP5.EXE后,不同格式U命令的使用:C:DEBUG EXP5.EXE 8 U 818E4:0000 1E PUSH DSIlE4:0001 33C0 XOR AX,AX18E4:0003 50 PUSH AXE8E4:00
29、04 B88AOB MOV AX,OB8AE8E4:0007 8ED8 MOV DS,AX18E4:0009 890000 MOV CX,000018E4:000C 8BlE0000 MOV BX,000018E4:0010 8B07 MOV AX,BX18E4:0012 A9FFFF TEST AX,FFFF18E4:0015 7407 JZ 001E18E4:0017 7901 JNZ 001A18E4:0019 41 INC CX18E4:001A D7E0 SHL AX,118E4:001C EBF4 JMP 001218E4:001E 890E0400 MOV 0004,CX U 8
30、18E4:0022 . ( 对指定范围内的存储单元进行反汇编:) U 100 10C 818E4:0100 C70604023801 MOV WORD PTR0204,013818E4:0106 C70606020002 MOV WORD PTR0206,020018E4:010C C70608020202 MOV WORD PTR0208,0202最后用的U命令是把以0100、0106和010CH单元为首地址的三条指令反汇编。以上各段例子中的左边部分为逻辑地址,中间加黑部分为指令反汇编后对应的机器码,右边部分为汇编指令助记符。注意:1. U命令隐含CS段。2推荐使用的U命令格式为: U 开始
31、地址 83.用U命令可以非常方便地查看用户的程序段在CS段中的位置和占据内存的大小。如上例后三条指令构成的程序段,其位置是:18E4:100H111H,占据内存的大小为:18个字节。六、运行命令G(Go)命令格式:(1) G (2) Gaddress (3) Gaddressbreak point1,break point2. 其中,address为指定的运行的起始地址,如不指定则从当前的CS:IP开始运行。break point1、break point2.等为断点地址。 功能:格式(1)从当前的CS:IP指示的地址开始运行。 格式(2)从address指示的地址开始运行。 格式(3)从ad
32、dress指示的地址开始运行,当指令执行到breakpoint断点时,就停止执行并显示当前所有寄存器及标志位的内容,和下一条将要执行的T指令。例如: G 8指定程序从当前的CS:IP开始运行。例如: G = CS:100,10F 8指定程序从当前的CS:0100H开始运行,运行到 010FH处中断。注意:1. G命令隐含CS段。2推荐使用的G命令格式为: G = 开始地址,结束地址 8 开始地址_要执行的程序段开始执行处那条指令的首地址。结束地址_要执行的程序段最后一条指令的下条某指令的首地址。3一般情况下使用G命令时,“结束地址”不能省略,且该地址要为某条指令的首地址。否则易造成死机现象。4
33、. 使用G命令时,与U命令配合使用可方便、准确地确定开始地址和结束地址。七、跟踪命令T(Trace)有两种格式,形式如下: 格式(1) T=address格式(2) T;addressValue功能:格式(1) 逐条指令跟踪。该命令从指定地址起执行,执行一条指令后停下来,显示所有寄存器内容及标志位的值,如: T=100 8 。若没有指定地址则从当前的CS:IP开始执行。格式(2) 多条指令跟踪。该命令从指定地址起执行,执行n条指令后停下来,n由value指定。注意:1. T命令隐含CS段。2推荐使用的单步跟踪T命令格式为: T = 开始地址 8. T 8. 其中:开始地址要执行的那条指令的起始
34、地址。当第一条带开始地址的T命令执行后,接着逐条执行T命令时,以后的T命令可不再带起始地址。这是因为IP总是指向下一条将要执行的指令。八、退出命令Q(Quit)。 命令格式为: Q 8功能:退出DEBUG,返回DOS。本命令最简单,但因无存盘功能,退出DEBUG后,以前的调试内容和结果均不保存,如需存盘应先使用W命令。以下是我们课程中不常用的部分命令使用说明,供用户参考。九、其它命令以下简介DEBUG的其它部分命令,供读者参考使用。输入命令I(Input)命令格式:I 端口地址 功能:往指定端口输入一个字节并显示。输出命令O(Output)命令格式:O 端口地址 字节数据功能:把一个字节数据输
35、出到指定的端口。填写内存命令F(Fill) 命令格式:Frangelist 功能:将1ist单元内容表中的内容逐个填入指定的范围,单元内容表中的内容用完后重复使用。 例如: F 04BA:0100 110 5F,XYZ,8D 8将5F、X、Y、Z和8D填写到04BA:0100 0110单元中。如果list中的字节数超过指定的范围,则忽略超过的项;如果LIST中的字节数小于指定的范围,则重复使用LIST填入,直到填满指定的所有单元为止。命名命令N(Name) 命令格式:N filespecs 其中filespecs文件标识符的格式可以是: x:pathfilename.ext 功能:该命令把fi
36、lespecs指定的文件标识符格式化在FCB文件控制块中,以便在其后用L或W命令把文件装入或存盘。 例如: N EXP5-3.EXE 8 L 8于是把文件EXP5-3.EXE装入存储器。装人命令L(Load) 有两种格式,形式如下: (1)、命令格式为:Laddressdrive sector1 sector2功能:把磁盘上指定扇区范围的内容装入到address地址开始的存储器中。 (2)、装入指定文件, 命令格式为:Laddress功能:此命令装入FCB文件控制块中所指定的文件。如末指定地址,则从0100开始的存储区装入。写命令W(Write) 有两种格式,形式如下: (1)、把数据写人磁盘
37、的指定扇区。 命令格式为: W address drive sector1 sector2 (2)、把数据写入指定的文件中。命令格式为: Waddress此命令把指定的存储区中的数据写入由文件控制块所指定的文件中。如末指定地址则数据从CS:0100开始,要写入文件的字节数应先放人BX和CX中。第三章 EDIT编辑器本章详细介绍了DOS环境下全屏幕编辑器EDIT的具体使用方法。计算机除了能够进行数字和数据处理外,它也擅长于管理文本,为此可使用许多不同的字处理程序所有的这些字处理程序都包含一些标准的功能:创建文件、编辑文件和删除文件等,它们也应包括一些最基本的文本操作:插人、修改、删除字符随着编辑
38、器的进一步完善,它们还提供了一些更先进的功能,对已存在的文本中进行复制、移动、搜索。有些程序甚至还包括先进文档资料管理特性,例如留空,光标跳格控制、标题和脚注功能,以及具有多列的特性。DOS包括一个称为EDIT的全屏幕编辑器,它的功能在所有字处理软件中居中,因为它没有提供页处理和排版控制(例如留空,标题,分列等)功能,它主要用于那些不需要这些功能的任务中。EDIT程序是一个用于建立与修改文本文件的全屏幕菜单控制的编辑器,你可以用它来创建任何文本类的数据文件,包括可用于其它应用程序的信息文件。在DOS中,EDIT程序主要有两个方面的用途,第一为你创建多种类型的源程序或源文件,第二创建批文件,以便
39、有助于配置你的DOS系统。本章解释应如何启动EDIT程序,你将学会如何创建新的文本文件及其如何输入文本。然后将学习大多数重要的文本编辑技术,这些技术包括最普通的插入新文本、修改已存在的文本、删除不再需要的文本等技术。另外,还可以学习一些更复杂的技术:如移动、复制、搜索和替换文本等。一、DOS系统EDIT的基本使用方法在MS-DOS提示符下只键入EDIT,“回车”进入后在其它步骤里再起文件名。进入格式如下:C:EDIT 8(或D:USEREDIT 8 _某些机器开始默认的路径。)1、显示 当键入EDIT命令再“8 ”后,在屏幕上显示EDIT的一个菜单,在屏幕中央有一个对话窗口,窗口显示如下:Fi
40、le Edit Search Option HelpWelcom to the MS-DOS EditorCopyright (C) Microsoft Corporation,1997-1992.All rights reserved中间对话窗口告诉你:如果想阅览“服务指南”就要按“8 ”键,如果想输入程序或文本就按“ESC”键(在键盘的左上角)。现在按“ESC”键,即可创建新文件,屏幕中央的对话框消去,进入编辑状态即可输入程序。如果在对话框下选择了阅览“服务指南”,想要返回编辑状态,请按“ESC”键。当进入编辑状时此时屏幕显示如下:File Edit Search Option Help注
41、意:此时,在菜单条下面的标题行显示“Untitled”,这表明还没有指定文件名,以后要将文本以文件形式存人磁盘时,必须要指定一个文件名,这一工作将会在下面学习到。2、功能键 当进入编辑状态时即可在空白区输入程序或文本,在编辑程序时可能要使用控制光标键以及删除文本键,将光标移到希望的位置,或对错误地方进行修改。各键功能列表如下: 1)控制光标移动键: 按键功能 光标左移一个字符 光标右移一个字符 光标上移一行 光标下移一行 光标后移8个字符 光标移向行首 光标移向行尾 光标移向文本首行 光标移向文本末行以上操作也可用鼠标完成。 2)文本修改键: 按键功能 删除光标处的字符 删除光标左边的字符 删除光标所在的字 删除光标所在的行 删除从当前光标到行尾之间的所有字符 剪切被选中的文本3、使用file下拉菜单当你调入EDIT后,在屏幕上方有一EDIT提示,显示有file、Edit、Search、Optio