8086彙編 Debug 使用
Debug是DOS系統中的著名的調試程序,也可以運行在windows系統實模式下。
使用Debug程序,可以查看CPU各種寄存器中的內容、內存的情況,並且在機器指令級跟蹤程序的運行。
常用指令:
- 用R命令查看、改變CPU寄存器的內容
- 用D命令查看內存中的內容
- 用E命令改變內存中的內容
- 用U命令將內存中的機器指令翻譯成彙編指令
- 用A命令以彙編指令的格式在內存中寫入機器指令
- 用T命令執行機器指令
使用
一、啓動Debug
1、在DOS提示符下輸入命令:> debug
二、使用Debug
使用方式一、通過debug執行程序:> debug 程序名稱.exe
使用方式二、通過debug直接操作當前內存:> debug
1、用R命令查看、改變CPU寄存器的內容
a、R - 查看寄存器內容
1) -r
b、R 寄存器名 - 改變指定寄存器內容
// 指定要修改的寄存器名、也可寫爲-r寄存器名 // 格式:-r 寄存器名 1) -r ax // 修改寄存器值、16進制存儲 2) :1234
2、用D命令查看內存中的內容
a、D - 列出預設地址內存處的128個字節的內容
1) -d // 073F(段地址):0100(偏移地址) 00(值) ....(ASCLL碼) 073F:0100 00 00 00 00 00 00..
b、D 段地址:偏移地址 - 列出內存中指定地址處的內容
// 指定查看內存地址的值 // 格式:-d 段地址:偏移地址 1) -d 2000:0000
c、D 段地址:偏移地址 結尾偏移地址 - 列出內存中指定地址範圍內的內容
// 指定查看內存地址、根據偏移量查看範圍 // 格式:-d 段地址:偏移地址 偏移量地址 1) -d 2000:0 2f
3、用E命令改變內存中的內容
a、E 段地址:偏移地址 數據1 數據2 ...
// 修改內存地址對應值 // -e 段地址:偏移地址 值 值 值 值 值 、值爲16進制 1) -e 2000:0000 12 34 56 AB 3F F3
b、E 段地址:偏移地址
; 逐個詢問式修改 ; 空格 - 接受,繼續 ; 回車 - 結束
// 修改內存地址對應值 // -e 段地址:偏移地址 1) -e 2000:0000 // 段地址:偏移地址 源值.修改值 源值.修改值 源值.修改值 2) 2000:0000 12.61 34 41 56.62
4、用U命令將內存中的機器指令翻譯成彙編指令
a、u 地址 - 查看代碼
// 查看內存對應機器碼轉換爲彙編 // 格式:-u 段地址:偏移地址 1) -u 2000:0
b、案例使用
對應的機器碼爲:
B8 23 01
BB 03 00
89 D8
01 D8
彙編指令:
mov ax, 0123H
mov bx, 0003H
mov ax, bx
add ax, bx
1)通過E命令添加內存機器碼
2)查看內存數據
3)通過U查看機器碼轉換匯編代碼
5、用A命令以彙編指令的格式在內存中寫入機器指令
a、a 地址 - 寫入彙編指令
// 指定內存地址寫入彙編指令、073F爲CS代碼段的寄存器 // 格式:-u 段地址:偏移地址 1)-u 073F:100 // 格式:段地址:偏移地址 彙編指令 2)073F:0100 mov ax, 0123
b、案例使用
有彙編指令:
mov ax, 0123H
mov bx, 0003H
mov ax, bx
add ax, bx
對應的機器碼爲:
B8 23 01
BB 03 00
89 D8
01 D8
1)A寫入彙編語言
2)D查看內存值 對應機器碼
3)U查看輸入的彙編指令
6、用T命令執行機器指令
a、t - 執行CS:IP處的指令
// 執行CS:IP 代碼 1)-t
b、案例使用
1)r查看當前寄存器情況、當前存儲指令爲 073F:0100 B82301 MOV AX,0123
2)t執行指令、MOV AX,0123
3)t執行指令 MOV BX,0003
4)t執行指令 MOV AX,BX、驗證AX發生變化
7、用Q命令退出Debug
a、q - 退出Debug
// 對出Debug 1)-q