DEBUG使用的具體方法_第1頁
DEBUG使用的具體方法_第2頁
DEBUG使用的具體方法_第3頁
DEBUG使用的具體方法_第4頁
DEBUG使用的具體方法_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

DEBUG程序的使用一、在DOS的提示符下,可如下鍵入Debug啟動調(diào)試程序:DEBUG

[路徑\文件名]

[參數(shù)1]

[參數(shù)2]Debug后可以不帶文件名,僅運行Debug程序;需要時,再用N和L命令調(diào)入被調(diào)試程序。命令中可以帶有被調(diào)試程序的文件名,則運行Debug的同時,還將指定的程序調(diào)入主存;參數(shù)1/2是被調(diào)試程序所需要的參數(shù)。在Debug程序調(diào)入后,根據(jù)有無被調(diào)試程序及其類型相應設置寄存器組的內(nèi)容,發(fā)出Debug的提示符“-”,此時就可用Debug命令來調(diào)試程序。運行Debug程序時,如果不帶被調(diào)試程序,則所有段寄存器值相等,都指向當前可用的主存段;除SP之外的通用寄存器都設置為0,而SP指示當前堆棧頂在這個段的尾部;IP=0100h;狀態(tài)標志都是清0狀態(tài)。運行Debug程序時,如果帶入的被調(diào)試程序擴展名不是.EXE,則BX.CX包含被調(diào)試文件大小的字節(jié)數(shù)(BX為高16位),其他同不帶被調(diào)試程序的情況。運行Debug程序時,如果帶入的被調(diào)試程序擴展名是.EXE,則需要重新定位。此時,CS

:

IP和SS

:

SP根據(jù)被調(diào)試程序確定,分別指向代碼段和堆棧段。DS=ES指向當前可用的主存段,BX.CX包含被調(diào)試文件大小的字節(jié)數(shù)(BX為高16位),其他通用寄存器為0,狀態(tài)標志都是清0狀態(tài)。二、DEBUG命令的格式Debug的命令都是一個字母,后跟一個或多個參數(shù):

字母

[參數(shù)]命令的使用中注意:①

字母不分大小寫;②

只使用16進制數(shù),沒有后綴字母;③

分隔符(空格或逗號)只在兩個數(shù)值之間是必須的,命令和參數(shù)間可無分隔符;④

每個命令只有按了回車鍵后才有效,可以用Ctrl+Break中止命令的執(zhí)行;⑤

命令如果不符合Debug的規(guī)則,則將以“error”提示,并用“^”指示錯誤位置。許多命令的參數(shù)是主存邏輯地址,形式是“段基地址

:

偏移地址”。其中,段基地址可以是段寄存器或數(shù)值;偏移地址是數(shù)值。如果不輸入段地址,則采用默認值,可以是缺省段寄存器值。如果沒有提供偏移地址,則通常就是當前偏移地址。對主存操作的命令還支持地址范圍這種參數(shù),它的形式是:“開始地址

結(jié)束地址”(結(jié)束地址不能具有段地址),或者是:“開始地址

L字節(jié)長度”。三、DEBUG子命令1、顯示命令DD(Dump)命令顯示主存單元的內(nèi)容,它的格式如下(注意分號后的部分用于解釋命令功能,不是命令本身):

D[地址]

;顯示當前或指定開始地址的主存內(nèi)容

D[范圍]

;顯示指定范圍的主存內(nèi)容例如,顯示當前(接著上一個D命令顯示的最后一個地址)主存內(nèi)容:左邊部分是主存邏輯地址,中間是連續(xù)16個字節(jié)的主存內(nèi)容(16進制數(shù),以字節(jié)為單位),右邊部分是這16個字節(jié)內(nèi)容的ASCII字符顯示,不可顯示字符用點“.”表示。一個D命令僅顯示“8行×16個字節(jié)”(80列顯示模式)內(nèi)容。再如:

-d100

;顯示數(shù)據(jù)段100h開始的主存單元

-dcs:0

;顯示代碼段的主存內(nèi)容

-d2f0L20

;顯示ds:2f2、修改命令EE(Enter)命令用于修改主存內(nèi)容,它有兩種格式:

E

地址

;格式1,修改指定地址的內(nèi)容

E

地址

數(shù)據(jù)表

;格式2,用數(shù)據(jù)表的數(shù)據(jù)修改指定地址的內(nèi)容格式1是逐個單元相繼修改的方法。例如,鍵入“e

ds:100”,Debug顯示原來內(nèi)容,用戶可以直接輸入新數(shù)據(jù),然后按空格鍵顯示下一個單元的內(nèi)容,或者按“-”鍵顯示上一個單元的內(nèi)容;不需要修改可以直接按空格或“-”鍵;這樣,用戶可以不斷修改相繼單元的內(nèi)容,直到用回車鍵結(jié)束該命令為止。

格式2可以一次修改多個單元,例如:

-e

ds:100

F3`XYZ`8D

;用F3/`X`/`Y`/`Z`/8D這5個數(shù)據(jù)替代DS:0100

~

0104的原來內(nèi)容3、填充命令FF(Fill)命令用于對一個主存區(qū)域填寫內(nèi)容,同時改寫原來的內(nèi)容,其格式為:

F

范圍

數(shù)據(jù)表該命令用數(shù)據(jù)表的數(shù)據(jù)寫入指定范圍的主存。如果數(shù)據(jù)個數(shù)超過指定的范圍,則忽略多出的項;如果數(shù)據(jù)個數(shù)小于指定的范圍,則重復使用這些數(shù)據(jù),直到填滿指定范圍。?

所有輸入的數(shù)值都是16進制數(shù);

?

段超越指令需要在相應指令前,單獨一行輸入;

?

段間(遠)返回的助記符要使用RETF;

?

A命令也支持最常用的兩個偽指令DB和DW。6、反匯編命令U反匯編命令U(Unassemble)將主存內(nèi)容按照機器代碼形成匯編指令顯示:

U

[地址]

;從指定地址開始,反匯編32個字節(jié)(80列顯示模式)

U

范圍

;對指定范圍的主存內(nèi)容進行反匯編U命令中如果沒有指定地址,則接著上一個U命令的最后一個單元開始;若還沒有使用過U命令,則從當前CS

:

IP開始。屏幕顯示的左邊是主存邏輯地址,中間是該指令的機器代碼,而右邊則是對應的指令匯編格式。7、運行命令G運行命令G(Go)從指定地址處開始運行程序,直到遇到斷點或者程序正常結(jié)束。

G

[=地址]

[斷點地址1,斷點地址2,...,斷點地址10]G命令等號后的地址指定程序段運行的起始地址,如不指定則從當前的CS

:

IP開始運行。斷點地址如果只有偏移地址,則默認是代碼段CS;斷點可以沒有,但最多只能有10個。程序遇到斷點(實際上就是斷點中斷指令I(lǐng)NT

3),停止執(zhí)行,并顯示當前所有寄存器和標志位的內(nèi)容、以及下一條將要執(zhí)行的指令(顯示內(nèi)容同R命令),以便觀察程序運行到此的情況。程序正常結(jié)束,將顯示“Program

terminated

normally”。注意,G命令以及后面的T和P命令要指向正確的指令代碼,否則會出現(xiàn)不可預測的結(jié)果,例如“死機”。8、跟蹤命令T跟蹤命令T(Trace),也稱為單步命令,每執(zhí)行一條指令就顯示運行結(jié)果,使程序員可以細致地觀察程序的執(zhí)行情況。

T

[=地址]

;逐條指令跟蹤

T

[=地址]

[數(shù)值]

;多條指令跟蹤從指定地址起執(zhí)行一條或數(shù)值參數(shù)指定條數(shù)的指令后停下來,每條指令執(zhí)行后都要顯示所有寄存器和標志位的值以及下一條指令。如未指定地址則從當前的CS

:

IP開始執(zhí)行。注意給出的執(zhí)行地址前有一個等號,否則會被認為是被跟蹤指令的條數(shù)(數(shù)值)。T命令逐條指令執(zhí)行程序,遇到子程序(CALL)或中斷調(diào)用(INT

n)指令也不例外,也會進入到子程序或中斷服務程序當中執(zhí)行。9、繼續(xù)命令P繼續(xù)命令P(Proceed)類似T命令,逐條執(zhí)行指令、顯示結(jié)果。但是當遇到子程序調(diào)用、中斷功能調(diào)用和循環(huán)指令等時,不在子程序、中斷服務程序或循環(huán)體中單步執(zhí)行,而是直接執(zhí)行完成子程序、中斷服務程序或循環(huán)體,然后顯示結(jié)果。當不需要調(diào)試子程序、中斷服務程序或循環(huán)程序段時,要應用P命令,而不是T命令。

P

[=地址]

[數(shù)值]10、退出命令Q退出命令Q(Quit)使Debug程序退出,返回DOS。Q命令并無存盤功能,可使用W命令存盤。11、命名命令N命名命令N(Name)把一個或兩個可以包含路徑的文件全名存入Debug中,以便在其后用L或W命令把文件裝入或存盤。

N

文件名1[,文件名2]12、裝入命令L裝入命令L(Load)將磁盤中的文件或扇區(qū)內(nèi)容裝載到主存中。

L

[地址]

;格式1:裝入由N命令指定的文件

格式1的L命令裝載一個文件到給定的主存地址處。

L

地址

驅(qū)動器

扇區(qū)號

扇區(qū)數(shù)

;格式2:裝入指定磁盤扇區(qū)范圍的內(nèi)容格式2的L命令裝載磁盤的若干扇區(qū)(最多80h)到給定的主存地址處;缺省段地址是CS。其中,0表示A盤,1表示B盤,2表示C盤,……。13、寫盤命令W寫盤命令W(Write)主存內(nèi)容寫入磁盤的文件或扇區(qū)中,與L命令相反。

W

[地址]

;格式1:將由N命令指定的文件寫入磁盤格式1的W命令將指定開始地址的數(shù)據(jù)寫入一個文件(這個文件應該已經(jīng)用N命令命名);如未指定地址則從CS

:

100開始。要寫入文件的字節(jié)數(shù)應先放入BX(高字)和CX(低字)中。如果采用這個W命令保存你的可執(zhí)行程序,它的擴展名應是COM;它不能寫入具有EXE和HEX擴展名的文件。

W

地址

驅(qū)動器

扇區(qū)號

扇區(qū)數(shù)

;格式2:把數(shù)據(jù)寫入指定磁盤扇區(qū)范圍格式2的W命令將指定地址的數(shù)據(jù)寫入磁盤的若干扇區(qū)(最多80H);如果沒有給出段地址,則缺省是CS。其他說明同L命令。由于格式2的W命令直接對磁盤寫入,沒有經(jīng)過DOS文件系統(tǒng)管理,所以一定要小心,否則可能無法利用DOS文件系統(tǒng)讀寫14、其它命令①

比較命令C(Compare)

C

范圍

地址

;將指定范圍的內(nèi)容與指定地址內(nèi)容比較②

16進制數(shù)計算命令H(Hex)

H

數(shù)字1,數(shù)字2

;同時計算兩個16進制數(shù)字的和與差③

輸入命令I(lǐng)(Input)

I

端口地址

;從指定I/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論