彙編實驗:DEBUG命令調試

目錄

實驗名稱:DEBUG命令調試

一、實驗目的及要求

二、實驗環境

三、實驗內容

四、實驗過程

r 命令:查看寄存器的值

2.d 命令查看內存地址之中的數字

4.e命令:把給定的數據送到指定地址開始連續的內存單元

5.u命令:反彙編 ;  

6.a 修改內存單元彙編代碼

7.  t命令:從指定地址開始執行指令

8.g 命令:

9.q命令:退出debug;

五、實驗體會


西安財經大學信息學院

實驗名稱:DEBUG命令調試

一、實驗目的及要求

1.熟悉debug的 應用,爲學習指令系統打好基礎;

2.利用debug觀察寄存器的值;

3.直接彙編指令,單步調試,編輯數據

二、實驗環境

硬件環境:一臺微型計算機;

軟件環境:windows 10,  dosbox,   debug環境,masm

三、實驗內容

練習dos環境下debug命令;

四、實驗過程

  1. r 命令:查看寄存器的值

 

 

上面就可以看到當前寄存器的狀態(數值)

當前的指令指針位於CS:IP 073F:0100

數據段從073F0K開始

r 如果命令帶上寄存器這個參數可以修改寄存器的數值,如下將ax的數字修改成24

 

2.d 命令查看內存地址之中的數字

使用方法

  1. 無參數

當不帶參數的時候顯示當前ds:ip內容,如過在一次執行會顯示後續內容

 

  1. 段地址:偏移地址

當參數爲段地址:偏移地址時,默認顯示包括該地址的後續128個字節

 

上面顯示的是1000:0 -1000:006F的地址

 

  1. 段地址:偏移地址 最大顯示地址

 

如上顯示的內存單元爲1000:0 - 1000:f 共十六個字節的內容

 

4.e命令:把給定的數據送到指定地址開始連續的內存單元

如下圖,然後用d命令查詢內存單元的內容,如下圖,把20h送到1000:0000單元,用d命令指令查看1000:0000單元的內容爲20;

 

 

 

5.u命令:反彙編 ;  

這個命令可以將內存區域反彙編代碼之後顯示,例如顯示當前區域的彙編代碼

也可以通與段地址:偏移地址爲參數顯示,如下將1000:0段顯示爲彙編代碼

 

6.a 修改內存單元彙編代碼

可以加上參數段地址:偏移地址,

一下是爲a,指令將當前的代碼修改成

mov ax,2

mov bx,3

mov ax,bx

add ax,bx

add ax,1

add ax,1

add ax,1

mov ax,1000

mov ds,ax

mov ax,2000

mov bx,10

mov ss,ax

mov sp,10

通過u命令顯示反彙編代碼

7.  t命令:從指定地址開始執行指令

也可以指定執行指令的條數,如下圖,執行後顯示每條指令執行完後的所有寄存器內容和標誌爲的狀態;

下面爲執行的4中修改的命令

mov ax,2

mov bx,3

mov ax,bx

add ax,bx

add ax,1

add ax,1

add ax,1

mov ax,1000

mov ds,ax

mov ax,2000

mov bx,10

mov ss,ax

mov sp,10

 

8.g 命令:

從指定地址開始執行程序,直到程序結束或遇到int3;或者是從指定的地址開始,到指定的終止地址執行;

將2000:0內存區域的代碼修改成

mov ax,3

mov bx,5

mov cx,bx

mov bx,ax

mov ax,cx

int 3

;交換ax,bx的值

g 2000:0命令執行之後

程序崩潰

9.q命令:退出debug;

 

 

五、實驗體會

在本次實驗之中我學會debug的環境的命令操作,掌握了一些基本彙編命令操作,將直接彙編指令,單步調試,編輯數據操作的十分熟練。理解了8086CPU的原理。

 

 

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