调试工具-DEBUG

DEBUG

启动DEBUG的一般命令如下:

DEBUG  文件名 [参数表]

其中:文件名指定被调试的文件,其包括名和后缀,参数表是被调试文件运行时所需要的参数。

被调试的文件可以是系统中的任何文件,但通常它们的后缀为EXECOM。当DEBUG启动成功后,将显示连接符“-”,这时,可输入各种命令。

表1 DEBUG中标志位的符号表示

标志名称溢出OF方向DF中断IF负号SF零ZF辅助进位AF奇偶PF进位CF
置位状态OVDNEINGZRACPECY
复位状态NVUPDIPLNZNAPONC

表2 DEBUG命令及其含义

 命令格式功能说明
A [地址]输入汇编指令
C [范围]  起始地址对由“范围”指定的区域与“起始地址”指定的同大小区域进行比较,显示不相同的单元
D [范围]显示指定范围内的内存单元内容
E 地址  字节值表用值表中的值替换从“地址”开始的内存单元内容
F 范围  字节值表用指定的字节值表来填充内存区域
G [=起始地址]  [断点地址]从起点(或当前地点)开始执行,到终点结束
H 数值1  数值2显示二个十六进制数值之和、差
I 端口地址从端口输入
L [地址 [驱动器号 扇区 扇区数]]从磁盘读
M 范围  地址把“范围”内的字节值传送到从“地址”开始的单元
N 文件标识符 [文件标识符…]指定文件名,为读/写文件做准备
O 端口地址  字节值向端口输出
P [=地址]  [指令数]按执行过程,但不进入子程序调用或软中断
Q退出DEBUG,不保存正在调试的文件
R [寄存器名]显示和修改寄存器内容
S 范围  字节值表在内存区域内搜索指定的字节值表。如果找到,显示起始地址,否则,什么也不显示
T [=地址]  [指令数]跟踪执行,从起点(或当前地点)执行若干条指令
U [范围]反汇编,显示机器码所对应的汇编指令
W [地址 [驱动器号  扇区 扇区数]]向磁盘写内容,(BX、CX)为写入字节数

关于参数的几点说明:

1、进制:在DEBUG中输入或显示的数据都是十六进制形式;

2、分隔:命令和参数、参数和参数之间要用空格、逗号或制表符等分隔;

3、地址:用“段值:偏移量”的形式来表示地址,也可用段寄存器来代表“段值”;例如:1000:0,ds:10,cs:30等;

4、范围:用来表示地址范围,从哪个地址开始,到哪个地址结束。它有二种表示方式:

地址 地址——前者表示起始地址,要用“段值:偏移量”来表达,后者表示终止地址,只用“偏移量”来表示;

地址 长度——前者表示起始地址,要用“段值:偏移量”来表达,后者表示该区域的大小,用字母’L’开头的数值来表示

例如:100:50 100——段值为100,偏移量从50到100的内存区域,
100:50 L100——段值为100,偏移量从50开始的100个字节区域。

5、端口地址:二位十六进制数值

6、字节值:二位十六进制数值

7、字节值表:由若干个字节值组成,也可以是用引号括起来的字符串

8、驱动器号:0—驱动器A、1—驱动器B、2—驱动器C、3—驱动器D等

关于使用命令的几点说明:

DEBUG中的提示符“-”下才能输入命令,在按“回车”键后,该命令才开始执行
命令是单个字母,命令和参数的大小写可混合输入
可用F1F2F3InsDel和光标移动键等来编辑本行命令
当命令出现语法错误时,将在出错位置显示“^ Error
可用^C^Break来终止当前命令的执行,还可用^S来暂停屏幕显示(当连续不断地显示信息时)

例2.1 启动DEBUG,并装入test.exe文件(假设该文件已存在)。

解:方法1:方法2:
…/>debug test.exe…/>debug
-n test.exe
-l

例2.2 比较以DS为段值,偏移量从10到50的内存区域与从地址100:20开始的内存区域。
解:-C DS:10 50 100:20  或  -C DS:10 L41 100:20

例2.3 显示以DS为段值,偏移量从10到50内存区域的单元内容,然后用’abc’来填充它。
解:-D DS:10 50  或  -D DS:10 L41
  -F DS:10 50 'abc'

例2.4 显示十六进制1234与3421之和、差。
解:-H 1234 4321

例2.5 把数据段区域DS:0-40内的内容传送给从附加段ES:10开始的内存中。
解:-M DS:0 40 ES:10

例2.6 在数据段区域DS:0-40内查找是否有字符串'CIH'。
解:-S DS:0 40 'CIH'

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值