在笔记的第11篇的时候,我们下载了debug.exe。
DEBUG是一个DOS实用程序,是供程序员使用的程序调试工具,可以用它检查内存中任何地方的字节以及修改任何地方的字节。它可以用于逐指令执行某个程序以验证程序运行的正确性,也可以追踪执行过程、比较一个指令执行前后的值以及比较与移动内存中数据的范围,读写文件与磁盘扇区。
选项 | 说明 |
-U | 反汇编命令,将内存中的机器指令翻译成汇编指令 |
-R | 所有14个寄存器的内容 |
-R(寄存器名字) | 更改特定寄存器的内容 |
-T | 跟踪命令,每执行一条指令就显示运行结果,使程序员可以细致地观察程序的执行情况 |
-DCS 偏移范围 | 输出代码段偏移范围的内容 |
-DDS 偏移范围 | 输出数据段偏移范围的内容 |
-DSS 偏移范围 | 输出堆栈段偏移范围的内容 |
-G | 从当前命令退出执行 |
-G 偏移 | 运行命令,从指定地址处开始运行程序,并在指定的偏移处终止 |
-Q | 调试器程序DEBUG关闭 |
DEBUG下的标志位表示:
值为1 | 值为0 | ||
状态标志 | CF PF AF ZF SF OF | CY (carry) PE (even parity) AC (auxiliary carry) ZR (zero) NG (negative) OV (overflow) | NC (no carry) PO (odd parity) NA (no auxiliary carry) NZ (nonzero) PL (plus) NV (no overflow) |
控制标志 | DF IF | DN (down) EI (enable interrupts) | UP (up) DI (disable interrupts) |
在DOSBOX里面运行debug的方法: 直接输入debug 回车
(前提是你挂载的目录里面有debug程序)
调试某个程序,输入debug 程序文件名 比如这里我们调试前面的一个例子
debug 3_1.exe
这里调试的是编译好后的可执行程序(exe),只需要将3_1.exe替换为你的程序的文件名即可
如图所示:
1 条评论
[…] 汇编(13)调试工具DEBUG […]