
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 回車