8086彙編 Debug 使用

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章