DEBUG 程序的使用
一、在 DOS 的提示符下,可如下键入 Debug 启动调试程序:
DEBUG[路径\文件名][参数 1][参数 2]
Debug 后可以不带文件名,仅运行 Debug 程序;需要时,再用 N 和 L 命令调入被调试
程序。命令中可以带有被调试程序的文件名,则运行 Debug 的同时,还将指定的程序调入
主存;参数 1/2 是被调试程序所需要的参数。
在 Debug 程序调入后,根据有无被调试程序及其类型相应设置寄存器组的内容,发出
Debug 的提示符“-”,此时就可用 Debug 命令来调试程序。
运行 Debug 程序时,如果不带被调试程序,则所有段寄存器值相等,都指向当前可
用的主存段;除 SP 之外的通用寄存器都设置为 0,而 SP 指示当前堆栈顶在这个段
的尾部;IP=0100h;状态标志都是清 0 状态。
运行 Debug 程序时,如果带入的被调试程序扩展名不是.EXE,则 BX.CX 包含被调
试文件大小的字节数(BX 为高 16 位),其他同不带被调试程序的情况。
运行 Debug 程序时,如果带入的被调试程序扩展名是.EXE,则需要重新定位。此
时,CS:IP 和 SS:SP 根据被调试程序确定,分别指向代码段和堆栈段。DS=ES 指
向当前可用的主存段,BX.CX 包含被调试文件大小的字节数(BX 为高 16 位),
其他通用寄存器为 0,状态标志都是清 0 状态。
二、DEBUG 命令的格式
Debug 的命令都是一个字母,后跟一个或多个参数:Š字母Š[参数]
命令的使用中注意:
①字母不分大小写;
②只使用 16 进制数,没有后缀字母;
③分隔符(空格或逗号)只在两个数值之间是必须的,命令和参数间可无分隔符;Š
④每个命令只有按了回车键后才有效,可以用 Ctrl+Break 中止命令的执行;
⑤命令如果不符合 Debug 的规则,则将以“error”提示,并用“^”指示错误位置。
许多命令的参数是主存逻辑地址,形式是“段基地址Š:偏移地址”。其中,段基地址可以
是段寄存器或数值;偏移地址是数值。如果不输入段地址,则采用默认值,可以是缺省段
寄存器值。如果没有提供偏移地址,则通常就是当前偏移地址。
对主存操作的命令还支持地址范围这种参数,它的形式是:“开始地址Š结束地址”(结
束地址不能具有段地址),或者是:“开始地址ŠL 字节长度”。
三、DEBUG 子命令
1、显示命令 D
D(Dump)命令显示主存单元的内容,它的格式如下(注意分号后的部分用于解释命
令功能,不是命令本身):
D [地址];显示当前或指定开始地址的主存内容
D [范围];显示指定范围的主存内容
例如,显示当前(接着上一个 D 命令显示的最后一个地址)主存内容:
左边部分是主存逻辑地址,中间是连续 16 个字节的主存内容(16 进制数,以字节为
单位),右边部分是这 16 个字节内容的 ASCII 字符显示,不可显示字符用点“.”表示。一个
D 命令仅显示“8 行×16 个字节”(80 列显示模式)内容。
再如:
-d 100 ;显示数据段 100h 开始的主存单元