目錄
西安財經大學信息學院
實驗名稱:DEBUG命令調試
一、實驗目的及要求
1.熟悉debug的 應用,爲學習指令系統打好基礎;
2.利用debug觀察寄存器的值;
3.直接彙編指令,單步調試,編輯數據
二、實驗環境
硬件環境:一臺微型計算機;
軟件環境:windows 10, dosbox, debug環境,masm
三、實驗內容
練習dos環境下debug命令;
四、實驗過程
-
r 命令:查看寄存器的值
上面就可以看到當前寄存器的狀態(數值)
當前的指令指針位於CS:IP 073F:0100
數據段從073F0K開始
r 如果命令帶上寄存器這個參數可以修改寄存器的數值,如下將ax的數字修改成24
2.d 命令查看內存地址之中的數字
使用方法
- 無參數
當不帶參數的時候顯示當前ds:ip內容,如過在一次執行會顯示後續內容
- 段地址:偏移地址
當參數爲段地址:偏移地址時,默認顯示包括該地址的後續128個字節
上面顯示的是1000:0 -1000:006F的地址
- 段地址:偏移地址 最大顯示地址
如上顯示的內存單元爲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的原理。