匯編語言Debug命令詳解教程
參考書籍《匯編語言》——王爽
Debug的命令比較多,這里我介紹常用的命令,其余的等需要的時候再進(jìn)行查詢。
| 命令 | 用途 |
|---|---|
| Debug-R | 查看、改變CPU寄存器的內(nèi)容 |
| Debug-D | 查看內(nèi)存中的內(nèi)容 |
| Debug-E | 改寫內(nèi)存中的內(nèi)容 |
| Debug-U | 將內(nèi)存中的機(jī)器指令翻譯成匯編指令 |
| Debug-T | 執(zhí)行一條機(jī)器指令 |
| Debug-A | 以匯編指令的格式在內(nèi)存中寫入一條機(jī)器指令 |
| … | … |
Debug的由來?
主人公:Grace.Hoper(格雷斯.霍普)
1937年,美國青年霍德華.艾肯找到IBM公司為其投資200萬美圓研制計算機(jī),第一臺成品艾肯把它取名為:馬克1號,又叫“自動序列受控計算機(jī)”,從這時起IBM公司由生產(chǎn)制表機(jī),肉鋪磅秤,咖啡研磨機(jī)等亂七八糟玩意兒的行業(yè),正式跨進(jìn)“計算機(jī)”領(lǐng)地。
為馬克1號編制程序的是一位女?dāng)?shù)學(xué)家雷斯.霍波,有一天,她在調(diào)試程序時出現(xiàn)故障,拆開繼電器后,發(fā)現(xiàn)有只飛蛾被夾扁在觸點(diǎn)中間,從而“卡”住了機(jī)器的運(yùn)行。于是,霍波詼諧的把程序故障統(tǒng)稱為“臭蟲(BUG)”,把排除程序故障叫DEBUG,而這奇怪的”稱呼“,竟成為后來計算機(jī)領(lǐng)域的專業(yè)行話。如DOS系統(tǒng)中的調(diào)試程序,程序名稱就叫DEBUG.
實(shí)例講解:
1. Debug-R命令
話不多說,直接上圖
1. 查看寄存器中的內(nèi)容

2. 改變寄存器中的內(nèi)容

2. Debug-D命令
1. 查看內(nèi)存中的內(nèi)容,如果沒有明確指出查看多少內(nèi)存單元則默認(rèn)為128字節(jié)存儲單元。

2.給出具體的查看范圍,這里我要查看內(nèi)存單元是2000:1000~2000:1009這10個存儲單元。
3.查看某一個具體的存儲單元,情況類似,例如我查看2000:1024指向的存儲單元中的內(nèi)容。

3. Debug-E命令
1. 連續(xù)改寫內(nèi)存中的內(nèi)容,比如我要改寫從2000:1000指向內(nèi)存單元開始連續(xù)的6個字節(jié)。用E命令修改后,再用D指令顯示內(nèi)存單元中的數(shù)據(jù)。

2. 逐個改寫內(nèi)存中的內(nèi)容,比如我要改寫從2000:1000指向內(nèi)存單元開始連續(xù)的6個字節(jié)。
?。?)輸入E 2000:1000 Enter鍵結(jié)束
(2)光標(biāo)停在“.”后面,“.”前面是以前內(nèi)存單元中的數(shù)據(jù),后面是要修改的值,輸入值后點(diǎn)擊空格鍵,跳到下一個內(nèi)存單元進(jìn)行修改,如果不輸入直接點(diǎn)擊空格鍵則表示不對當(dāng)前內(nèi)存單元進(jìn)行修改(圖中我并沒有對2000:1001指向的內(nèi)存單元進(jìn)行修改)。
?。?)所有內(nèi)存單元的值均修改完畢后,點(diǎn)擊Enter鍵退出E命令。
流程圖展示步驟:






最終結(jié)果:
3.E命令向指定的內(nèi)存單元中寫入字符、字符串。D命令顯示內(nèi)存單元中的數(shù)據(jù),顯示的是其對應(yīng)的ASCII碼。

4.E命令向內(nèi)存中寫入機(jī)器碼,后面介紹U命令時,再用其查看機(jī)器碼的含義。
機(jī)器碼 對應(yīng)的匯編指令
B80100 MOV AX,0001
B90200 MOV CX,0002
01C8 ADD AX,CX

4. Debug-U命令
1. 將內(nèi)存中的機(jī)器指令翻譯成匯編指令。用上面的例子進(jìn)行說明:

5. Debug-T命令
1. 執(zhí)行一條機(jī)器指令。對上面給出的機(jī)器指令進(jìn)行執(zhí)行,結(jié)果如下:



6. Debug-A命令
1. 命令以匯編指令的格式在內(nèi)存中寫入一條機(jī)器指令。用D命令顯示,U命令將將內(nèi)存中的機(jī)器指令翻譯成匯編指令。

至此收官
另附:
1. 關(guān)于Windows 64 位系統(tǒng)下如何安裝配置 DosBox 及 debug.exe。請參考以下文章:
匯編語言DOSBox及debug.exe在Windows64下環(huán)境搭建
2. 王爽的《匯編語言》
3. Debug命令大全
4. 僅用于學(xué)習(xí)交流,如有侵權(quán)請告知,后會刪除。
以上就是匯編語言Debug命令詳解教程的詳細(xì)內(nèi)容,更多關(guān)于匯編語言Debug命令的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
匯編用串檢測scasb尋找數(shù)的位置實(shí)現(xiàn)
這篇文章主要介紹了匯編用串檢測scasb尋找數(shù)的位置實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
UEFI開發(fā)實(shí)戰(zhàn)SlimBootloader中調(diào)用FSP
這篇文章主要為大家介紹了UEFI開發(fā)實(shí)戰(zhàn)SlimBootloader中調(diào)用FSP基礎(chǔ)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
匯編語言系列之匯編實(shí)現(xiàn)簡單數(shù)學(xué)運(yùn)算
這篇文章主要介紹了匯編語言系列之匯編實(shí)現(xiàn)簡單數(shù)學(xué)運(yùn)算的思路詳解,本文給大家列出了兩種算術(shù)運(yùn)算的代碼,設(shè)計思路給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-11-11
匯編實(shí)現(xiàn)的memcpy和memset的方法
這篇文章主要介紹了匯編實(shí)現(xiàn)的memcpy和memset的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02
匯編語言80x86系統(tǒng)通用數(shù)據(jù)傳送指令詳解
這篇文章主要為大家介紹了匯編語言80x86系統(tǒng)通用的數(shù)據(jù)傳送指令詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11
UEFI開發(fā)實(shí)戰(zhàn)用戶交互界面使用說明VFR文件
這篇文章主要為大家介紹了UEFI開發(fā)實(shí)戰(zhàn)用戶交互界面使用說明VFR文件,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06

