经典汇编语言教程:2、调试工具 Debug

2、调试工具 Debug

启动DEBUG的一般命令如下:

DEBUG  文件名 [参数表]

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

被调试的文件可以是系统中的任何文件,但通常它们的后缀为EXE或COM。当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中的提示符“-”下才能输入命令,在按“回车”键后,该命令才开始执行
命令是单个字母,命令和参数的大小写可混合输入
可用F1、F2、F3、Ins、Del和光标移动键等来编辑本行命令
当命令出现语法错误时,将在出错位置显示“^ 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'

上一课 下页:下一课

经典汇编语言教程·相关目录

第1章 汇编语言的由来,数据类型第2章 CPU资源和存储器
第3章 操作数的寻址方式第4章 标识符和表达式
第5章 微机CPU的指令系统第6章 程序的基本结构
第7章 子程序和库第8章 输入输出和中断
第9章 宏第10章 应用程序设计
第11章 数值运算协处理器第12章 汇编语言和C语言
汇编语言重要附录Windows API函数大全
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号