Debug

来源:互联网 发布:js substring 编辑:程序博客网 时间:2024/05/20 23:33

Debug 是DOS,Windows 都提供的实模式(8086方式)程序的调试工具,使用他可以查看CPU各种寄存器中的内容,内存的情况和在机器码级跟踪程序的运行。
主要的Debug功能
R命令:查看、改变CPU寄存器的内容
D命令:查看内存中的内容
E命令:改写内存中的内容
U命令:将内存中的机器指令翻译为汇编指令;
T命令:执行一条机器指令
A命令: 以汇编指令的格式在内存中写入一条机器指令

进入Debug:
在DOS提示符下输入命令:debug

用R命令查看,改变CPU寄存器的内容:
显示内容:
显示内容
修改某个寄存器内容:
r 寄存器名-改变指定寄存器内容
这里写图片描述

用D命令查看内存中的内容:
显示内容:
列出预设地址内存处128个字节的内容(默认显示8行,每行16个字节)
这里写图片描述
列出指定内存处的内容:
这里写图片描述
【d 段地址:偏移地址 结尾偏移地址】 来显示选定段的数据
显示2000:0 到2000:f 的16个数据
这里写图片描述
显示2000:0 到2000:2f 的48个数据
这里写图片描述

用E命令改变内存中的内容:
一种方式是【e 段地址:偏移地址 将要修改的数据】直接将修改该内存内容
这里写图片描述
另一种方式是组个询问式修改【e 段地址:偏移地址】回车 空格表示接受并继续修改 回车表示结束修改
这里写图片描述

用U命令将内存中的机器指令翻译成汇编指令
如机器码:
B8 23 011
BB 03 00
89 D8
01 D8
通过E命令写入内存中后再通过U命令翻译成汇编指令:
MOV ax,0123H
MOV bx,0003H
MOV ax,bx
ADD ax,bx
这里写图片描述

用A命令以汇编指令的格式在内存中写入机器指令
输入【A】或【A 段地址:偏移地址 】,根据提示输入汇编的指令,以空行结束(默认地址是CS为段地址,IP为偏移地址)
如指令:
MOV ax,0123H
MOV bx,0003H
MOV ax,bx
ADD ax,bx
对应的机器指令为:
如机器码:
B8 23 011
BB 03 00
89 D8
01 D8
这里写图片描述

用T命令执行机器指令
从CS:IP处开始执行命令,每次执行一条指令
这里写图片描述

用G命令执行机器指令
-G+偏移量,执行到指定位置处,如此处执行到076A:0010
这里写图片描述

1 0
原创粉丝点击