亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > BAT > 正文

DEBUG命令詳解教程第1/2頁

2020-07-26 20:34:51
字體:
來源:轉載
供稿:網友
DEBUG是DOS中的一個外部命令,從DOS 1.0起就帶有此命令,因此可見此命令的重要性了。雖然此命令的功能非常強大,可以解決許多問題,可是對許多人來說,尤其是初學者來說,卻非常不易掌握。因此,現將DEBUG的命令詳細介紹一番,以讓大家知道它的使用。
Debug:A(匯編)
直接將 8086/8087/8088 記憶碼合并到內存。
該命令從匯編語言語句創建可執行的機器碼。所有數值都是十六進制格式,必須按一到四個字符輸入這些數值。在引用的操作代碼(操作碼)前指定前綴記憶碼。
a [address]
參數
address
指定鍵入匯編語言指令的位置。對 address 使用十六進制值,并鍵入不以“h”字符結尾的每個值。如果不指定地址,a 將在它上次停止處開始匯編。
有關將數據輸入到指定字節中的信息,請單擊“相關主題”列表中的 Debug E(鍵入)。
有關反匯編字節的信息,請單擊“相關主題”列表中的 Debug U(反匯編)。
說明
使用記憶碼
段的替代記憶碼為 cs:、ds:、es: 和 ss:。遠程返回的記憶碼是 retf。字符串處理的記憶碼必須明確聲明字符串大小。例如,使用 movsw 可以移動 16 位的字串,使用 movsb 可以移動 8 位字節串。
匯編跳轉和調用
匯編程序根據字節替換自動將短、近和遠的跳轉及調用匯編到目標地址。通過使用 near 或 far 前綴可以替代這樣的跳轉或調用,如下例所示:
-a0100:0500
0100:0500 jmp 502 ; a 2-byte short jump
0100:0502 jmp near 505 ; a 3-byte near jump
0100:0505 jmp far 50a ; a 5-byte far jump
可以將 near 前綴縮寫為 ne。
區分字和字節內存位置
當某個操作數可以引用某個字內存位置或者字節內存位置時,必須用前綴 word ptr 或者前綴 byte ptr 指定數據類型??山邮艿目s寫分別是 wo 和 by。以下范例顯示兩種格式:
dec wo [si]
neg byte ptr [128]
指定操作數
Debug 使用包括在中括號 ([ ]) 的操作數引用內存地址的習慣用法。這是因為另一方面 Debug 不能區分立即操作數和內存地址的操作數。以下范例顯示兩種格式:
mov ax,21 ; load AX with 21h
mov ax,[21] ; load AX with the
; contents of
; memory location 21h
使用偽指令
使用 a 命令提供兩個常用的偽指令:db 操作碼,將字節值直接匯編到內存,dw 操作碼,將字值直接匯編到內存。以下是兩個偽指令的范例:
db 1,2,3,4,"THIS IS AN EXAMPLE"
db 'THIS IS A QUOTATION MARK:"'
db "THIS IS A QUOTATION MARK:'"
dw 1000,2000,3000,"BACH"
范例
a 命令支持所有形式的間接注冊命令,如下例所示:
add bx,34[bp+2].[si-1]
pop [bp+di]
push [si] )
還支持所有操作碼同義詞,如下例所示:
loopz 100
loope 100
ja 200
jnbe 200
對于 8087 操作碼,必須指定 wait 或 fwait 前綴,如下例所示:
fwait fadd st,st(3) ; this line assembles
; an fwait prefix
Debug:C(比較)
比較內存的兩個部分。
c range address
參數
range
指定要比較的內存第一個區域的起始和結束地址,或起始地址和長度。有關有效的 range 值的信息,請單擊“相關主題”列表中的“Debug 說明”。
address
指定要比較的第二個內存區域的起始地址。有關有效 address 值的信息,請單擊“相關主題”列表中的“Debug 說明”。
說明
如果 range 和 address 內存區域相同,Debug 將不顯示任何內容而直接返回到 Debug 提示符。如果有差異,Debug 將按如下格式顯示:
address1 byte1 byte2 addess2
范例
以下命令具有相同效果:
c100,10f 300
c100l10 300
每個命令都對 100h 到 10Fh 的內存數據塊與 300h 到 30Fh 的內存數據塊進行比較。
Debug 響應前面的命令并顯示如下信息(假定 DS = 197F):
197F:0100 4D E4 197F:0300
197F:0101 67 99 197F:0301
197F:0102 A3 27 197F:0302
197F:0103 35 F3 197F:0303
197F:0104 97 BD 197F:0304
197F:0105 04 35 197F:0305
197F:0107 76 71 197F:0307
197F:0108 E6 11 197F:0308
197F:0109 19 2C 197F:0309
197F:010A 80 0A 197F:030A
197F:010B 36 7F 197F:030B
197F:010C BE 22 197F:030C
197F:010D 83 93 197F:030D
197F:010E 49 77 197F:030E
197F:010F 4F 8A 197F:030F
注意列表中缺少地址 197F:0106 和 197F:0306。這表明那些地址中的值是相同的。
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:E(鍵入)
將數據輸入到內存中指定的地址。
可以按十六進制或 ASCII 格式鍵入數據。以前存儲在指定位置的任何數據全部丟失。
e address [list]
參數
address
指定輸入數據的第一個內存位置。
list
指定要輸入到內存的連續字節中的數據。
有關集成記憶碼的信息,請單擊“相關主題”列表中的 Debug A(匯編)。
有關顯示內存部分內容的信息,請單擊“相關主題”列表中的 Debug D (轉儲)。
說明
使用 address 參數
如果在沒有指定可選的 list 參數的值情況下指定 address 的值,Debug 將顯示地址和內容,在下一行重復地址,并等待您的輸入。此時,您可以執行下列操作之一:
替換字節值。為此,請在當前值后鍵入新值。如果您鍵入的值不是有效的十六進制值,或該值包含兩個以上的數字,則 Debug 不會回顯無效或額外的字符。
進入下一個字節。為此,請按 SPACEBAR(空格鍵)。要更改該字節中的值,請在當前值后鍵入新值。如果按 SPACEBAR(空格鍵)時,移動超過了 8 位界限,Debug 程序將顯示新的一行并在行首顯示新地址。
返回到前一個字節。為此,請按 HYPHEN 鍵 (-)??梢苑磸桶?nbsp;HYPHEN 鍵 (-) 向后移動超過多個字節。在按 HYPHEN 時,Debug 開始新行并顯示當前地址和字節值。
停止執行 e 命令。為此,請按 ENTER 鍵。在任何字節位置都可以按 ENTER。
使用 list 參數
如果指定 list 參數的值,隨后的 e 命令將使用列表中的值替換現有的字節值。如果發生錯誤,將不更改任何字節值。
List 值可以是十六進制字節或字符串。使用空格、逗號或制表符來分隔值。必須將字符串包括在單或雙引號中。
范例
假定鍵入以下命令:
ecs:100
Debug 按下面的格式顯示第一個字節的內容:
04BA:0100 EB.
要將該值更改為 41,請在插入點鍵入 41,如下所示:
04BA:0100 EB.41_
可以用一個 e 命令鍵入連續的字節值。在鍵入新值后按 SPACEBAR(空格鍵),而不是按 ENTER 鍵。Debug 顯示下一個值。在此范例中,如果按三次 SPACEBAR(空格鍵),Debug 將顯示下面的值:
04BA:0100 EB.41 10. 00. BC._
要將十六進制值 BC 更改為 42,請在插入點鍵入 42,如下所示:
04BA:0100 EB.41 10. 00. BC.42_
假定決定值 10 應該是 6F。要糾正該值,請按 HYPHEN 鍵兩次以返回到地址 0101(值 10)。Debug 顯示以下內容:
04BA:0100 EB.41 10. 00. BC.42-
04BA:0102 00.-
04BA:0101 10._
在插入點鍵入 6f 更改值,如下所示:
04BA:0101 10.6f_
按 ENTER 停止 e 命令并返回到 Debug 提示符下。
以下是字符串項的范例:
eds:100 "This is the text example"
該字符串將從 DS:100 開始填充 24 個字節
Debug:F(填充)
使用指定的值填充指定內存區域中的地址。
可以指定十六進制或 ASCII 格式表示的數據。任何以前存儲在指定位置的數據將會丟失。
f range list
參數
range
指定要填充內存區域的起始和結束地址,或起始地址和長度。關于有效的 range 值的信息,請單擊“相關主題”列表中的“Debug 說明”。
list
指定要輸入的數據。List 可以由十六進制數或引號包括起來的字符串組成。
說明
使用 range 參數
如果 range 包含的字節數比 list 中的數值大,Debug 將在 list 中反復指派值,直到 range 中的所有字節全部填充。
如果在 range 中的任何內存損壞或不存在,Debug 將顯示錯誤消息并停止 f 命令。
使用 list 參數
如果 list 包含的數值多于 range 中的字節數,Debug 將忽略 list 中額外的值。
范例
假定鍵入以下命令:
f04ba:100l100 42 45 52 54 41
作為響應,Debug 使用指定的值填充從 04BA:100 到 04BA:1FF 的內存位置。Debug 重復這五個值直到 100h 個字節全部填滿為止。
Debug:G(轉向)
運行當前在內存中的程序。
g [=address] [breakpoints]
參數
=address
指定當前在內存中要開始執行的程序地址。如果不指定 address,Windows 2000 將從 CS:IP 寄存器中的當前地址開始執行程序。
breakpoints
指定可以設置為 g 命令的部分的 1 到 10 個臨時斷點。
有關執行循環、重復的字符串指令、軟件中斷或子程序的信息,請單擊“相關主題”列表中的 Debug P(執行)。
有關執行指令的信息,請單擊“相關主題”列表中的 Debug T(跟蹤)。
Debug:H(十六進制)
對指定的兩個參數執行十六進制運算。
h value1 value2
參數
value1
代表從 0 到 FFFFh 范圍內的任何十六進制數字。
value2
代表從 0 到 FFFFh 范圍內第二個十六進制數字。
說明
Debug 首先將指定的兩個參數相加,然后從第一個參數中減去第二個參數。這些計算的結果顯示在一行中:先計算和,然后計算差。
范例
假定鍵入以下命令:
h19f 10a
Debug 執行運算并顯示以下結果。
02A9 0095
Debug:I(輸入)
從指定的端口讀取并顯示一個字節值。
i port
參數
port
按地址指定輸入端口。地址可以是 16 位的值。
有關將字節值發送到輸出端口的信息,請單擊“相關主題”列表中的 Debug O(輸出)。
范例
假定鍵入以下命令:
i2f8
同時假定端口的字節值是 42h。Debug 讀取該字節,并將其值顯示如下:
42
Debug:L(加載)
將某個文件或特定磁盤扇區的內容加載到內存。
要從磁盤文件加載 BX:CX 寄存器中指定的字節數內容,請使用以下語法:
l [address]
要略過 Windows 2000 文件系統并直接加載特定的扇區,請使用以下語法:
l address drive start number
參數
address
指定要在其中加載文件或扇區內容的內存位置。如果不指定 address,Debug 將使用 CS 寄存器中的當前地址。
drive
指定包含讀取指定扇區的磁盤的驅動器。該值是數值型:0 = A, 1 = B, 2 = C 等。
start
指定要加載其內容的第一個扇區的十六進制數。
number
指定要加載其內容的連續扇區的十六進制數。只有要加載特定扇區的內容而不是加載 debug 命令行或最近的 Debug n(名稱)命令中指定的文件時,才能使用 drive、start 和 number 參數。
有關指定用于 l 命令的文件的信息,請單擊“相關主題”列表中的 Debug n(名稱)。
有關寫入調試到磁盤的文件的信息,請單擊“相關主題”列表中的 Debug w(寫入)。
注意
使用不帶參數的 l 命令
當使用不帶參數的 l 命令時,在 debug 命令行上指定的文件將加載到內存中,從地址 CS:100 開始。Debug 同時將 BX 和 CX 寄存器設置為加載的字節數。如果不在 debug 命令行指定文件,所裝入的文件將是最近使用 n 命令經常指定的文件。
使用具有 address 參數的 1 命令
如果使用帶 address 參數的 l 命令,Debug 將從內存位置 address 開始加載文件或指定扇區的內容。
使用帶全部參數的 l 命令
如果使用帶所有參數的 l 命令,Debug 將加載指定磁盤扇區的內容而不是加載文件。
加載特定扇區的內容
指定范圍內的每個扇區均從 drive 讀取。Debug 從 start 開始加載,直到在 number 中指定的扇區數中的內容全部被加載。
加載 .exe 文件
Debug 忽略 .exe 文件的地址 address 參數。如果指定 .exe 文件,Debug 將文件重新定位到 .exe 文件的標題中指定的加載地址。在 .exe 文件被加載到內存前,標題自身從 .exe 文件脫離,因此磁盤上的 .exe 文件大小與內存中的不同。如果要檢查整個 .exe 文件,請使用不同的擴展名重命名文件。
12下一頁閱讀全文
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成年人视频| 亚洲国产精品人人爽夜夜爽| 亚洲电影免费观看高清完整版| 黑人精品xxx一区一二区| 欧美日韩激情网| 国产a∨精品一区二区三区不卡| 国产美女搞久久| 都市激情亚洲色图| 国产精品欧美一区二区三区奶水| 久久亚洲一区二区三区四区五区高| 精品久久久久久电影| 久久91亚洲精品中文字幕奶水| 91网站在线看| 在线视频欧美性高潮| 国产成人啪精品视频免费网| 亚洲精品一区av在线播放| 热门国产精品亚洲第一区在线| 日韩电影中文字幕一区| 一区二区三区高清国产| 欧美日韩第一视频| 欧美有码在线观看视频| 国内外成人免费激情在线视频| 8x海外华人永久免费日韩内陆视频| 国产精品一区二区三区在线播放| 国产乱肥老妇国产一区二| 国产精品人成电影在线观看| 在线不卡国产精品| 亚洲男人天堂视频| 亚洲国产古装精品网站| 亚洲国产一区二区三区在线观看| 欧美高清videos高潮hd| 国产日韩在线亚洲字幕中文| 日韩av网站导航| 国产亚洲欧洲高清一区| 亚洲美女久久久| 亚洲视频一区二区三区| 欧美激情免费观看| 日韩在线视频国产| 青草青草久热精品视频在线网站| 国产精品白丝jk喷水视频一区| 久久久精品视频在线观看| 日本一区二区三区在线播放| 欧美巨乳美女视频| 亚洲电影免费观看高清完整版| 欧美日韩福利电影| 亚洲人高潮女人毛茸茸| 69av在线视频| 97视频在线播放| 午夜精品一区二区三区视频免费看| 欧美亚洲午夜视频在线观看| 欧美性猛交xxxx免费看漫画| 九九九久久久久久| 国产精品欧美日韩一区二区| 2020久久国产精品| 欧美激情aaaa| 国模精品系列视频| 日韩高清欧美高清| 亚洲va电影大全| 色噜噜狠狠色综合网图区| 中文字幕一区二区精品| 日韩在线观看高清| 亚洲欧美日韩另类| 亚洲影视中文字幕| 45www国产精品网站| 久久天堂av综合合色| 欧美日韩国产丝袜另类| 69国产精品成人在线播放| 久久激情五月丁香伊人| 亚洲一区二区三区视频| 青青草成人在线| 国产深夜精品福利| yw.139尤物在线精品视频| 亚洲精品网址在线观看| 久久这里只有精品视频首页| 欧美电影免费在线观看| 欧美午夜无遮挡| 91国产中文字幕| 日韩福利在线播放| 成人午夜激情网| 久久久久亚洲精品成人网小说| 国产色婷婷国产综合在线理论片a| 日本成人黄色片| 日韩在线播放一区| 国产成人+综合亚洲+天堂| 美日韩精品免费观看视频| 69久久夜色精品国产7777| 日韩电影中文字幕av| 黑人巨大精品欧美一区二区三区| 一本大道香蕉久在线播放29| 中文字幕亚洲色图| 成人午夜一级二级三级| 久精品免费视频| 国产日韩欧美一二三区| 国产日韩欧美成人| 日韩视频免费观看| 中文字幕在线看视频国产欧美| 91久久精品美女| 国产欧美精品va在线观看| 国产精品日韩专区| 国产成人精品av| 国产热re99久久6国产精品| 亚洲欧美精品中文字幕在线| 久久视频中文字幕| 在线一区二区日韩| 国产精品久久久久久久久久三级| 亚洲一区二区久久久| 中文国产成人精品久久一| 日韩中文有码在线视频| 亚洲毛片一区二区| 91精品视频在线播放| 亚洲第一色在线| 日韩资源在线观看| 欧美成人激情视频免费观看| 欧美国产日韩视频| 亚洲欧美日韩爽爽影院| 日韩成人中文字幕在线观看| 亚洲自拍偷拍福利| 欧美日韩激情视频| 91亚洲精品久久久久久久久久久久| 国产精品视频男人的天堂| 亚洲国语精品自产拍在线观看| 97精品在线视频| 欧美精品在线第一页| 亚洲欧洲成视频免费观看| 国产精品美乳在线观看| 不卡av电影院| 一本色道久久88综合亚洲精品ⅰ| 欧美视频国产精品| 亚洲人精选亚洲人成在线| 久久高清视频免费| 久久国产精品久久久久久久久久| 日韩精品视频在线| 亚洲欧洲在线免费| 91理论片午午论夜理片久久| 在线观看日韩www视频免费| 一个人看的www欧美| 中文字幕欧美日韩精品| 精品国产乱码久久久久酒店| 亚洲第一网站免费视频| 国产成人自拍视频在线观看| 亚洲黄色在线观看| 久久国产精品久久精品| 国产精品日韩av| 欧美日韩午夜激情| 黑人极品videos精品欧美裸| 欧美黄色片在线观看| 日本欧美黄网站| 亚洲欧美中文在线视频| 色先锋资源久久综合5566| 国产精品自拍小视频| 高清欧美电影在线| 国产精品热视频| 黄色一区二区三区| 久久久久久欧美| 欧美一级成年大片在线观看| 久久精品电影一区二区| 日韩在线视频免费观看| 欧美日韩国产二区| 精品国产依人香蕉在线精品| 亚洲黄色免费三级| 亚洲电影免费观看高清| 欧美日韩国产麻豆| 久久久精品999| 国产精品一区二区久久|