如何在dosbox裡進行彙編debug

2021-09-28 22:19:24 字數 1479 閱讀 1187

點開dosboxan安裝資料夾裡的圖中檔案,在檔案末尾加入如下**

mount c c:\dos ; 掛載驅動器

path=%path%; \masm ; 新增路徑

c: ; 轉到e盤

cd \asm ; 進入asm資料夾

執行dosbox,介面如下

總的來說除錯有以下幾類

r命令檢視、改變cpu暫存器的內容;

d命令檢視記憶體中的內容;

e命令改寫記憶體中的內容;

u命令將記憶體中的機器指令翻譯成彙編指令;

t命令執行一條機器指令;

g命令跳轉到偏移位址;

p命令結束迴圈或者是int 21h時是退出程式;

a命令是以彙編指令的格式在記憶體中寫入一條機器指令。

以以下程式為例

例,將記憶體 ffff:0 ~ ffff:b 段元中的資料拷貝到 0:400 ~ 0:40b 單元中

assume cs:code

code segment

mov bx,0

mov cx,12

s: mov ax,0ffffh

mov ds,ax

mov dl,[bx]

mov ax,0040h

mov ds,ax

mov [bx],dl

inc bx

loop s

mov ax,4ch

int 21h

code ends

end

在dosbox裡依次輸入masm test.asm,回車

然後debug test1.exe除錯

1.輸入-d [位址] 或-d [範圍]檢視記憶體單元的內容

如下圖就可以看到ds段暫存器中的值

2.用-e 位址 內容表修改暫存器中的內容

3.用-r顯示cpu內部所有暫存器的內容和標誌位狀態

-t可單步執行指令

4.可用-g [=位址1][位址2[位址3。。。 ]]設定斷點執行程式,其中位址1規定了執行起始位址,後面若干位址為斷點位址

5.-a [位址]

從指定的位址開始允許輸入彙編語句,把它們彙編成機器**相繼存放在從指定位址開始的儲存器中。

如何在DEV C 裡嵌入彙編

呵呵,這方面的資料很多,但是東是東一鱗西一爪的。這篇也算我自己的乙個小總結吧!在dev c 裡使用內聯彙編的格式不同於vc的,這一點需要注意 vc裡採用的是intel的格式,而dev c 採用的是at a的彙編格式。如下例 include int main 這個可以在vc下編譯通過,但用dev c ...

如何在開發專案裡進行自我激勵!

不少程式設計師都說 程式設計工作 軟體開發 專案測試 等等之類的工作很無聊,很苦逼,做著做著就覺得沒勁了。所以有人就針對這樣的現象發問 如何在開發專案裡進行自我激勵?消極的心態和低迷的態度是不可能創造出優秀的軟體產品的。所以文章裡收集了各位出謀劃策的主要內容,希望這些錦囊妙計對正在工作當中苦惱的你有...

如何在django裡上傳csv檔案並進行入庫處理

運維平台匯入資料這一功能實在是太重要了,我敢說在沒有建自己的cmdb平台前,大多數公司管理伺服器資訊肯定是 用 最麻煩的就是有點更新就得每個人發乙份,這樣大家資訊才能統一,很不方便,終於有一天受不了了,搞了乙個伺服器資訊管理平台,那面臨的第乙個問題不是說功能好或不不好,而是怎麼才能把表裡的資料匯入到...