匯編語言Debug命令詳解教程
參考書籍《匯編語言》——王爽
Debug的命令比較多,這里我介紹常用的命令,其余的等需要的時(shí)候再進(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ì)算機(jī),第一臺(tái)成品艾肯把它取名為:馬克1號(hào),又叫“自動(dòng)序列受控計(jì)算機(jī)”,從這時(shí)起IBM公司由生產(chǎn)制表機(jī),肉鋪磅秤,咖啡研磨機(jī)等亂七八糟玩意兒的行業(yè),正式跨進(jìn)“計(jì)算機(jī)”領(lǐng)地。
為馬克1號(hào)編制程序的是一位女?dāng)?shù)學(xué)家雷斯.霍波,有一天,她在調(diào)試程序時(shí)出現(xiàn)故障,拆開繼電器后,發(fā)現(xiàn)有只飛蛾被夾扁在觸點(diǎn)中間,從而“卡”住了機(jī)器的運(yùn)行。于是,霍波詼諧的把程序故障統(tǒng)稱為“臭蟲(BUG)”,把排除程序故障叫DEBUG,而這奇怪的”稱呼“,竟成為后來計(jì)算機(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)存單元?jiǎng)t默認(rèn)為128字節(jié)存儲(chǔ)單元。

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

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

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






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

4.E命令向內(nèi)存中寫入機(jī)器碼,后面介紹U命令時(shí),再用其查看機(jī)器碼的含義。
機(jī)器碼 對(duì)應(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ī)器指令。對(duì)上面給出的機(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。請(qǐng)參考以下文章:
匯編語言DOSBox及debug.exe在Windows64下環(huán)境搭建
2. 王爽的《匯編語言》
3. Debug命令大全
4. 僅用于學(xué)習(xí)交流,如有侵權(quán)請(qǐng)告知,后會(huì)刪除。
以上就是匯編語言Debug命令詳解教程的詳細(xì)內(nèi)容,更多關(guān)于匯編語言Debug命令的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
匯編用串檢測(cè)scasb尋找數(shù)的位置實(shí)現(xiàn)
這篇文章主要介紹了匯編用串檢測(cè)scasb尋找數(shù)的位置實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(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)簡(jiǎn)單數(shù)學(xué)運(yùn)算
這篇文章主要介紹了匯編語言系列之匯編實(shí)現(xiàn)簡(jiǎn)單數(shù)學(xué)運(yùn)算的思路詳解,本文給大家列出了兩種算術(shù)運(yùn)算的代碼,設(shè)計(jì)思路給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-11-11
匯編實(shí)現(xiàn)的memcpy和memset的方法
這篇文章主要介紹了匯編實(shí)現(xiàn)的memcpy和memset的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下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

