
debug是dos系统中著名的调试程序,也可以在windows系统实模式下
可以查看cpu中各种寄存器中的内容、内存的情况,并且在机器指令级跟踪程序的运行
## **我们用到的Debug功能(共20个命令)。**
**`R`** 命令查看、改变CPU寄存器的内容:
**`D`** 命令查看内存中的内容;
**`E`** 命令改写内存中的内容;
**`U`** 命令将内存中的机器指令翻译成汇编指令;
**`T`** 命令执行一条机器指令;
**`A`** 命令以汇编指令的格式在内存中写入一条机器指令。
`... ...`
[TOC]
## **启用debug**
参考环境搭建章节

## **查看寄存器内容R**
r

## **修改寄存器内容R**
r+空格+寄存器名+回车(不需要空格即:r寄存器名+回车也可以)

## **查看内存的内容D**
d
列出指定地址开始的128字节(即128个内存单元)的内容:【d】
列出内存中指定地址处的内容:【段地址:偏移地址】
列出内存中指定地址范围内的内容:【段地址:开始偏移地址 结尾偏移地址】





## **改变内存中的内容E**
e
逐个询问修改:【段地址:偏移地址+回车+填值+空格 填值+空格 填值 ... 回车结束修改 】
直接修改:【段地址:偏移地址 数据1 数据2 数据3 ...】

## **查看代码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
```

## **写入汇编指令A**
a
```
a 段地址:偏移地址 回车
汇编指令1 +回车
...
汇编指令n +回车
回车回车结束
```

这里我们在cs:ip处写入汇编指令方便示范下一个命令t

## **执行CS:IP处的汇编指令T**
t



t会向下逐个执行汇编命令,那么执行后怎么才能重置到自己想执行汇编命令的位置?jmp 073f:100
下一小节详细介绍cs:ip寄存器
## **退出debug**
q 回车
