![](https://img.kancloud.cn/4e/47/4e47699813d62de3c1a9b049841e23f6_844x268.png)
debug是dos系统中著名的调试程序,也可以在windows系统实模式下
可以查看cpu中各种寄存器中的内容、内存的情况,并且在机器指令级跟踪程序的运行
## **我们用到的Debug功能(共20个命令)。**
**`R`** 命令查看、改变CPU寄存器的内容:
**`D`** 命令查看内存中的内容;
**`E`** 命令改写内存中的内容;
**`U`** 命令将内存中的机器指令翻译成汇编指令;
**`T`** 命令执行一条机器指令;
**`A`** 命令以汇编指令的格式在内存中写入一条机器指令。
`... ...`
[TOC]
## **启用debug**
参考环境搭建章节
![](https://img.kancloud.cn/b2/87/b287b3e94b1eeef57fac52b8f3665215_918x506.png)
## **查看寄存器内容R**
r
![](https://img.kancloud.cn/6f/4b/6f4b27173d3ca5a22c1b170db9c4614c_898x138.png)
## **修改寄存器内容R**
r+空格+寄存器名+回车(不需要空格即:r寄存器名+回车也可以)
![](https://img.kancloud.cn/92/2d/922dd95109c6f4b3c10821da16975d20_875x174.png)
## **查看内存的内容D**
d
列出指定地址开始的128字节(即128个内存单元)的内容:【d】
列出内存中指定地址处的内容:【段地址:偏移地址】
列出内存中指定地址范围内的内容:【段地址:开始偏移地址 结尾偏移地址】
![](https://img.kancloud.cn/6c/b2/6cb28793e1b60ee7cf565bf4b7af238d_630x293.png)
![](https://img.kancloud.cn/4c/60/4c60aadc3a92b5b7e443156f7499f961_639x288.png)
![](https://img.kancloud.cn/b6/71/b6711eb06c63017b8bd0190921d458dc_631x147.png)
![](https://img.kancloud.cn/15/5c/155c002ec98e1f14eae4494cba2fb03e_641x69.png)
![](https://img.kancloud.cn/49/ee/49ee2ad4413ba75ee30416e10050e933_891x550.png)
## **改变内存中的内容E**
e
逐个询问修改:【段地址:偏移地址+回车+填值+空格 填值+空格 填值 ... 回车结束修改 】
直接修改:【段地址:偏移地址 数据1 数据2 数据3 ...】
![](https://img.kancloud.cn/27/e2/27e241de8caaaf6d5335db56029a439f_904x270.png)
## **查看代码U**
u
```
u 段地址:偏移地址
```
我们知道汇编指令是人能读懂的,指令本身也是数据,他都有对应的机器码
mov ax,0123H 对应的机器码为:D8 23 01
mov bx 0003H 对应的机器码为:BB 03 00
mov ax,bx 对应的机器码为:89 D8
add ax,bx 对应的机器码为:01 D8
实操:
```
e 2000:0 d8 23 01 bb 03 00 89 d8 01 d8
```
![](https://img.kancloud.cn/92/9d/929d5f98f34dda9ef20d7aef11706465_889x416.png)
## **写入汇编指令A**
a
```
a 段地址:偏移地址 回车
汇编指令1 +回车
...
汇编指令n +回车
回车回车结束
```
![](https://img.kancloud.cn/94/12/94124de5e80eb72a8da4cfc98d776c96_833x96.png)
这里我们在cs:ip处写入汇编指令方便示范下一个命令t
![](https://img.kancloud.cn/21/89/218912f574a3d76ed5e0e442285de6f8_640x407.png)
## **执行CS:IP处的汇编指令T**
t
![](https://img.kancloud.cn/94/12/94124de5e80eb72a8da4cfc98d776c96_833x96.png)
![](https://img.kancloud.cn/e4/91/e49129fce5ed4c4f9877a24bb0fe4ce5_398x110.png)
![](https://img.kancloud.cn/58/0f/580ff2b387858f0ce1515f31d04143fb_881x548.png)
t会向下逐个执行汇编命令,那么执行后怎么才能重置到自己想执行汇编命令的位置?jmp 073f:100
下一小节详细介绍cs:ip寄存器
## **退出debug**
q 回车