導航:首頁 > 程序命令 > debugd命令

debugd命令

發布時間:2023-02-18 14:31:31

㈠ debug命令的使用

在Windows 95/98的環境中,打開命令窗口的步驟為:點擊「開始」→「運行」,輸入「command」命令; 在WindowsXP及WIN7的環境中,打開命令窗口的步驟為:點擊「開始」→「運行」,輸入「cmd」命令;

2.啟動DEBUG
在命令窗口中啟動DEBUG,啟動命令一般為:DEBUG [文件名] [參數表]。其中:文件名指定被調試的文件,其包括名和後綴,參數表是被調試文件運行時所需要的參數。被調試的文件可以是系統中的任何文件,但通常它們的 後綴為.EXE或.COM。 當DEBUG啟動成功後,將顯示連接符「-」,這時,可輸入各種DEBUG命令。DEBUG中所有命令及其含義如DEBUG各命令功能說明表 所示。 關於使用命令的幾點說明:在提示符「-」下才能輸入命令,在按「回車」鍵後,該命令才開始執行命令是單個字母,命令和參數的大小寫可混合輸入可用F1、 F2、F3、Ins、Del、左移鍵、右移鍵等編輯鍵來編輯本行命令當命令出現語法錯誤時,將在出錯位置顯示「^ Error」可用Ctrl+C或Ctrl+Break來終止當前命令的執行,還可用Ctrl+S或Ctrl+Num Lock來暫停屏幕顯示(當連續不斷地顯示信息時)
以下通過實現十九個示例來熟悉DEBUG的命令集和基本的匯編指令。

R命令的使用
R命令作用:觀看和修改寄存器的值。

在提示符「-」下輸入以下命令:R。DEBUG將會顯示出當前所有寄存器和標志位的狀態。

接下來再輸入命令RCX。在提示符「:」後輸入100。該命令的作用是將寄存器CX的值設置為100(注意:DEBUG使用的是十六進制,這里的100相當於十進制的256。)

最後再執行R命令,觀看修改後的寄存器值。

H命令的使用
H命令作用:計算兩個十六進制數的和與差。

在提示符「–」下輸入以下命令:H 10 1。觀看命令執行結果。

運行結果的前一個數是計算出來的和,後一個數是計算出來的差。計算結果均用十六進制形式表示。

㈡ 怎樣用debug中的D命令查看內存啊

數字1:數字2(或者
d
數字1:數字2)來顯示這個地方的東西,至於e和d表示什麼,以及怎麼操作,你翻一下你的匯編書的debug那一節會有。其實你這樣寫那

㈢ debug是什麼意思啊

DEBUG是計算機排除故障的意思,DEBUG在windows系統中也是極其重要的調試操作。

debug是一個dos實用程序,主要是供程序員來進行調試程序的工具,它可以檢查程序中存在的問題,可以精確到每一行代碼的正確性,在程序開發中有很大的作用。

Debug的特點

Debug把所有數據都當成位元組處理,因此可以用它檢查內存中任何地方的位元組以及修改任何地方的位元組。它可以用於逐指令執行某個程序以驗證程序運行的正確性,也可以在機器碼這個級別追蹤執行過程、比較一個指令執行前後的值以及比較與移動內存中數據的范圍,讀寫文件與磁碟扇區。

Debug在匯編語言中的應用非常廣泛,Debug的命令比較多,大約20多個,和匯編密切相關的有R命令、D命令、E命令、U命令、T命令、A命令等等。

㈣ debug命令有什麼作用如何使用

DEBUG是為匯編語言設計的一種高度工具,它通過單步、設置斷點等方式為匯編語言程序員提供了非常有效的調試手段。x0dx0a一、DEBUG程序的調用x0dx0a 在DOS的提示符下,可鍵入命令:x0dx0a C:\DEBUG [D:][PATH][FILENAME[.EXT]][PARM1][PARM2]x0dx0a 其中,文件名是被調試文件的名字。如用戶鍵入文件,則DEBUG將指定的文件裝入存儲器中,用戶可對其進行調試。如果未鍵入文件名,則用戶可以用當前存儲器的內容工作,或者用DEBUG命令N和L把需要的文件裝入存儲器後再進行調試。命令中的D指定驅動器PATH為路徑,PARM1和PARM2則為運行被調試文件時所需要的命令參數。x0dx0a 在DEBUG程序調入後,將出現提示符,此時就可用DEBUG命令來調試程序。x0dx0a二、DEBUG的主要命令x0dx0a 1、顯示存儲單元的命令D(DUMP),格式為:x0dx0a _D[address]或_D[range]x0dx0a 例如,按指定范圍顯示存儲單元內容的方法為:x0dx0a -d100 120x0dx0a18E4:0100 c7 06 04 02 38 01 c7 06-06 02 00 02 c7 06 08 02 G...8.G.....G...x0dx0a18E$:0110 02 02 bb 04 02 e8 02 00-CD 20 50 51 56 57 8B 37 ..;..h..M PQVW.x0dx0a 7x0dx0a18E4:0120 8Bx0dx0a 其中0100至0120是DEBUG顯示的單元內容,左邊用十六進製表示每個位元組,右邊用ASCII字元表示每個位元組,·表示不可顯示的字元。這里沒有指定段地址,D命令自動顯示DS段的內容。如果只指定首地址,則顯示從首地址開始的80個位元組的內容。如果完全沒有指定地址,則顯示上一個D命令顯示的最後一個單元後的內容。x0dx0a2、修改存儲單元內容的命令有兩種。x0dx0a ·輸入命令E(ENTER),有兩種格式如下:第一種格式可以用給定的內容表來替代指定范圍的存儲單元內容。命令格式為:x0dx0a -E address[list]x0dx0a例如,-E DS:100 F3'XYZƎDx0dx0a 其中F3,'X','Y','Z'和各佔一個位元組,該命令可以用這五個位元組來替代存儲單元DS:0100到0104的原先的內容。x0dx0a 第二種格式則是採用逐個單元相繼修改的方法。命令格式為:x0dx0a -E addressx0dx0a例如,-E DS:100x0dx0a 則可能顯示為:x0dx0a 18E4:0100 89.-x0dx0a 如果需要把該單元的內容修改為78,則用戶可以直接鍵入78,再按「空格」鍵可接著顯示下一個單元的內容,如下:x0dx0a 18E4:0100 89.78 1B.-x0dx0a 這樣,用戶可以不斷修改相繼單元的內容,直到用ENTER鍵結束該命令為止。x0dx0a ·填寫命令F(FILL),其格式為:x0dx0a -F range listx0dx0a例如:-F 4BA:0100 5 F3'XYZƎDx0dx0a 使04BA:0100~0104單元包含指定的五個位元組的內容。如果list中的位元組數超過指定的范圍,則忽略超過的項;如果list的位元組數小於指定的范圍,則重復使用list填入,直到填滿指定的所有單元為止。x0dx0a3)檢查和修改寄存器內容的命令R(register),它有三種格式如下:x0dx0a ·顯示CPU內所有寄存器內容和標志位狀態,其格式為:x0dx0a -Rx0dx0a例如,-rx0dx0a AX=0000 BX=0000 CX=010A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000x0dx0a DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=0100 NV UP DI PL NZ NA PO NCx0dx0a 18E4:0100 C70604023801 MOV WORD PTR [0204],0138 DS:0204=0000x0dx0a ·顯示和修改某個寄存器內容,其格式為:x0dx0a -R register namex0dx0a例如,鍵入x0dx0a -R AXx0dx0a 系統將響應如下:x0dx0a AX F1F4x0dx0a :x0dx0a即AX寄存器的當前內容為F1F4,如不修改則按ENTER鍵,否則,可鍵入欲修改的內容,如:x0dx0ax0dx0a -R bxx0dx0a BX 0369x0dx0a :059Fx0dx0a則把BX寄存器的內容修改為059F。x0dx0a ·顯示和修改標志位狀態,命令格式為:x0dx0a -RF系統將響應,如:x0dx0a OV DN EI NG ZR AC PE CY-x0dx0a 此時,如不修改其內容可按ENTER鍵,否則,可鍵入欲修改的內容,如:x0dx0a OV DN EI NG ZR AC PE CY-PONZDINVx0dx0a 即可,可見鍵入的順序可以是任意的。x0dx0a4)運行命令G,其格式為:x0dx0a -G[=address1][address2[address3?]]x0dx0a 其中,地址1指定了運行的起始地址,如不指定則從當前的CS:IP開始運行。後面的地址均為斷點地址,當指令執行到斷點時,就停止執行並顯示當前所有寄存器及標志位的內容,和下一條將要執行的指令。x0dx0a5)跟蹤命令T(Trace),有兩種格式:x0dx0a ·逐條指令跟蹤x0dx0a -T [=address]x0dx0a 從指定地址起執行一條指令後停下來,顯示所有寄存器內容及標志位的值。如未指定地址則從當前的CS:IP開始執行。x0dx0a ·多條指令跟蹤x0dx0a -T [=address][value]x0dx0a 從指定地址起執行n條指令後停下來,n由value指定。x0dx0a6)匯編命令A(Assemble),其格式為:x0dx0a -A[address]x0dx0a 該命令允許鍵入匯編語言語句,並能把它們匯編成機器代碼,相繼地存放在從指定地址開始的存儲區中。必須注意:DEBUG把鍵入的數字均看成十六進制數,所以如要鍵入十進制數,則其後應加以說明,如100D。x0dx0a7)反匯編命令U(Unassemble)有兩種格式。x0dx0a ·從指定地址開始,反匯編32個位元組,其格式為:x0dx0a -U[address]x0dx0a例如:x0dx0a -u100x0dx0a 18E4:0100 C70604023801 MOV WORD PTR[0204],0138x0dx0a 18E4:0106 C70606020002 MOV WORD PTR[0206],0200x0dx0a 18E4:010C C70606020202 MOV WORD PTR[0208],0202x0dx0a 18E4:0112 BBO4O2 MOV BX,0204x0dx0a 18E4:0115 E80200 CALL 011Ax0dx0a 18E4:0118 CD20 INT 20x0dx0a 18E4:011A 50 PUSH AXx0dx0a 18E4:011B 51 PUSH CXx0dx0a 18E4:011C 56 PUSH SIx0dx0a 18E4:011D 57 PUSH DIx0dx0a 18E4:011E 8B37 MOV SI,[BX]x0dx0a如果地址被省略,則從上一個U命令的最後一條指令的下一個單元開始顯示32個位元組。x0dx0a ·對指定范圍內的存儲單元進行反匯編,格式為:x0dx0a -U[range]x0dx0a例如:x0dx0a -u100 10cx0dx0a 18E4:0100 C70604023801 MOV WORD PTR[0204],0138x0dx0a 18E4:0106 C70606020002 MOV WORD PTR[0206],0200x0dx0a 18E4:010C C70606020202 MOV WORD PTR[0208],0202x0dx0a或x0dx0a -u100 112 x0dx0a 18E4:0100 C70604023801 MOV WORD PTR[0204],0138x0dx0a 18E4:0106 C70606020002 MOV WORD PTR[0206],0200x0dx0a 18E4:010C C70606020202 MOV WORD PTR[0208],0202x0dx0ax0dx0a 可見這兩種格式是等效的。x0dx0a8)命名命令N(Name),其格式為:x0dx0a -N filespecs [filespecs]x0dx0a命令把兩個文件標識符格式化在CS:5CH和CS:6CH的兩個文件控制塊中,以便在其後用L或W命令把文件裝入存檔。filespecs的格式可以是:x0dx0a[d:][path] filename[.ext]x0dx0a例如,x0dx0a -N myprogx0dx0a -Lx0dx0a -x0dx0a可把文件myprog裝入存儲器。x0dx0a9)裝入命令(Load),有兩種功能。x0dx0a ·把磁碟上指定扇區范圍的內容裝入到存儲器從指定地址開始的區域中。其格式為:x0dx0a -L[address[drive sector sector]x0dx0a ·裝入指定文件,其格式為:x0dx0a -L[address]x0dx0a此命令裝入已在CS:5CH中格式化了文件控制塊所指定的文件。如未指定地址,則裝入CS:0100開始的存儲區中。x0dx0a10)寫命令W(Write),有兩種功能。x0dx0a ·把數據寫入磁碟的指定扇區。其格式為:x0dx0a -W address drive sector sectorx0dx0a ·把數據寫入指定的文件中。其格式為:x0dx0a -W[address]x0dx0a此命令把指定的存儲區中的數據寫入由CS:5CH處的文件控制塊所指定的文件中。如未指定地址則數據從CS:0100開始。要寫入文件的位元組數應先放入BX和CX中。x0dx0a11)退出DEBUG命令Q(Quit),其格式為:x0dx0a -Qx0dx0a它退出DEBUG,返回DOS。本命令並無存檔功能,如需存檔應先使用W命令。

㈤ debug常用命令

以下是 Debug 命令列表:

? 顯示 Debug 命令列表。
a 匯編 8086/8087/8088 記憶碼。
c 比較內存的兩個部分。
d 顯示部分內存的內容。
e 從指定地址開始,將數據輸入到內存。
f 使用指定值填充一段內存。
g 運行在內存中的可執行文件。
h 執行十六進制運算。
i 顯示來自特定埠的 1 位元組值。
l 將文件或磁碟扇區內容載入到內存。
m 復制內存塊中的內容
/n 為 l 或 w 命令指定文件,或者指定正在測試的文件的參數。
o 向輸出埠發送 1 個位元組的值。
p 執行循環、重復的字元串指令、軟體中斷或子常式。
q 停止 Debug 會話。
r 顯示或改變一個或多個寄存器。
s 在部分內存中搜索一個或多個位元組值的模式。
t 執行一條指令,然後顯示所有寄存器的內容、所有標志的狀態和 Debug 下一步要執行的指令的解碼形式。
u 反匯編位元組並顯示相應的原語句。
w 將被測試文件寫入磁碟。
xa 分配擴展內存。
xd 釋放擴展內存。
xm 映射擴展內存頁。
xs 顯示擴展內存的狀態。

㈥ debug的功能的d命令有什麼具體功能

Debug:D(轉儲)

顯示一定范圍內存地址的內容。

d [range]

參數

range

指定要顯示其內容的內存區域的起始和結束地址,或起始地址和長度。有關有效的 range 值的信息,請單擊「相關主題」列表中的「Debug 說明」。如果不指定 range,Debug 程序將從以前 d 命令中所指定的地址范圍的末尾開始顯示 128 個位元組的內容。

有關顯示寄存器內容的信息,請單擊「相關主題」列表中的 Debug R(寄存器)。

說明
當使用 d 命令時,Debug 以兩個部分顯示內存內容:十六進制部分(每個位元組的值都用十六進制格式表示)和 ASCII 碼部分(每個位元組的值都用 ASCII 碼字元表示)。每個非列印字元在顯示的 ASCII 部分由句號 (.) 表示。每個顯示行顯示 16 位元組的內容,第 8 位元組和第 9 位元組之間有一個連字元。每個顯示行從 16 位元組的邊界上開始。

範例
假定鍵入以下命令:
dcs:100 10f
Debug 按以下格式顯示範圍中的內容:
04BA:0100 54 4F 4D 00 53 41 57 59-45 52 00 00 00 00 00 00 TOM.SAWYER......
如果在沒有參數的情況下鍵入 d 命令,Debug 按以前範例中所描述的內容來編排顯示格式。顯示的每行以比前一行的地址大 16 個位元組(如果是顯示 40 列的屏幕,則為 8 個位元組)的地址開頭。
對於後面鍵入的每個不帶參數的 d 命令,Debug 將緊接在最後顯示的命令後立即顯示位元組內容。
如果鍵入以下命令,Debug 將從 CS:100 開始顯示 20h 個位元組的內容:
dcs:100 l 20
如果鍵入以下命令,Debug 將顯示範圍從 CS 段的 100h 到 115h 中所有位元組的內容:
dcs:100 115

㈦ 匯編語言中的DEBUG里的D命令具體是怎樣執行的

格式:(1)D段地址:偏移地址
(2)D偏移地址

例如:
-a
1424:0100movah,4c
1424:0102int21
1424:0104
-d100
1424:0100B44CCD2100000000-0000000000000000
1424:01100000000000000000-0000000034001314
1424:01200000000000000000-0000000000000000
1424:01300000000000000000-0000000000000000
1424:01400000000000000000-0000000000000000
1424:01500000000000000000-0000000000000000
1424:01600000000000000000-0000000000000000
1424:01700000000000000000-0000000000000000
-dcs:100
1424:0100B44CCD2100000000-0000000000000000
1424:01100000000000000000-0000000034001314
1424:01200000000000000000-0000000000000000
1424:01300000000000000000-0000000000000000
1424:01400000000000000000-0000000000000000
1424:01500000000000000000-0000000000000000
1424:01600000000000000000-0000000000000000
1424:01700000000000000000-0000000000000000
-

㈧ 如何使用debug

Debug是一種程序,一種調試工具,說白了就是供程序員檢查修改問題的工具。用比較正式的話說Debug是DOS,Windows都提供的實模式(也就是8086方式)程序的調試工具。其實嚴格來說,Debug是在DOS方式下使用的程序,我們在進入Debug前應該先進入DOS。而就目前我們用的計算機來說,進入DOS有以下兩種方法:

1.重啟計算機,進入DOS,此時進入的是實模式的DOS。

2.在Windows界面進入DOS,此時進入的是虛擬8086模式的DOS。

講到這里一定有人會問,實模式和虛擬8086模式什麼意思?給大家簡單講一下:

我們所說的CPU工作模式分為實模式和保護模式兩種,而虛擬8086是保護模式下一種任務的運行模式,並非CPU的工作模式。大家平時用的Windows系統是運行在保護模式下的,而計算機在剛啟動的時候是在實模式下運行,在啟動Windows系統時進入保護模式,除非關閉系統,否則不會回到實模式。如果要一直在實模式下運行,那就得使用DOS等實模式下的操作系統。但是在Windows系統中載入的DOS程序是在虛擬8086模式下運行的。當然這裡面涉及了一些DOS的相關知識,由於篇幅原因咱們在這兒就不講了,感興趣的可以留言評論一起交流。

好了,言歸正傳,回到Debug上, 這里有一點需要注意,Debug把所有數據都當成位元組處理,因此可以用它檢查內存中任何地方的位元組以及修改任何地方的位元組。它可以用於逐指令執行某個程序以驗證程序運行的正確性,也可以在機器碼這個級別追蹤執行過程、比較一個指令執行前後的值以及比較與移動內存中數據的范圍,讀寫文件與磁碟扇區。

值得一提的是,Debug在匯編語言中的應用非常廣泛,Debug的命令比較多,大約20多個,和匯編密切相關的有R命令、D命令、E命令、U命令、T命令、A命令等等,當然每個命令作用不同,比如D是查看內存內容,E是修改內存內容,T是執行一條機器指令等等,還有很多,而且都有固定的命名使用格式,這里就不一一講了,我們今天主要是讓大家知道並理解Debug的意思,關於怎麼使用它學有餘力的可以自行學習研究一下,好了,就到這里吧。

㈨ 請問各位命令debug是什麼意思

是調試解決bug的命令。具體問題自然解決方法不同,自然輸入的命令不同。maxdos中的debug是為maxdos提供的有力的偵錯,跟蹤程序運行,檢查系統數據的工具程序,它是在字元界面下以單字元命令方式工作。要很好地使用它必須具備一定的匯編程序設計和硬體基本知識的能力,當然,它為匯編語言程序員提供了有效的調試手段,它的功能包括以下幾個方面。
1.
直接輸入、更改、跟蹤、運行匯編程序
2.
觀察操作系統的內容;
3.
查看rom
bios的內容;
4.
觀察更改ram內部的設置值;
5.
以扇區或文件的方式讀寫軟盤數據。
在debug中地址用段地址與段內地址來表示,而段地址可以明確地指出來,也可以用一個段指示器(段寄存器)來代表,用段寄存器表示時,其段地址就是此寄存器的內含值:
如:用段地址和段內地址表示foff:0100
用段寄存器和段內地址表示csf:0100←cs指向f000
下面列出了常用命令用法。
-a
地址
從指定地址開始編寫小匯編程序,按兩個回車鍵結束編輯
-u
地址
從指定地址開始反匯編32位元組的機器指令,預設地址則從上一u命令繼續
-d
始址
終址
以16進制/asc字元對照方式顯示指定內存范圍的數據,每行顯示10h個位元組
-e
地址
值表
用給出的值表(空格分隔)替換指定地址開始的內存單元,例:-e
100
'v'
1f
'hello'
-n
文件名
為後續的l/w命令約定所操作的文件名
-l
地址
將n命令所指定文件的內容讀入到指定內存位置。另,邏輯卷扇區直接讀:-l
地址
邏卷號
起始邏扇號
扇數
-w
地址
將bx-cx個位元組的內存數據寫入n命令指定的文件中。另,邏輯卷扇區直接寫:-w
地址
邏卷號
起始邏扇號
扇數
-r
寄存器名
顯示並允許修改指定寄存器的值
-g=始址
終址
執行指定內存中的機器指令程序
-t=地址
單步執行機器指令,預設地址則從上一t命令繼續。另,繼續跟蹤m條指令:-t
m
讀取c:卷的引導扇區,並保存到boot.1文件中,並簡單分析引導程序的前面幾條指令:
-l
1000
2
0
1
-n
boot.1
-r
bx
;輸入0000
-r
cx
;輸入0200
-w
1000
-u
1000
讀取第一個硬碟上的主引導扇區,並保存到mb.1文件中,在屏幕上顯示硬碟分區表數據:
-a
100

㈩ debug命令的詳細用法

debug命令DEBUG命令參數詳解DEBUG是一個DOS實用程序,是供程序員使用的程序調試工具,可以用它檢查內存中任何地方的位元組以及修改任何地方的位元組。它可以用於逐指令執行某個程序以驗證程序運行的正確性,也可以追蹤執行過程、比較一個指令執行前後的值以及比較與移動內存中數據的范圍,讀寫文件與磁碟扇區。它的功能包括以下幾個方面。1,直接輸入,更改,跟蹤,運行匯編語言源程序;2,觀察操作系統的內容;3,查看ROMBIOS的內容;4,觀察更改RAM內部的設置值;5,以扇區或文件的方式讀寫軟盤數據DEBUG把所有數據都作為位元組序列處理。因此它可以讀任何類型的文件。DEBUG可以識別兩種數據:十六進制數據和ASCⅡ碼字元。它的顯示格式是各個位元組的十六進制值以及值在32與126之間的位元組的相應ASCⅡ碼字元。在DEBUG中輸入數據有兩種方法:提示方法和非提示方法。在用提示方法時,用戶可以輸入要求輸入數據的命令,後跟數據所要輸入的地址。然後用戶就可以看到該地之中已有內容及一個冒號提示符。此時用戶可以在提示符下輸入一個新的值或者按下回車鍵或CTRL+C回到短橫(-)提示符。在運用非提示方法時,用戶可以輸入要輸入數據的內存地址以及要輸入的位元組。但與使用字處理程序或正文編輯程序時不一樣,在使用DEBUG時,用戶不能直接移動游標到一入口點輸入或修改數據,而要一次輸入一個或幾個位元組。在使用DEBUG時可以只涉及內存中的數據,從而一般都要指定所要處理的內存地址,地址的輸入格式是:[段地址]:[位移]。如果沒有輸入地址,DEBUG將假定為當前內存段,從位於地址100H的位元組開始。前100H位元組保留給程序段前綴使用,這一專用區域用於建立DOS與程序之間的聯系。DEBUG總是用四位十六進制數表示地址。用兩位數表示十六進制數據。講到這里大家應該對DEBUG有了初步的了解,但是光知道這些可不夠,接下來我來講講DEBUG的命令格式和命令。當輸入DEBUG調用了DEBUG程序,就會出現一個短橫提示符,用戶就可以在這一短橫後輸入DEBUG程序的命令。有些DEBUG命令會顯示一個內存地址並產生一個作為提示符的冒號。在這些提示符後,用戶可以輸入一個新值以改變所顯示位置原來的值。如果用戶不輸入一個新值而是按下回車或CTRL+C,那麼原來的值不會改變。一般用不著把地址和命令名字分開。例如,用轉儲命令D察看100號地址的數據,那麼這個命令可以用以下任一種形勢輸入:D100D100D。100D,100如果輸入的命令中出現了錯誤,DEBUG將在下一行對著錯誤的位置標記出來,例如:-s100d12^ErrorDEBUG的命令及功能如下:*A[地址]匯編命令功能:將指令直接匯編成機器碼輸入到內存中。說明:用於小段程序的匯編及修改目標程序,所有輸入的數字均採用十六進制,用戶裝入內存的匯編語句是連續存放的,若沒有指定地址,並且前面沒有使用匯編命令,改語句被匯編到CS:0100區域。例A:>DEBUG-a010008F1:0100MOVAH,0908F1:0102MOVDX,10908F1:0105INT21H;08F1:0107INT21H;debugtan.exe-u:反編譯成匯編語言程碼…………..-g100指定中斷點Programterminatednormally:另外:我們在DEBUG下可運行一個文件.EXE如:A:\>debugtan.exe-g即可開始運行此程序,和在DOS下完全一樣:*H[數值][數值]十六進制算術運算命令功能:分別顯示兩個十六進制數相加的和以及第一個數減去第二個數的差。說明:替用戶完成簡單的十六進制數的運算。例:-h453856239B5BEF15*I[埠地址]功能:從指定的埠輸入並顯示(用十六進制)的一個位元組。例:-i70F9;顯示70埠的內容為F9I命令可由80X86的64K個埠取數據*L[地址][盤號:][邏輯扇區號][扇區數]功能:將一個文件或盤的絕對扇區裝入存儲器。說明:單個L命令能夠裝入的最大扇區數是80H,其中盤號0,1,2,3……分別代表A,B,C,……出現讀盤錯,顯示錯誤信息。(1)格式1.L裝入地址驅動器名起始扇區/扇區數這種方式可把磁碟上指定扇區范圍的內容裝入到存儲器從指定地址開始的區域中,在此外扇區編號引用邏輯/扇區的方式。例:-L100001,將A驅的0扇區裝至CS:100上-d10010f08F1:0100EB3C903C53444F53-362E323202010100.L,MSDOS6.22……(2)格式2:L裝入地址這種方式可把指定文件裝入內存,裝入的文件可在進入DEBUG時指定亦可用N命令建立,格式為-n文件名:例1DEBUGtan.pas-L100例2DEBUG-ntan.pas-L100須知:L命令只能讀取邏輯扇區,不能讀取硬碟分區表L命令中所用的磁碟代碼A=00,B=01,C=02……*M[地址范圍][起始地址]數據傳送命令功能:把地址范圍內的存儲器單元的內容移到起始地址的指定地址中說明:傳送期間,源區和目標區可以部分重疊;傳送後源區域數據保持不變。例:-e1004142434445-d10010f08F1:0100414243444562626364--M100104110-d110L1F08F1:0100414243450A2119-200101200796879FABCDE……*N[盤號:][路徑][文件名][擴展名]功能:定義操作文件名。說明:可同時定義兩個操作文件,並將形成的文件控制塊相應的設置在內存CS:5C和CS:6C上,供以後的L和W命令操作之用。我們在運行程序偵錯時,在啟動DEBUG時在其後加文件程序名以及該程序的參數或運行文件,但當我們偵錯一段後,可能裝入其它文件來測試,這時我們可利用N命令來設置而無需退出DEBUG。例:A:\>DEBUGtan.exe-nyoug.pas當程序偵錯一段時間後,若要把tan.exe裝入tan1.pas則-ntanl.pas*O[埠地址][數據]輸出命令功能:發送位元組到指定的輸出埠。例:當我們遇到開機要求輸入口令時,可用如下方式取消-O7010_O7100*P[=地址][數據]進程命令功能:將一個子程序調用指令,循環指令,中斷指令或一個重復字元串指令,停止在下一條指令上。說明:在執行一條子程序調用指令,循環指令,中斷指令或一個重復字元串指令時,發出P命令去執行有關指令,並且返回到要執行的下一條指令。P命令和T一樣選用來跟蹤程序運行過程用的命令,我們可以在P命令中指定程序運行的起始地址,指令個數,如未指定則CS:IP所指定程序的地址開始一次運行一條令。P與T命令的差別在於P命令把CALL/INT當成一條指令來執行,簡化了跟蹤過程,P命令只運行RAM內存的命令,而T命令則可運行RAM和ROM里的程序。*Q退出命令。*R[寄存器]寄存器命令功能:一,顯示單個寄存器的內容,並提供修改功能。二,顯示所有寄存器內容,再加上字母標志位狀態以及要執行的下一條指令。三,顯示8個標志位狀態,並提供修改功能。若不想改變則回車即可。例:-rbxbx0050:51-rAX=0000BX=0051CX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0003ES=0CD3SS=0CD3IP=0100NVUPEIPLNZNAOPNC0CD3:01000FDBOF若想改變標志寄存器,用-RF回車,則DEBUG會將標志內容顯示出來,若想改變任一標志,只要輸入該標志的名稱即可。標志名稱設置未設置標志名稱設置未設置滋出OV(未溢出)NV(未溢出)零位ZRNZ(不等於零)方向DN(減少)UP(增加)輔助進位ACNA(無進位)中斷EI(許可)DI(禁止)奇偶標志PE(偶)PO(奇)符號NG(負)PL(正)進位CYNC(清除進位)例:-RfNVUPEIPLNZNAPONC:-OVDI←輸入值*S[地址范圍][字元串]功能:在指定的地址范圍內查找給定的字元串。說明:用來指定在地址范圍內查找一個字元串,若找到則顯示其地址,否則直接顯示DEBUG提示符。隱含地址為DS段值。在此內存可以用(起始地址)(終止地址)或(起始地址)L(長度)的方式來表示,而字元串與數據行則可混合使用:如:02.76"BC"。例:-d100lof08F1:0100OF2A41430B314296-FFF0B98AF300B1..AC,1B-S100lof"AC"08F1:0102←表示找到,由0102開始,*T[=地址][指令條數]跟蹤命令功能:逐條跟蹤程序的執行,每條指令執行後都將顯示各寄存器的內容。說明:通常採用跟蹤一條指令,但用戶也可以用指令條數設定一次跟蹤多條指令,每執行一條指令之後,顯示所有寄存器的內容和標志狀態。逐條指令跟蹤-T[=起始地址]從指定地址起執行一條指令後停下來,顯示所有寄存器內容及標志位的值,如來指定地址則從當前CS:IP開始執行。A:\>DEBUG-A08F1:0100MOVDL,03H08F1:0102MOVAH,02H08F1:0104INT21H08F1:0106INT20H08F1:0108-TAX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=08F1ES=08F1SS=08F1CS=08F11P=0105NVUPEIPLNZPOCY09F1:0102B402MOVAH,02若指定起始地址,則T命令會從指定的地址開始跟蹤,我們還可以指定跟蹤一次所運行指令的個數,用Ctrl+S暫停屏幕的顯示,以便觀察。-t=10010;由CS:100開始跟蹤10條指令*U[起始地址]或者[地址范圍]功能:將內存中的內容轉換為匯編語句。說明:反匯編的位元組數取決與用戶的系統顯示形式,以及在U命令中使用的可選項。(1)從指定地址開始編譯,反匯編32個位元組-U[地址]←從CS:100開始,其反匯編32個位元組如果地址被省略,則從一個U命令的最後一條指令的下一條單元開始匯編32個位元組。(2)對指定的存貯范圍進行反匯編-u起始地址終止地址(L長度)例:-U10010908F1:0100CD20INT2008F1:0102FF9F009ACALLFA12[BX+9A00]08F1:0106F0LOCK08F1:0107FE1DCALLFAR[DI]08F1:0109F0LOCK說明:如指定了范圍則整個范圍全都會被反編譯*W[地址][盤符:][起始扇區][扇區數]寫盤命令功能:將修改過的數據寫到磁碟上。說明:可以將指定內存地址開始的數據寫在磁碟上,可以在沒有指定參數,或指定地址參數的情況下,將調試文件寫在磁碟上。在運行W時需設置文件的大小CX或BX寄存器(1)把數據寫入磁碟的指定扇區-W起始地址驅動器名起始扇區扇區數(2)把數據寫入指定文件中-W起始地址例A:\>DEBUG-A08f1:0100..寫入程序段08F1:012A.-RCXCX:0000:2A←寫入位元組數,即為程序結尾地址減起始地址-ntan.com←設置文件名,需後綴為com-wWring002Abytes-qA:\>TAN←即可執行此程序*"XD"命令:釋放EMS內存例:-XD0001handle0001deallocatel←釋放了利用XD釋放後可再分配*"XM"命令;把擴充內存上的內存頁區映射到主內存區格式:XMRAM長頁碼主內存頁碼句柄例:-XM320001←把0001號句柄的第3號邏輯頁區映射到2號真實頁區*"XS"命令:顯示當前EMS使用情況。格式-XS實用debug命令集錦1.非物理0磁軌壞軟盤的修復此種損壞從軟盤盤面上來看並沒有明顯的劃傷和霉變。一般可以恢復其數據,也可是軟盤重新在利用。處理方法如下:ⅰ.進入debugⅱ.取一張引導區沒有損壞的好磁碟,插入軟碟機-l100001ⅲ.插入損壞的磁碟到軟碟機-w100001-q注意:好盤與壞盤容量必須相同2.物理0磁軌壞軟盤中的數據讀取對於0磁軌損壞的磁碟,一般來說是應該拋棄了,當你也不妨試一試已下方法:磁化處理:用較強的磁鐵在靠近壞磁碟的表面處反復移動,切不可碰到磁碟介質,以免劃傷表面,然後在試試格式化。軟盤換面:小心的將磁碟打開,堅磁片與金屬晶元分開,方面後再按原來的方法粘在一起即可,在重新格式化。diskfix:對於diskfix想必大家都用的比較多了,裡面的磁碟修復功能很好用的。能修復大多數磁碟表面錯誤。

閱讀全文

與debugd命令相關的資料

熱點內容
伺服器主機如何設置啟動 瀏覽:280
linux配置網路命令 瀏覽:774
一張照片怎麼製作視頻app 瀏覽:908
pythonweb和php 瀏覽:976
電腦伺服器地址ip地址 瀏覽:823
對矩陣壓縮是為了 瀏覽:910
setfacl命令 瀏覽:172
linux子系統中斷 瀏覽:342
linux查看進程ps 瀏覽:224
知識庫系統php 瀏覽:623
小波變換壓縮圖像python 瀏覽:151
阿里巴巴程序員怎麼月入百萬 瀏覽:173
如何使用國外伺服器 瀏覽:188
燃燈者pdf 瀏覽:468
編譯器用數學嗎 瀏覽:7
圖形化apk反編譯工具 瀏覽:48
考勤表加密怎麼辦 瀏覽:735
arj壓縮與解壓批處理怎麼寫 瀏覽:658
php和大數據哪個好 瀏覽:930
未來最值得投資的加密貨幣 瀏覽:526