Debug的使用
R命令 查看寄存器的內容
?CS:IP為 073F:0100指向當前CPU要讀取、執行的指令。
下方:
CS:IP所指向的內存單元的機器碼為 00 00,對應的匯編指令為 ADD [BX+SI],AL
R命令修改寄存器中的內容
?r后面跟著想要修改的寄存器的名稱,然后輸入值,最后用r查看是否已修改。3
D命令 查看內存中的內容
d 段地址:偏移地址
要查看 00000H處的內容,先將這個地址表示為 段地址:偏移地址 的格式,然后用列出
?E命令 修改寄存器中的內容
e 起始地址 數據 數據 數據 ...
E命令向內存中寫入機器碼,U命令查看機器碼的含義,T命令執行內存中的機器碼
?用e命令向 內存單元地址為10000H的位置寫入機器碼
d命令查看機器碼是否寫入
u命令查看機器碼的含義(把機器碼翻譯成匯編指令)
A命令以匯編指令的形式在內存中寫入機器指令
?向內存中寫入 匯編指令
?修改CS和IP的內容,使CPU執行匯編指令
u命令將寫入內存的機器碼翻譯為匯編指令
t命令執行匯編指令
實驗任務
(1)使用Debug,將下面的程序段寫入內存,逐條執行,觀察每條指令執行后CPU中相關寄存器中內容的變化。
1.用A命令 將指令 寫入內存
u命令查看寫入的指令
?
?
?
| 0 | 0000H | 0000H | 1000H | 0000H | ||
| 1 | b8 20 4e | mov ax,4E20H | 4E20H | 1000H | 0003H | |
| 2 | 05 16 14 | add ax,1416H | 6236H | 0006H | ||
| 3 | bb 00 20 | mov bx,2000H | 2000H | 0009H | ||
| 4 | 01 d8 | add ax,bx | 8236H | 000BH | ||
| 5 | 89 c3 | mov bx,ax | 8236H | 000DH | ||
| 6 | 01 d8 | add ax,bx | 046CH | 000FH | ||
| 7 | b8 1a 00 | mov ax,001AH | 0001AH | 0011H | ||
| 8 | bb 26 00 | mov bx,0026H | 0026H | 0014H | ||
| 9 | 00 d8 | add al,bl | 0040H | 0020H | ||
| 10 | 00 dc | add ah,bl | 2640H | 0022H | ||
| 11 | 00 c7 | add bh,al | 4026H | 0024H | ||
| 12 | b4 00 | mov ah,0 | 0040H | 0026H | ||
| 13 | 00 d8 | add al,bl | 0066H | 0028H | ||
| 14 | 04 9c | add al,9CH | 0002H | 0030H |
?
?
?
?
?
?
?
?
?
?
?
?
?
FDDF?
總結
- 上一篇: vivado DEBUG使用说明
- 下一篇: AndroidStudio Debug调