转自:http://wenku.baidu.com/view/93aaf5758e9951e79b8927d8.html
DOS常用命令
1.3.1、目录操作类命令:
1.3.1.1、MD——建立子目录
1.功能:创建新的子目录
2.类型:内部命令
3.格式:MD[盘符:][路径名]〈子目录名〉
4.使用说明:
(1)“盘符”:指定要建立子目录的磁盘驱动器字母,若省略,则为当前驱动器;
(2)“路径名”:要建立的子目录的上级目录名,若缺省则建在当前目录下。
例:(1)在C盘的根目录下创建名为FOX的子目录;(2)在FOX子目录下再创建USER子目录。
C:\>MD FOX (在当前驱动器C盘下创建子目录FOX)
C:\>MD FOX \ USER (在FOX 子目录下再创建USER子目录)
1.3.1.2、CD——改变当前目录
1.功能:改变当前目录
2.类型:内部命令
3.格式:CD[盘符:][路径名][子目录名]
4.使用说明:
(1)如果省略路径和子目录名则显示当前目录;
(2)如采用“CD\”格式,则退回到根目录;
(3)如采用“CD..”格式则退回到上一级目录。
例:(1)进入到USER子目录;
(2)从USER子目录退回到子目录;
(3)返回到根目录。
C::\>CD FOX \USER(进入FOX子目录下的USER子目录)
C:\FOX\USER>CD.. (退回上一级根目录)
C:\FOX>CD\ (返回到根目录)
C:\>
1.3.1.3、RD——删除子目录命令
1.功能:从指定的磁盘删除了目录。
2.类型:内部命令
3.格式:RD[盘符:][路径名][子目录名]
4.使用说明:
(1)子目录在删除前必须是空的,也就是说需要先进入该子目录,使用DEL(删除文件的命令)将其子目录下的文件删空,然后再退回到上一级目录,用RD命令删除该目录本身;
(2)不能删除根目录和当前目录。
例:要求把C盘FOX子目录下的USER子目录删除,操作如下:
第一步:先将USER子目录下的文件删空;
C:\>DEL C:\FOX\USER\*.*
第二步,删除USER子目录。
C:\>RD C:\FOX\USER
1.3.1.4、DIR——显示磁盘目录命令
1.功能:显示磁盘目录的内容。
2.类型:内部命令
3.格式:DIR [盘符][路径][/P][/W]
4.使用说明:
(1)/P的使用:当欲查看的目录太多,无法在一屏显示完屏幕会一直往上卷,不容易看清,加上/P参数后,屏幕上会分面一次显示23行的文件信息,然后暂停,并提示::Press any key to continue
(2)/W的使用:加上/W只显示文件名,至于文件大小及建立的日期和时间则都省略。加上参数后,每行可以显示五个文件名。
1.3.1.5、PATH——路径设置命令
1.功能:设置可执行文件的搜索路径,只对文件有效。
2.类型:内部命令
3.格式:PATH[盘符1]目录[路径名1]{[;盘符2:],〈目录路径名2〉…}
4.使用说明:
(1)当运行一个可执行文件时,DOS会先在当前目录中搜索该文件,若找到则运行之;若找不到该文件,则根据PATH命令所设置的路径,顺序逐条地到目录中搜索该文件;
(2)PATH命令中的路径,若有两条以上,各路径之间以一个分号“;”隔开;
(3)PATH命令有三种使用方法:
PATH[盘符1:][路径1][盘符2:][路径2]…(设定可执行文件的搜索路径)
PATH:(取消所有路径)
PATH:(显示目前所设的路径)
1.3.1.6、TREE——显示磁盘目录结构命令
1.功能:显示指定驱动器上所有目录路径和这些目录下的所有文件名。
2.类型:外部命令
3.格式:TREE[盘符:][/F][》PRN]
4.使用说明:
(1)使用/F参数时显示所有目录及目录下的所有文件,省略时,只显示目录,不显示目录下的文件;
(2)选用>PRN参数时,则把所列目录及目录中的文件名打印输出。
1.3.1.7、DELTREE——删除整个目录命令
1.功能:将整个目录及其下属子目录和文件删除。
2.类型:外部命令
3.格式:DELTREE[盘符:]〈路径名〉
4.使用说明:该命令可以一步就将目录及其下的所有文件、子目录、更下层的子目录一并删除,而且不管文件的属性为隐藏、系统或只读,只要该文件位于删除的目录之下,DELTREE都一视同仁,照删不误。使用时务必小心!!!
1.3.2、磁盘操作类命令
1.3.2.1、format——磁盘格式化命令
1.功能:对磁盘进行格式化,划分磁道和扇区;同时检查出整个磁盘上有无带缺陷的磁道,对坏道加注标记;建立目录区和文件分配表,使磁盘作好接收DOS的准备。
2.类型:外部命令
3.格式:formAT〈盘符:〉[/S][/4][/Q]
4.使用说明:
(1)命令后的盘符不可缺省,若对硬盘进行格式化,则会如下列提示:
WARNING:ALL DATA ON NON——REMOVABLE DISK
DRIVE C:WILL BE LOST !
Proceed with format (Y/N) ?
(警告:所有数据在C盘上,将会丢失,确实要继续格式化吗?)
(2)若是对软盘进行格式化,则会如下提示:Insert mew diskette for drive A;and press ENTER when ready…
(在A驱中插入新盘,准备好后按回车键)。
(3)选用[/S]参数,将把DOS系统文件IO.SYS、MSDOS.SYS及COMMAND.COM复制到磁盘上,使该磁盘可以做为DOS启动盘。若不选用/S参数,则格式化后的磁盘只能读写信息,而不能做为启动盘;
(4)选用[/4]参数,在1.2MB的高密度软驱中格式化360KB的低密度盘;
(5)选用[/Q]参数,快速格式化,这个参数并不会重新划分磁盘的磁道和扇区,只能将磁盘根目录、文件分配表以及引导扇区清成空白,因此,格式化的速度较快。
(6)选用[/U]参数,表示无条件格式化,即破坏原来磁盘上所有数据。不加/U,则为安全格式化,这时先建立一个镜象文件保存原来的FAT表和根目录,必要时可用UNFORMAT恢复原来的数据。
1.3.2.2、DISKCOPY——整盘复制命令
1.功能:复制格式和内容完全相同的软盘。
2.类型:外部命令
3.格式:DISKCOPY[盘符1:][盘符2:]
4.使用说明:
(1)如果目标软盘没有格式化,则复制时系统自动选进行格式化。
(2)如果目标软盘上原有文件,则复制后将全部丢失。
(3)如果是单驱动器复制,系统会提示适时更换源盘和目标盘,请操作时注意分清源盘和目标盘。
1.3.3、文件操作类命令
1.3.3.1、 COPY文件复制命令
1.功能:拷贝一个或多个文件到指定盘上。
2.类型:内部命令
3.格式:COPY [源盘][路径]〈源文件名〉[目标盘][路径][目标文件名]
4.使用说明:
(1)COPY是文件对文件的方式复制数据,复制前目标盘必须已经格式化;
(2)复制过程中,目标盘上相同文件名称的旧文件会被源文件取代;
(3)复制文件时,必须先确定目标般有足够的空间,否则会出现;insufficient的错误信息,提示磁盘空间不够;
(4)文件名中允许使用通配符“*”“?”,可同时复制多个文件;
(5)COPY命令中源文件名必须指出,不可以省略。
(6)复制时,目标文件名可以与源文件名相同,称作“同名拷贝”此时目标文件名可以省略;
(7)复制时,目标文件名也可以与源文件名不相同,称作“异名拷贝”,此时,目标文件名不能省略;
(8)复制时,还可以将几个文件合并为一个文件,称为“合并拷贝”,格式如下:COPY;[源盘][路径]〈源文件名1〉〈源文件名2〉…[目标盘][路径]〈目标文件名〉;
(9)利用COPY命令,还可以从键盘上输入数据建立文件,格式如下:COPY CON [盘符:][路径]〈文件名〉;
(10)注意:COPY命令的使用格式,源文件名与目标文件名之间必须有空格!
1.3.3.2、TYPE——显示文件内容命令
1.功能:显示ASCII码文件的内容。
2.类型:内部命令。
3.格式:TYPE[盘符:][路径]〈文件名〉
4.使用说明:
(1)显示由ASCII码组成的文本文件,对。EXE.COM等为扩展名的文件,其显示的内容是无法阅读的,没有实际意义;
(2)该命令一次只可以显示一个文件的内容,不能使用通配符;
(3)如果文件有扩展名,则必须将扩展名写上;
(4)当文件较长,一屏显示不下时,可以按以下格式显示;TYPE[盘符:][路径]〈文件名〉|MORE,MORE为分屏显示命令,使用些参数后当满屏时会暂停,按任意键会继续显示。
(5)若需将文件内容打印出来,可用如下格式:
TYPE[盘符:][路径]〈文件名〉,>PRN
此时,打印机应处于联机状态。
1.3.3.3、 REN——文件改名命令
1.功能:更改文件名称
2.类型:内部命令
3.格式:REN[盘符:][路径]〈旧文件名〉〈新文件名〉
4.使用说明:
(1)新文件名前可以不加上盘符和路径,因为该命令只能对同一盘上的文件更换文件名;
(2)允许使用通配符更改一组文件名或扩展名。
1.3.3.4、 DEL——删除文件命令
1.功能:删除指定的文件。
2.类型:内部命令
3.格式:DEL[盘符:][路径]〈文件名〉[/P]
4.使用说明:
(1)选用/P参数,系统在删除前询问是否真要删除该文件,若不使用这个参数,则自动删除;
(2)该命令不能删除属性为隐含或只读的文件;
(3)在文件名称中可以使用通配符;
(4)若要删除磁盘上的所有文件(DEL*·*或DEL·),则会提示:(Areyou sure?)(你确定吗?)若回答Y,则进行删除,回答N,则取消此次删除作业。
1.3.4、其它命令
1.3.4.1、CLS——清屏幕命令
1.功能:清除屏幕上的所有显示,光标置于屏幕左上角。
2.类型:内部命令
3.格式:CLS
1.3.4.2、 VER查看系统版本号命令
1.功能:显示当前系统版本号
2.类型:内部命令
3.格式:VER
1.3.4.3、 DATA日期设置命令
1.功能:设置或显示系统日期。
2.类型:内部命令
3.格式:DATE[mm——dd——yy]
4.使用说明:
(1)省略[mm——dd——yy]显示系统日期并提示输入新的日期,不修改则可直接按回车键,[mm——dd——yy]为“月月——日日——年年”格式;
(2)当机器开始启动时,有自动处理文件(AUTOEXEC.BAT)被执行,则系统不提示输入系统日期。否则,提示输入新日期和时间。
1.3.4.4、 TIME系统时钟设置命令
1.功能:设置或显示系统时期。
2.类型:内部命令
3.格式:TIME[hh:mm:ss:xx]
4.使用说明:
(1)省略[hh:mm:ss:xx],显示系统时间并提示输入新的时间,不修改则可直接按回车键,[hh:mm:ss:xx]为“小时:分钟:秒:百分之几秒”格式;
(2)当机器开始启动时,有自动处理文件(AUTOEXEC.BAT)被执行,则系统不提示输入系统日期。否则,提示输入新日期和时间。
1.3.4.5、MEM查看当前内存状况命令
1.功能:显示当前内存使用的情况
2.类型:外部命令
3.格式:MEM[/C][/F][/M][/P]
4.使用说明:
(1)选用/C参数列出装入常规内存和CMB的各文件的长度,同时也显示内存空间的使用状况和最大的可用空间;
(2)选用/F参数分别列出当前常规内存剩余的字节大小和UMB可用的区域及大小;
(3)选用/M参数显示该模块使用内存的地址、大小及模块性质;
(4)选用/P参数指定当输出超过一屏时,暂停供用户查看。
1.3.4.6、 MSD显示系统信息命令
1.功能:显示系统的硬件和操作系统的状况。
2.类型:外部命令
3.格式:MSD[/I][/B][/S]
4.使用说明:
(1)选用/I参数时,不检测硬件;
(2)选用/B参数时,以黑白方式启动MSD;
(3)选用/S参数时,显示出简明的系统报告。
DEBUG
DEBUG是专门为汇编语言设计的一种调试工具,它通过步进、设置断点等方式为汇编程序员提供了非常有效的调试手段,DEBUG程序可跟踪运行程序的踪迹,还可直接与磁盘文件或指定的扇区对话。所有的DEBUG命令为单一字母,其后可跟一个或多个参数,参数间用分界符号(逗号或分号)隔开(DEBUG对字母的大小写不敏感);每个命令以回车键作为结束符;所使用的地址的格式为:段基址:偏移量,其中段地址可用CS、DS、SS、ES表示,也可用十六进制表示;命令参数中的数据和机器显示的数据均为十六进制(数据后不再以H结尾)。
进入DEBUG后出现提示符“—”后可使用DEBUG命令。DEBUG中常用的命令有:
格 式 图 例
|
格式 |
意义 |
斜体 |
用户必须提供的信息 |
粗体 |
用户必须严格按照其显示键入的元素 |
省略号 (...) |
可在命令行中重复多次的参数 |
在括号 ([]) 之间 |
可选项目 |
用户必须从中只选择一个选项的选项组 |
Courier 字体 |
在大括号 ({}) 之间;将选项用管线 ( | ) 隔开。例如:{even|odd} |
代码或程序输出 |
1.4.1、Debug:a (assemble)
直接将 8086/8087/8088 助记键合并到内存。在没有参数的情况下使用,a 命令会从它最后停止的位置开始汇编。
语法
a [Address]
参数
Address
指定键入汇编语言助记键的位置。对Address 使用十六进制值,并键入不以h 字符结尾的每个值。
示例
① a 子命令支持所有形式的间接注册命令。例如:
add bx,34[bp+2][si-1]
pop [bp+di]
push [si]
② a 子命令还支持所有操作码同义词。例如:
loopz 100
loope 100
ja 200
jnbe 200
1.4.2、Debug:c (compare)
比较内存的两个部分。
语法
c range address
参数
Range
必需。指定要比较的内存第一个区域的起始和结束地址,或起始地址和长度。
Address
必需。指定要比较的第二个内存区域的起始地址。
示例
要比较从100h 到10Fh 的内存块与从 300h 到 30Fh 的内存块,可键入:
c100,10f 300 或 c100l10 300 (注意100与10中间是小写L)
这两个命令都会产生下列输出结果(假定 DS = 197F):
197F:0100 4D E4 197F:0300
197F:0101 67 99 197F:0301
197F:0102 A3 27 197F:0302
197F:0103 35 F3 197F:0303
197F:0104 97 BD 197F:0304
197F:0105 04 35 197F:0305
197F:0107 76 71 197F:0307
197F:0108 E6 11 197F:0308
197F:0109 19 2C 197F:0309
197F:010A 80 0A197F:030A
197F:010B 36 7F 197F:030B
197F:010C BE 22 197F:030C
197F:010D 83 93 197F:030D
197F:010E 49 77 197F:030E
197F:010F 4F8A 197F:030F
该列表中缺少地址197F:0106和197F:0306。这表明那些地址中的值是相同的。
1.4.3、Debug:d (dump)
显示一定范围内存地址的内容。使用不带参数的d 可用从前一个d 子命令中指定的地址范围的末尾开始,显示 128 个字节的内容。
语法
d [Range]
参数
Range
指定要显示其内容的内存区域的起始和结束地址,或起始地址和长度。
示例
键入:
dcs:100 10f
Debug.exe 按以下格式显示该范围中的内容:
04BA:0100 54 4F 4D 00 53 41 57 59-45 52 00 00 00 00 0000.....
如果键入不带参数的d 子命令,Debug.exe 将按上面示例中的格式来格式化显示内容。“命令提示符”窗口中的每一行都起始于比前一行地址大 16 个字节(如果是 40 列的屏幕,则为 8 个字节)的地址。对于后面键入的每个不带参数的d 子命令,Debug.exe 将紧接在最后显示的命令后立即显示字节内容。
要显示从 CS:100 开始的 20h 字节的内容,请键入:
dcs:100 l 20 (注意100与20中间是小写L)
要显示 CS 段中从 100h 到 115h 行范围内的所有字节的内容,请键入:
dcs:100,115
1.4.4、Debug:e (enter)
将数据输入到内存中指定的地址。
语法
eAddress [List]
参数
Address
必需。指定输入数据的第一个内存位置。
List
指定要输入到内存的连续字节中的数据。
示例
键入:
ecs:100
Debug.exe 按下面的格式显示第一个字节的内容:
04BA:0100 EB._
要将该值更改为 41,请在插入点键入41,如下所示:
04BA:0100 EB.41_
可以通过一个e 子命令键入连续的字节值。在键入新值后按空格键,而不是按 Enter。Debug.exe 将显示下一个值。在此示例中,如果按三次空格键,Debug.exe 将显示下面的值:
04BA:0100 EB.41 10. 00. BC._
要将十六进制值 BC 更改为 42,请在插入点键入42,如下所示:
04BA:0100 EB.41 10. 00. BC.42_
要将值 10 更改为 6F,请按两次 Hyphen 键以返回到地址 0101(值 10)。Debug.exe 显示如下信息:
04BA:0100 EB.41 10. 00. BC.42-
04BA:0102 00.-
04BA:0101 10._
在插入点键入6F 以更改此值,如下所示:
04BA:0101 10.6F_
按 Enter 以停止e 子命令并返回到debug 提示符下。
以下是字符串项的示例:
eds:100 "This is the textexample"
将使用该字符串从 DS:100 开始填充 24 个字节。
1.4.5、Debug:f (fill)
使用指定的值填充指定内存区域中的地址。
语法
f Range List
参数
Range
必需。指定要填充内存区域的起始和结束地址,或起始地址和长度。
List
必需。指定要输入的数据。
示例
要使用 5 个特定值(例如,42、45、52、54、41)填充从 04BA:100 到 04BA:1FF 的内存位置,Debug.exe 重复这 5 个值直到 100h 个字节全部填满为止,请键入:
f04ba:100l100 42 45 52 54 41(注意100与100中间是小写L)
1.4.6、Debug:g (go)
运行当前在内存中的程序。如果在没有参数的情况下使用,则 g 命令将在 CS:IP 寄存器的当前地址处开始运行。
语法
g [=Address] [BreakPoints]
参数
Address
对于当前在内存中的程序,指定它开始运行的地址。
BreakPoints
指定可以设置为 g 子命令的一部分的 1 到 10 个临时断点。
示例
要运行当前内存中的程序,并要执行到 CS 段中的断点地址 7550 为止,请键入:
gcs:7550
Debug.exe 将显示寄存器的内容和标志的状态,然后终止g 子命令。
要设置两个断点,请键入:
gcs:7550, cs:8000
如果在 Debug.exe 遇到某个断点之后再次键入 g 子命令,将从该断点之后的指令开始执行,而不是在开始地址处执行。
1.4.7、Debug:h (hexadecimal)
对指定的两个参数执行十六进制运算。
语法
h Value1Value2
参数
Value1
必需。代表从 0 到 FFFFh 范围内的任何十六进制数字。
Value2
必需。代表从 0 到 FFFFh 范围内第二个十六进制数字。
示例
键入:
h19f 10a
Debug.exe 执行计算并显示以下结果:
02A9 0095
1.4.8、Debug:i (input)
从指定的端口读取并显示一个字节值。
语法
iPort
参数
Port
必需。按地址指定输入端口。地址可以是 16 位的值。
示例
键入:
i2f8
如果端口的字节值为 42h,Debug.exe 会读取该字节并按下述形式显示其值:
42
1.4.9、Debug:l (load)
将某个文件或特定磁盘扇区的内容加载到内存。在不带参数的情况下使用,l 子命令会将您在 debug 命令行上指定的文件从地址 CS:100 开始加载到内存中。
Debug.exe 同时将 BX 和CX寄存器设置为加载的字节数。如果未在 debug 命令行上指定文件,将加载最近使用 n(名称)子命令指定的文件。
语法
l [Address]
l [Address] [Drive] [FirstSector] [Number]
参数
Address
指定要在其中加载文件或扇区内容的内存位置。如果不指定Address,Debug.exe 将使用CS 寄存器中的当前地址。
Drive
指定包含读取指定扇区的磁盘的驱动器。该值是数值型的:0 = A、1 = B、2 = C 等等。
FirstSector
指定要加载其内容的第一个扇区的十六进制数。
Number
指定要加载其内容的连续扇区的十六进制数。只有要加载特定扇区的内容而不是加载在 debug 命令行上或在最近 n(名称)子命令中指定的文件时,才能使用 Drive、FirstSector和 Number 参数。
示例
在命令提示符下,键入:
debug
键入:
nfile.com
要加载 File.com 文件,请键入:
l
Debug.exe 加载该文件并显示 debug 提示符。
要从驱动器 C 将起始逻辑扇区为 15 (0Fh) 的 109 (6Dh)个扇区的内容加载到起始地址为 04BA:0100的内存中,请键入:
l04ba:100 2 0f 6d (第一个字符是小写L)
1.4.10、Debug:m (move)
将一个内存块中的内容复制到另一个内存块中。
语法
mRangeAddress
参数
Range
必需。指定要复制其内容的内存区域的起始地址和结束地址,或起始地址和长度。
Address
必需。指定要将 Range 内容复制到的位置的起始地址。
示例
要将 CS:110 地址中的内容复制到地址 CS:510 中,然后将 CS:10F 地址中的内容复制到 CS:50F 中,如此操作直至将 CS:100 地址中的所有内容复制到地址 CS:500 中,请键入:
mcs:100 110 cs:500
要查看结果,请使用d(转储)子命令,并使用m 子命令指定使用的目标地址。
1.4.11、Debug:n (name)
为debugl (load) 或w (write) 子命令指定可执行文件的名称,或者针对要调试的可执行文件指定参数。如果在没有参数的情况下使用,则n 会清除当前规范。
语法
n [Path][Executable]
n [FileParameters]
参数
[Path][Executable]
指定要测试的可执行文件的位置和名称。
[FileParameters]
为正在测试的可执行文件指定参数和命令行选项。
示例
本示例中,将运行 debug 并加载用于调试的程序 Prog . com。要为 Prog.com 指定两个参数,然后运行该程序,请键入:
debug prog.com
nparam1 param2
g
在这种情况下,g(转向)子命令会运行该程序,就如同在命令提示符下键入了如下命令一样:
prog param1 param2
测试和调试操作反映了 Prog . com 通常的运行时环境。
在下面的命令序列中,第一个 n 子命令指定 File1.exe 将用于其后的 l(load) 子命令,该命令会将File1.exe 加载到内存。第二个 n 子命令指定了 File1.exe 将要使用的参数。最后,g(转向)子命令将运行File1.exe 文件,就如同在命令提示符下键入了 File1
File2.dat File2.dat 一样。
nfile1.exe
l
nfile2.dat file3.dat
g
不要在n 子命令的第二个实例后使用 l 子命令。如果在n 子命令的第二个实例后使用了w(写入)子命令,将会使用 File2.dat 的文件名保存 File1.exe(即要调试的文件)。为避免出现此结果,应该总是在l 或w 子命令之前使用 n 子命令的第一种形式。
1.4.12、Debug:o (output)
将字节值发送到输出端口。
语法
o PortByteValue
参数
Port
必需。通过地址指定输出端口。端口地址可以是 16 位值。
ByteValue
必需。指定要发送到 Port 的字节值。
示例
要将字节值 4Fh 发送到地址为 2F8h 的输出端口,请键入:
o2f8 4f
1.4.13、Debug:p (proceed)
执行循环、重复字符串指令、软件中断或子例程。或者,通过其他指令进行跟踪。如果在不含参数的情况下使用,则 p 列出寄存器和它们当前的值。
语法
p [=Address] [Number]
参数
Address
指定执行第一条指令的位置。如果不指定地址,则默认地址是在 CS:IP 寄存器中指定的当前地址。
Number
指定将控制返回给 Debug.exe 之前要运行的指令数。默认值为 1。
示例
该示例中,要测试的程序在地址 CS:143F 处包含一个 call 命令指令。要运行由call 命令调用的子例程,然后将控制返还给
Debug.exe,请键入:
p=143f
Debug.exe 按以下格式显示结果:
AX=0000 BX=0000 CX=0000 DX=0000SP=FFEE BP=0000 SI=0000 DI=0000
DS=2246 ES=2246 SS=2246 CS=2246IP=1443 NV UP EI PL NZ AC PO NC
2246:1442 7505 JNZ 144A
1.4.14、Debug:q (quit)
无需保存当前测试的文件即可停止 Debug.exe 会话,并返回到命令提示符。
语法
q
1.4.15、Debug:r (register)
显示或改变一个或多个 CPU 寄存器的内容。如果在不含参数的情况下使用,则r 命令在当前位置显示所有寄存器的内容和寄存器存储区的标志、所有标志的状态以及指令的解码形式。
语法
r [Register]
参数
Register
指定包含要显示信息的寄存器名称。
示例
如果当前位置是 CS:11A,则显示外观将类似于以下内容:
AX=0E00 BX=00FF CX=0007 DX=01FFSP=039D BP=0000 SI=005C DI=0000
DS=04BA ES=04BA SS=04BA CS=O4BAIP=011A NV UP DI NG NZ AC PE NC
04BA:011A CD21 INT 21
如果只希望查看标志状态,请键入:
rf
Debug.exe 按以下格式显示信息:
NV UP DI NG NZ AC PE NC - _
按任意顺序键入一个或多个有效的标志值,而且可以带或不带空格。例如:
nv up di ng nz ac pe nc -pleicy
Debug.exe 终止r 子命令并显示 Debug 提示符。要查看所作的更改,请键入 r 或rf。Debug.exe 显示如下信息:
NV UP EI PL NZ AC PE CY - _
按 Enter 返回 Debug 提示符。
1.4.16、Debug:s (search)
在某个地址范围搜索一个或多个字节值的模式。
语法
sRangeList
参数
Range
必需。指定要搜索范围的起始地址和结束地址。
List
必需。指定要搜索的一个或多个字节值,或者字符串的模式。
示例
要在从 CS:100 到 CS:110 的范围中查找包含值 41 的所有地址,请键入:
scs:100 110 41
Debug.exe 按以下格式显示结果:
04BA:0104
04BA:010D-
要在从 CS:100 到 CS:1A0 的范围内搜索字符串“Ph”,请键入:
scs:100 1a0 "Ph"
1.4.17、Debug:t (trace)
执行一条指令,并显示所有寄存器内容、所有标志的状态以及所执行指令的解码形式。如果在不含参数的情况下使用,t 命令会开始跟踪由程序的 CS:IP 寄存器指定的地址。
语法
t [=Address] [Number]
参数
Address
指定 Debug.exe 开始跟踪指令时所用的地址。
Number
指定要跟踪的指令数。该值必须是十六进制数。默认值为 1。
示例
如果程序中的指令位于 04BA:011A,则 Debug.exe 显示下列信息:
AX=0E00 BX=00FF CX=0007 DX=01FFSP=039D BP=0000 SI=005C DI=0000
DS=04BA ES=04BA SS=04BA CS=O4BAIP=011A NV UP DI NG NZ AC PE NC
04BA:011A CD21 INT 21
1.4.18、Debug:u(unassemble)
反汇编字节并显示相应的原语句,其中包括地址和字节值。反汇编代码看起来像已汇编文件的列表。如果在没有参数的情况下使用,则u 子命令分解 20h 字节(默认值),从前面的u 子命令所显示地址后的第一个地址开始。
语法
u [Range]
参数
Range
指定要反汇编代码的起始地址和结束地址,或起始地址和长度。
示例
要从地址 04BA:0100 开始反汇编 16 (10h) 字节,请键入:
u04ba:100l10 (注意100与10之间是小写L)
Debug.exe 按以下格式显示结果:
04BA:0100 206472 AND [SI+72],AH
04BA:0103 69 DB 69
04BA:0104 7665 JBE 016B
04BA:0106 207370 AND [BP+DI+70],DH
04BA:0109 65 DB 65
04BA:010A 63 DB 63
04BA:010B 69 DB 69
04BA:010C 66 DB 66
04BA:010D 69 DB 69
04BA:010E 63 DB 63
04BA:010F 61 DB 61
如果只显示从指定地址 04BA:0100 到04BA:0108 的信息,请键入:
u04ba:0100 0108
Debug.exe 显示如下信息:
04BA:0100 206472 AND [SI+72],AH
04BA:0103 69 DB 69
04BA:0104 7665 JBE 016B
04BA:0106 207370 AND [BP+DI+70],DH
1.4.19、Debug:w (write)
将文件或特定扇区写入磁盘。不带参数的w 将从 CS:100 开始写入。
语法
w [Address]
w [Address] [Drive] [FirstSector] [Number]
参数
Address
指定要写入磁盘文件的文件或部分文件的起始内存地址。
Drive
指定包含目标磁盘的驱动器。该值是数值型的:0 = A、1 = B、2 = C 等等。
FirstSector
指定要写入第一个扇区的十六进制数。
Number
指定要写入的扇区数。
示例
要将起始地址为 CS:100 的内存内容写入驱动器 B 的磁盘中,并收集从磁盘的逻辑扇区号 37h 开始并持续 2Bh 个扇区的数据,请键入:
wcs:100 1 37 2b
当写操作完成时,Debug.exe再次显示debug 提示符。