欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2007年03月11日 00:00:00   作者:  

打開十六進制文件
Debug 將具有 .hex 擴展名的文件認為十六進制格式文件。鍵入不帶參數的 l 命令,可以加載從十六進制文件中指定的地址處開始的十六進制文件。如果鍵入的 l 命令包含 address 參數,Debug 將把指定的地址加到在十六進制文件中找到的地址上,以確定起始地址。
范例
假定啟動 Debug 并鍵入以下命令:
nfile.com
現(xiàn)在可以鍵入 l 命令以加載 File.com。Debug 將加載文件并顯示 Debug 提示符。
假定需要從驅動器 C 將起始邏輯扇區(qū)為 15 (0Fh) 的 109 (6Dh) 個扇區(qū)的內容加載到起始地址為 04BA:0100 的內存中。為此,請鍵入以下命令:
l04ba:100 2 0f 6d
Debug:M(移動)
將一個內存塊中的內容復制到另一個內存塊中。
m range address
參數
range
指定要復制內容的內存區(qū)域的起始和結束地址,或起始地址和長度。
address
指定要將 range 內容復制到該位置的起始地址。
說明
復制操作對現(xiàn)有數據的影響
如果新數據沒有寫入正在被復制的數據塊中的地址,則源數據將保持不變。但是,如果目標塊已經包含數據(就象它在覆蓋副本操作中一樣),則將改寫該數據。(覆蓋復制操作是指那些目標數據塊部分內容覆蓋原數據塊部分內容的操作。)
執(zhí)行覆蓋復制操作
m 命令執(zhí)行目標地址的覆蓋復制操作,而不丟失數據。將改寫的地址內容首先復制。因此,如果將較高位地址的數據復制到較低位地址,則復制操作從原塊的最低位地址開始并向最高位地址進行。反之,如果要將數據從低地址復制到高地址,復制操作從原塊的最高地址開始,向最低地址進行。
范例
假定鍵入以下命令:
mcs:100 110 cs:500
Debug 首先將 CS:110 地址中的內容復制到地址 CS:510 中,然后將 CS:10F 地址中的內容復制到 CS:50F 中,如此操作直至將 CS:100 地址中的內容復制到地址 CS:500 中。要查看結果,請使用 Debug d(轉儲)命令,并使用 m 命令指定目標地址
Debug:N(名稱)
指定 Debug l(加載)或 w(寫入)命令的可執(zhí)行文件的名稱,或者指定正在調試的可執(zhí)行文件的參數。
n [drive:][path] filename
要指定測試的可執(zhí)行文件的參數,請使用以下語法:
n file-parameters
參數
如果在沒有參數的情況下使用,則 n 命令清除當前規(guī)范。
[drive:][path] filename
指定要測試的可執(zhí)行文件的位置和名稱。
file-parameters
為正在測試的可執(zhí)行文件指定參數和開關。
有關將文件或指定磁盤扇區(qū)的內容加載到內存中的信息,請單擊“相關主題”列表中的 Debug L(加載)。
有關寫入調試到磁盤的文件的信息,請單擊“相關主題”列表中的 Debug W(寫入)。
說明
n 命令的兩個用途
可以按兩種方式使用 n 命令。首先,您可以使用它以指定后面的 l(加載)或 w(寫入)命令所使用的文件。如果在沒有命名所調試文件的情況下啟動 Debug,必須在使用 l 命令加載文件之前使用命令 nfilename。在 CS:5C 為文件控制塊 (FCB) 正確編排文件名的格式。其次,可以使用 n 命令指定被調試文件的命令行參數和開關。
內存區(qū)域
以下四個內存區(qū)域都會受到 n 命令的影響:
內存位置
內容
CS:5C
文件 1 的文件控制數據塊 (FCB)
CS:6C
文件 2 的文件控制數據塊 (FCB)
CS:80
n 命令行的長度(以字符表示)
CS:81
n 命令行字符的開頭
為 n 命令指定的第一個文件名被放在 CS:5C 的 FCB 中。如果指定第二個文件名,此名稱將放置到 CS:6C 的 FCB 中。n 命令行上鍵入的字符數(除第一個字符之外,n)存儲在位置 CS:80。n 命令行上的實際字符(再次,除了字母 n 之外)存儲在以 CS:81 開頭的位置。注意這些字符可以是在 Windows 2000 命令提示符下鍵入的命令中有效的任何開關和分隔符。
范例
假定已經啟動 Debug,并加載了正在調試的程序 Prog.com。接著您決定為 Prog.com 指定兩個參數并運行此程序。以下是此范例的命令序列:
debug prog.com
nparam1 param2
g
在這種情況下,Debug g(轉向)命令會運行該程序,就好像您已在 Windows 2000 命令提示符后鍵入了如下命令:
prog param1 param2
所以,測試和調試反映 Prog.com 通常的運行時間環(huán)境。
在下面的命令序列中,第一個 n 命令將 File1.exe 指定為后接的 l(加載)命令的文件,該命令將 File1.exe 加載到內存。第二個 n 命令指定 File1.exe 將使用的參數。最后,g 命令將運行 File1.exe 文件,就好像您在 Windows 2000 命令行中鍵入了 File1 File2.dat File2.dat 一樣。
nfile1.exe
l
nfile2.dat file3.dat
g
注意
不要在 n 命令的第二種形式后使用 l 命令。還要注意,如果現(xiàn)在使用 w(寫入)命令,Windows 2000 將使用名稱 File2.dat 保存正在調試的文件 File1.exe。為避免出現(xiàn)此結果,應該總是在 l 或 w 命令之前立即使用 n 命令的第一種形式。
Debug:O(輸出)
將字節(jié)值發(fā)送到輸出端口。
o port byte-value
參數
port
通過地址指定輸出端口。端口地址可以是 16 位值。
byte-value
指定要指向 port 的字節(jié)值。
有關從輸入端口讀取字節(jié)值的信息,請單擊“相關主題”列表中的 Debug I(輸入)。
范例
要將字節(jié)值 4Fh 發(fā)送到地址為 2F8h 的輸出端口,請鍵入以下命令:
o2f8 4f
Debug:P(執(zhí)行)
執(zhí)行循環(huán)、重復的字符串指令、軟件中斷或子例程;或通過任何其他指令跟蹤。
p [= address] [number]
參數
=address
指定第一個要執(zhí)行指令的位置。如果不指定地址,則默認地址是在 CS:IP 寄存器中指定的當前地址。
number
指定在將控制返回給 Debug 之前要執(zhí)行的指令數。默認值為 1。
有關運行當前在內存中程序的信息,請單擊“相關主題”列表中的 Debug G(轉向)。
有關執(zhí)行指令的信息,請單擊“相關主題”列表中的 Debug T(跟蹤)。
說明
控制傳送到要測試的程序
當 p 命令將控制從 Debug 傳送到要測試的程序時,該程序不間斷運行,直到循環(huán)、重復字符串指令、軟件中斷或者完成了指定地址的子例程為止,或者直到執(zhí)行了指定數量的機器指令為止??刂品祷氐?nbsp;Debug。
地址參數的限制
如果 address 參數沒有指定段,Debug 將使用被測試程序的 CS 寄存器。如果省略 address,程序將從 CS:IP 寄存器所指定的地址開始執(zhí)行。必須在 address 參數之前使用等號 (=) 以便將它與 number 參數區(qū)分。如果在指定地址處的指令不是循環(huán)、重復的字符串指令、軟件中斷或子例程,則 p 命令與 Debug t(跟蹤)命令的作用相同。
使用 p 命令顯示的郵件
當 p 執(zhí)行完一段說明后,Debug 顯示出程序的寄存器內容、標志的狀態(tài)以及下一段將要被執(zhí)行的指令的解碼形式。
警告
不能使用 p 命令跟蹤只讀內存 (ROM)。
范例
假定正在測試的程序在地址 CS:143F 處包含一個 call 指令。要運行 call 目標位置的子程序然后將控制返回到 Debug,請鍵入以下命令:
p=143f
Debug 按以下格式顯示結果:
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=2246 ES=2246 SS=2246 CS=2246 IP=1443 NV UP EI PL NZ AC PO NC
2246:1442 7505 JNZ 144A
Debug:Q(退出)
停止 Debug 會話,不保存當前測試的文件。
當您鍵入 q 以后,控制返回到 Windows 2000 的命令提示符。
q
參數
該命令不帶參數。
有關保存文件的信息,請單擊“相關主題”列表中的 Debug W(寫入)。
Debug:R(寄存器)
顯示或改變一個或多個 CPU 寄存器的內容。
r [register-name]
參數

如果在沒有參數的情況下使用,則 r 命令顯示所有寄存器的內容以及寄存器存儲區(qū)域中的標志。
register-name
指定要顯示其內容的寄存器名。
有關顯示內存部分內容的信息,請單擊“相關主題”列表中的 Debug D(轉儲)。
有關反匯編字節(jié)的信息,請單擊“相關主題”列表中的 Debug U(反匯編)。
說明
使用 r 命令
如果指定了寄存器名稱,Windows 2000 將顯示以十六進制標記表示的寄存器的 16 位值,并將冒號顯示為提示符。如果要更改包含在寄存器中的值,除非鍵入新值并按 ENTER 鍵;否則,請按 ENTER 鍵返回 Debug 提示符。
有效寄存器名
以下是 register-name 的有效值:ax、bx、cx、dx、sp、bp、si、di、ds、es、ss、cs、ip、pc 及 f。ip 和 pc 都引用指令指針。
如果指定寄存器名稱,而不是從前面的列表中指定,Windows 2000 將顯示以下消息:
br error
使用 f 字符而不是寄存器名
如果鍵入 f 字符代替寄存器名,Debug 將每個標記的當前設置顯示為兩字母代碼,然后顯示 Debug 提示符。要更改標志的設置,請從下表中鍵入適當的兩字母代碼:
標志名
設置
清除
溢出
ov
nv
方向
dn(減)
up(增)
中斷
ei(啟用)
di(禁用)
正負
ng(負)
pl(正)

zr
nz
輔助進位
ac
na
奇偶校驗
pe(偶校驗)
po(奇校驗)
進位
cy
nc
可以按任何順序鍵入新的標志值。不需要在這些值之間留出空格。要停止 r 命令,請按 ENTER 鍵。任何沒有指定新值的標志保持不變。
用 r 命令顯示的郵件
如果為標記指定了多個值,Debug 將顯示以下消息:
df error
如果指定沒有在前面的表中列出的標志代碼,Debug 將顯示以下消息:
bf error
在這兩種情況下,Debug 將忽略所有在無效項目之后指定的設置。
Debug 的默認設置
在啟動 Debug 時,會將段寄存器設置到空閑內存的低端,指令指針設置為 0100h,清除所有標志,并且將其余寄存器設置為零,除了被設置為 FFEEh 的 sp 之外。
Debug:R
范例
要查看所有寄存器的內容、所有標記的狀態(tài)和當前位置的指令解碼表,請鍵入以下命令:
r
如果當前位置是 CS:11A,顯示外觀將類似于以下內容:
AX=0E00 BX=00FF CX=0007 DX=01FF SP=039D BP=0000 SI=005C DI=0000
DS=04BA ES=04BA SS=04BA CS=O4BA IP=011A NV UP DI NG NZ AC PE NC
04BA:011A CD21 INT 21
要只查看標志的狀態(tài),請鍵入以下命令:
rf
Debug 按以下格式顯示信息:
NV UP DI NG NZ AC PE NC - _
現(xiàn)在,您可以按任意順序鍵入一個或多個有效的標志值,其中可以有或沒有空格,如下所示:
nv up di ng nz ac pe nc - pleicy
Debug 結束 r 命令并顯示 Debug 提示符。要查看更改,請鍵入 r 或 rf 命令。Debug 將顯示以下內容:
NV UP EI PL NZ AC PE CY - _
按 ENTER 返回到 Debug 提示符。
Debug:S(搜索)
在某個地址范圍搜索一個或多個字節(jié)值的模式。
s range list
參數
range
指定要搜索范圍的開始和結束地址。有關 range 參數有效值的信息,請單擊“相關主題”列表中的 Debug。
list
指定一個或多個字節(jié)值的模式,或要搜索的字符串。用空格或逗號分隔每個字節(jié)值和下一個字節(jié)值。將字符串值包括在引號中。
說明
如果 list 參數包含多個字節(jié)值,Debug 將只顯示出現(xiàn)字節(jié)值的第一個地址。如果 list 只包含一個字節(jié)值,Debug 將顯示指定范圍內出現(xiàn)該值的所有地址。
范例
假定需要查找包含值 41 并且范圍從 CS:100 到 CS:110 的所有地址。為此,請鍵入以下命令:
scs:100 110 41
Debug 按以下格式顯示結果:
04BA:0104
04BA:010D
-
以下命令在 CS:100 到 CS:1A0 的范圍內搜索字符串“Ph”。
scs:100 1a0 "Ph"
Debug:U(反匯編)
反匯編字節(jié)并顯示相應的原語句,其中包括地址和字節(jié)值。反匯編代碼看起來象已匯編文件的列表。
u [range]
參數

如果在沒有參數的情況下使用,則 u 命令分解 20h 字節(jié)(默認值),從前面 u 命令所顯示地址后的第一個地址開始。
range
指定要反匯編代碼的起始地址和結束地址,或起始地址和長度。有關 range 參數有效值的信息,請單擊“相關主題”列表中的 Debug。
有關集成記憶碼的信息,請單擊“相關主題”列表中的 Debug A(匯編)。
有關顯示內存部分內容的信息,請單擊“相關主題”列表中的 Debug D(轉儲)。
范例
要反匯編 16 (10h) 字節(jié),從地址 04BA:0100 開始,請鍵入以下命令:
u04ba:100l10
Debug 按以下格式顯示結果:
04BA:0100 206472 AND [SI+72],AH
04BA:0103 69 DB 69
04BA:0104 7665 JBE 016B
04BA:0106 207370 AND [BP+DI+70],DH
04BA:0109 65 DB 65
04BA:010A 63 DB 63
04BA:010B 69 DB 69
04BA:010C 66 DB 66
04BA:010D 69 DB 69
04BA:010E 63 DB 63
04BA:010F 61 DB 61
如果只顯示從 04BA:0100 到 04BA:0108 特定地址的信息,請鍵入以下命令:
u04ba:0100 0108
Debug 顯示以下內容:
04BA:0100 206472 AND [SI+72],AH
04BA:0103 69 DB 69
04BA:0104 7665 JBE 016B
04BA:0106 207370 AND [BP+DI+70],DH
Debug:W(寫入)
將文件或特定分區(qū)寫入磁盤。
要將在 BX:CX 寄存器中指定字節(jié)數的內容寫入磁盤文件,請使用以下語法:
w [address]
要略過 Windows 2000 文件系統(tǒng)并直接寫入特定的扇區(qū),請使用以下語法:
w address drive start number
參數
address
指定要寫到磁盤文件的文件或部分文件的起始內存地址。如果不指定 address,Debug 程序將從 CS:100 開始。關于 address 參數有效值的信息,請在“相關主題”列表中單擊 Debug。
drive
指定包含目標盤的驅動器。該值是數值型:0 = A, 1 = B, 2 = C,等等。
start
指定要寫入第一個扇區(qū)的十六進制數。
number
指定要寫入的扇區(qū)數。
有關指定用于 w 命令的文件的信息,請單擊“相關主題”列表中的 Debug N(名稱)。
有關將文件或文件扇區(qū)內容加載到內存中的信息,請單擊“相關主題”列表中的 Debug L(加載)。
說明
必須在啟動 Debug 時或者在最近的 Debug n(名稱)命令中指定磁盤文件的名字。這兩種方法都可以將地址 CS:5C 處文件控制塊的文件名正確地編排格式。
在使用不帶參數的 w 命令之前重新設置 BX:CX
如果使用了 Debug g(轉向)、t(跟蹤)、p(執(zhí)行)或 r(寄存器)命令,必須在使用無參數的 w 命令之前,將 BX:CX 寄存器復位。
將修改后的文件寫入磁盤
如果修改文件但不更改文件名、長度或起始地址,Debug 仍然可以正確地將文件寫入源磁盤位置。
w 命令的限制
不能用該命令寫入 .exe 或 .hex 文件。
警告
因為略過 Windows 2000 文件句柄,所以寫入特定的分區(qū)非常危險。如果鍵入錯誤的值,則磁盤文件結構很容易被損壞。
范例
假定要將起始地址為 CS:100 的內存內容寫入到驅動器 B 的磁盤中。需要將數據從磁盤的邏輯扇區(qū)號 37h 開始并持續(xù) 2Bh 個扇區(qū)。為此,鍵入以下命令:
wcs:100 1 37 2b
當寫操作完成時,Debug 再次顯示 Debug 提示符。
Debug:XA(分配擴展內存)
分配擴展內存的指定頁面數。
要使用擴展內存,必須安裝符合 4.0 版的 Lotus/Intel/Microsoft 擴展內存規(guī)范 (LIM EMS) 的擴展內存設備驅動程序。
xa [count]
參數
count
指定要分配的擴展內存的 16KB 頁數。
有關使用擴展內存的其他 Debug 命令的信息,請單擊“相關主題”列表中的 XD(釋放擴展內存)、XM(映射擴展內存頁)或 XS(顯示擴展內存狀態(tài))。
說明
如果指定的頁面數可用,則 Debug 將顯示消息,此消息表明所創(chuàng)建的句柄的十六進制數;否則,Debug 將顯示錯誤消息。
Debug:XA
范例
要分配擴展內存的 8 個頁面,請鍵入以下命令:
xa8
如果命令成功,Debug 將顯示類似的以下消息:
Handle created=0003
Debug:XD(釋放擴展內存)
釋放指向擴展內存的句柄。
要使用擴展內存,必須安裝符合 4.0 版的 Lotus/Intel/Microsoft 擴展內存規(guī)范 (LIM EMS) 的擴展內存設備驅動程序。
xd [handle]
參數
handle
指定要釋放的句柄。
有關使用擴展內存的其他 Debug 命令的信息,請單擊“相關主題”列表中 XA(分配擴展內存)、XM(映射擴展內存頁) 或 XS(顯示擴展內存狀態(tài))。
范例
要釋放句柄 0003,請鍵入以下命令:
xd 0003
如果命令成功,Debug 將顯示下列消息:
Hdle 0003 deallocated
Debug:XM(映射擴展內存頁)
將屬于指定句柄的擴展內存邏輯頁映射到擴展內存的物理頁。
要使用擴展內存,必須安裝符合 4.0 版的 Lotus/Intel/Microsoft 擴展內存規(guī)范 (LIM EMS) 的擴展內存設備驅動程序。
xm [lpage] [ppage] [handle]
參數
lpage
指定要映射到物理頁 ppage 的擴展內存的邏輯頁面號。
ppage
指定將 lpage 映射到的物理頁面號。
handle
指定句柄。
有關使用擴展內存的其他 Debug 命令的信息,請單擊“相關主題”列表中的 XA(分配擴展內存)、XD(釋放擴展內存)或 XS(顯示擴展內存)。
范例
要將句柄 0003 的邏輯頁 5 映射到物理頁 2,請鍵入以下命令:
xm 5 2 0003
如果命令成功,Debug 將顯示下列消息:
Logical page 05 mapped to physical page 02
Debug:XS(顯示擴展內存狀態(tài))
顯示有關擴展內存狀態(tài)的信息。
要使用擴展內存,必須安裝符合 4.0 版的 Lotus/Intel/Microsoft 擴展內存規(guī)范 (LIM EMS) 的擴展內存設備驅動程序。
xs
參數
該命令不帶參數。
有關使用擴展內存的其他 Debug 命令的信息,請單擊“相關主題”列表中的 XA(分配擴展內存)、XD(釋放擴展內存)或 XM(映射擴展內存頁)。
說明
Debug 顯示的信息有如下格式:
Handle xx has xx pages allocated
Physical page xx = Frame segment xx
xx of a total xx EMS pages have been allocated
xx of a total xx EMS handles have been allocated
范例
要顯示擴展內存信息,請鍵入以下命令:
xs
Debug 顯示與以下類似的信息:
Handle 0000 has 0000 pages allocated
Handle 0001 has 0002 pages allocated
Physical page 00 = Frame segment C000
Physical page 01 = Frame segment C400
Physical page 02 = Frame segment C800
Physical page 03 = Frame segment CC00
2 of a total 80 EMS pages have been allocated
2 of a total FF EMS handles have been allocated

相關文章

  • 匯編語言系列之匯編實現(xiàn)簡單數學運算

    匯編語言系列之匯編實現(xiàn)簡單數學運算

    這篇文章主要介紹了匯編語言系列之匯編實現(xiàn)簡單數學運算的思路詳解,本文給大家列出了兩種算術運算的代碼,設計思路給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • ARM匯編解決階乘及大小寫轉換的問題

    ARM匯編解決階乘及大小寫轉換的問題

    這篇文章主要介紹了ARM匯編解決階乘及大小寫轉換,包括ARM匯編大小寫轉換以及存入內存的相關知識,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2021-11-11
  • 一位數乘法的匯編語言實現(xiàn)方法

    一位數乘法的匯編語言實現(xiàn)方法

    這篇文章主要介紹了一位數乘法的匯編語言實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • 匯編語言實現(xiàn)電子鬧鐘思路詳解

    匯編語言實現(xiàn)電子鬧鐘思路詳解

    這篇文章主要介紹了匯編語言實現(xiàn)電子鬧鐘思路詳解,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • 匯編語言功能用循環(huán)累加實現(xiàn)乘法

    匯編語言功能用循環(huán)累加實現(xiàn)乘法

    這篇文章主要為大家介紹了匯編語言實現(xiàn)功能,使用用循環(huán)累加來實現(xiàn)乘法,文中通過幾個問題實例分析,來為大家進行詳細講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • 詳解匯編語言 dup偽指令

    詳解匯編語言 dup偽指令

    dup它有多種意義,包括Linux c 函數、C語言函數DUP、匯編指令、化學物質DUP。這篇文章主要介紹了匯編語言 dup偽指令的相關知識,需要的朋友可以參考下
    2020-01-01
  • 純匯編實現(xiàn)打飛機小游戲的示例代碼

    純匯編實現(xiàn)打飛機小游戲的示例代碼

    這篇文章主要介紹了純匯編實現(xiàn)打飛機小游戲的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • 匯編語言之實現(xiàn)發(fā)出各種聲音

    匯編語言之實現(xiàn)發(fā)出各種聲音

    本文給大家分享一個練手小項目,響鈴設計項目,列出了響鈴,機槍聲音,音樂播放器的代碼,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2021-11-11
  • 匯編語言lea指令使用方法解析

    匯編語言lea指令使用方法解析

    這篇文章主要介紹了匯編語言lea指令使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • 匯編語言LDR指令和LDR偽指令詳解

    匯編語言LDR指令和LDR偽指令詳解

    這篇文章主要介紹了匯編語言LDR指令和LDR偽指令詳解,偽指令是用來自動拆分代碼值的,會把一條語句拆分成多條語句,本文結合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01

最新評論