DEBUG命令用法速查.doc
文本预览下载声明
DEBUG命令用法速查
???DEBUG是一种最为常见的调试工具,由由MS-DOS的系统盘提供,现在在WINDOWS95、98、2000、XP中也都有。它不仅可用于程序的动态调试,而且还可以用于系统内存和磁盘的维护、软件的修改和加密解密等方面。使用DEBUG要注意以下几点:
(1)在修改软件时应注意,应避免在中DEBUG中写EXE为后缀的文件。如果你需要这样作,就必须事先将EXE文件名后缀作暂时的修改。
(2)在命令表1-4中,有许多命令的参量定义由表1-3给出。
(3)一般命令中的整数参量都已十六进制数表示。
(4)字符串引号可用双引号,也可用单引号。
(5)在DEBUG中标志寄存器将按8个标志显示,每个标志用两个字母编码,以表示置位或清零。各标志以表1-3中列出的顺序显示。
???????????????????????? ???????表1-3 DEBUG命令参量
参量
说明
Addr (地址)
Addr格式有以下几种:
·一个用字母表示的段寄存器标志加上一个偏移值。例如
CS:100。
·一个段地址,加上一个偏移值。例如 4AB:100
·仅有一个偏移值。例如 100。
注:
1.前两种格式,用冒号分隔偏移值。
2.所有的数值都以1~4位十六进制表示。
地址中规定的内存单元必须是有效的,否则将会发生不可预料的结果。
FilSpe(文件说明)
FilSpe 由一到三部分组成———驱动器名、路径名和文件名。
Driver (驱动器)
输入1~7个数字。例如,驱动器A用0表示,B用1表示。
List (表)
List 由一个或多个字节值或字符串组成,或者同时输入这两种值。例如:F3 XYZ 8D 4 “abcd”。这里的List有5项:三个字节项和两个字符串项,共有10个字节。
Range(范围)
由下列任一格式规定的内存上/下限地址构成:
·AddrAddr
例如 CS:100 110
注:在第二个地址中,只允许有一个偏移量。地址之间要用一个空格或逗号分隔。
·Addr L Value
这里的Value是以十六进制表示的字节数。例如
CS:100 L 11
注:1.范围的极限是10000H,故地址的值和偏移部分的总和〈64KB。64KB可用0000或0表示。
2.在范围中规定的内存单元必须是有效的。否则将会造成不可预料的结果。
???????????????????????????????表1-4 DEBUG命令表
命令格式
解释
A [Addr]
从Addr处开始输入汇编语句并进行汇编。
C Range Addr
将Range指定的内存数据与以Addr为起始地址的内存数据相比较。
D [Addr]或D [Range]
显示内存数据(Ctrl—C中断)。
E Addr [List]
用List从Addr开始修改内存数据。
F Range List
将List数据填写到由Range指定的内存中。
G [=Addr] [Addr]…
从内存地址CS:IP或Addr开始执行程序,断点为:
Addr1…。
H Val1 Val2
计算十六进制值 Val1+Val2和Val1-Val2
I PortAddr
从端口PortAddr(十六进制表示)输入并显示数据。
L [Addr]
从内存地址CS:100或Addr开始装入由N命令定义的文件。
对于EXE文件装入的地址为CS:0。
L Addr Driver Sec1 Sec2
从内存地址Addr开始装入磁盘Driver自绝对扇区Sec1开始的Sec2个扇区数据(Sec1,Sec2用十六进制表示)。
M Range Addr
移动Range指定的内存数据至Addr为起始地址的内存中。
N FilSpe
命名要处理的文件(处理文件由LOAD / WRITE命令使用)。
O PortAddr List
将List输出到端口PortAddr(用十六进制表示)。
P [=Addr] [Value]
在下Value (十六进制表示,缺省值=1)条指令处停止。
Q / QUIT
返回DOS。
R [Reg]
显示 / 更改寄存器Reg。标志寄存器显示含义见表7-4.。
S Range List
在内存Range中查询List指定的数据(Ctrl—C中断)。
T [=Addr] [Value]
从由CS:IP或Addr指定的地址开始执行Value(用十六进制表示)条指令,遇到调用指令或中断时,将跟踪进入。
U [Addr]或U [Range]
从指定地址处进行代码反汇编(Ctrl—C中断)。
W [Addr]
把从CS:100或Addr开始的
显示全部