<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    軟件是對(duì)質(zhì)量的不懈追求

    DEBUG命令使用解析及范例大全

    Debug

      啟動(dòng) Debug,它是可用于測(cè)試和調(diào)試 MS-DOS 可執(zhí)行文件的程序。
    Debug [[drive:][path] filename [parameters]]

      參數(shù)
    [drive:][path] filename
    指定要測(cè)試的可執(zhí)行文件的位置和名稱。

      parameters
    指定要測(cè)試的可執(zhí)行文件所需要的任何命令行信息。
    ++

      說(shuō)明
    使用 Debug 命令但不指定要測(cè)試的文件
    如果使用沒有位置和文件名的 Debug 命令,然后鍵入所有的 Debug 命令以響應(yīng) Debug 提示符,連字符 (-)。

      Debug 命令

      以下是 Debug 命令列表:

      ? 顯示 Debug 命令列表。
    a 匯編 8086/8087/8088 記憶碼。
    c 比較內(nèi)存的兩個(gè)部分。
    d 顯示部分內(nèi)存的內(nèi)容。
    e 從指定地址開始,將數(shù)據(jù)輸入到內(nèi)存。
    f 使用指定值填充一段內(nèi)存。
    g 運(yùn)行在內(nèi)存中的可執(zhí)行文件。
    h 執(zhí)行十六進(jìn)制運(yùn)算。
    i 顯示來(lái)自特定端口的 1 字節(jié)值。
    l 將文件或磁盤扇區(qū)內(nèi)容加載到內(nèi)存。
    m 復(fù)制內(nèi)存塊中的內(nèi)容
    /n 為 l 或 w 命令指定文件,或者指定正在測(cè)試的文件的參數(shù)。
    o 向輸出端口發(fā)送 1 個(gè)字節(jié)的值。
    p 執(zhí)行循環(huán)、重復(fù)的字符串指令、軟件中斷或子例程。
    q 停止 Debug 會(huì)話。
    r 顯示或改變一個(gè)或多個(gè)寄存器。
    s 在部分內(nèi)存中搜索一個(gè)或多個(gè)字節(jié)值的模式。
    t 執(zhí)行一條指令,然后顯示所有寄存器的內(nèi)容、所有標(biāo)志的狀態(tài)和 Debug 下一步要執(zhí)行的指令的解碼形式。
    u 反匯編字節(jié)并顯示相應(yīng)的原語(yǔ)句。
    w 將被測(cè)試文件寫入磁盤。
    xa 分配擴(kuò)展內(nèi)存。
    xd 釋放擴(kuò)展內(nèi)存。
    xm 映射擴(kuò)展內(nèi)存頁(yè)。
    xs 顯示擴(kuò)展內(nèi)存的狀態(tài)。

      分隔命令參數(shù)
    所有 Debug 命令都接受參數(shù),除了 q 命令之外。可以用逗號(hào)或空格分隔參數(shù),但是只有在兩個(gè)十六進(jìn)制值之間才需要這些分隔符。因此,以下命令等價(jià):
    dcs:100 110
    d cs:100 110
    d,cs:100,110

      指定有效地址項(xiàng)
    Debug 命令中的 address 參數(shù)指定內(nèi)存位置。Address 是一個(gè)包含字母段記錄的二位名稱或一個(gè)四位字段地址加上一個(gè)偏移量。可以忽略段寄存器或段地址。a,g,l,t,u 和 w 命令的默認(rèn)段是 CS。所有其他命令的默認(rèn)段是 DS。所有數(shù)值均為十六進(jìn)制格式。
    有效地址如下:
    CS:0100
    04BA:0100
    在段名和偏移量之間要有冒號(hào)。

      指定有效范圍項(xiàng)
    Debug 命令中的 range 參數(shù)指定了內(nèi)存的范圍。可以為 range 選擇兩種格式:起始地址和結(jié)束地址,或者起始地址和長(zhǎng)度范圍(由 l 表示)。
    例如,下面的兩個(gè)語(yǔ)法都可以指定從 CS:100 開始的 16 字節(jié)范圍:
    cs:100 10f
    cs:100 l 10
    ++

      Debug 子命令

      選擇 Debug 命令以獲得詳細(xì)信息。

      Debug:A(匯編)
    Debug:C(比較)
    Debug(轉(zhuǎn)儲(chǔ))
    Debug:E(鍵入)
    Debug:F(填充)
    Debug:G(轉(zhuǎn)向)
    Debug:H(十六進(jìn)制)
    Debug:I(輸入)
    Debug:L(加載)
    Debug:M(移動(dòng))
    Debug:N(名稱)
    Debug:O(輸出)
    Debug:P(執(zhí)行)
    Debug:Q(退出)
    Debug:r(寄存器)
    Debug:s(搜索)
    Debug:T(跟蹤)
    Debug:U(反匯編)
    Debug:W(寫入)
    Debug:XA(分配擴(kuò)展內(nèi)存)
    Debug:XD(取消分配擴(kuò)展內(nèi)存)
    Debug:XM(映射擴(kuò)展內(nèi)存頁(yè))
    Debug:XS(顯示擴(kuò)展內(nèi)存狀態(tài))
    ***********************Debug子命令******************************

      Debug:A(匯編)

      直接將 8086/8087/8088 記憶碼合并到內(nèi)存。
    該命令從匯編語(yǔ)言語(yǔ)句創(chuàng)建可執(zhí)行的機(jī)器碼。所有數(shù)值都是十六進(jìn)制格式,必須按一到四個(gè)字符輸入這些數(shù)值。在引用的操作代碼(操作碼)前指定前綴記憶碼。
    a [address]

      參數(shù)
    address
    指定鍵入?yún)R編語(yǔ)言指令的位置。對(duì) address 使用十六進(jìn)制值,并鍵入不以“h”字符結(jié)尾的每個(gè)值。如果不指定地址,a 將在它上次停止處開始匯編。
    有關(guān)將數(shù)據(jù)輸入到指定字節(jié)中的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug E(鍵入)。
    有關(guān)反匯編字節(jié)的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug U(反匯編)。

      范例
    a 命令支持所有形式的間接注冊(cè)命令,如下例所示:
    add bx,34[bp+2].[si-1]
    pop [bp+di]
    push [si] )

      還支持所有操作碼同義詞,如下例所示:
    loopz 100
    loope 100
    ja 200
    jnbe 200
    對(duì)于 8087 操作碼,必須指定 wait 或 fwait 前綴,如下例所示:
    fwait fadd st,st(3) ; this line assembles
    ; an fwait prefix

      說(shuō)明
    使用記憶碼
    段的替代記憶碼為 cs:、ds:、es: 和 ss:。遠(yuǎn)程返回的記憶碼是 retf。字符串處理的記憶碼必須明確聲明字符串大小。例如,使用 movsw 可以移動(dòng) 16 位的字串,使用 mov***(文字因故被系統(tǒng)屏蔽)***(文字因故被系統(tǒng)屏蔽) 可以移動(dòng) 8 位字節(jié)串。

      匯編跳轉(zhuǎn)和調(diào)用
    匯編程序根據(jù)字節(jié)替換自動(dòng)將短、近和遠(yuǎn)的跳轉(zhuǎn)及調(diào)用匯編到目標(biāo)地址。通過使用 near 或 far 前綴可以替代這樣的跳轉(zhuǎn)或調(diào)用,如下例所示:
    -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。

      區(qū)分字和字節(jié)內(nèi)存位置
    當(dāng)某個(gè)操作數(shù)可以引用某個(gè)字內(nèi)存位置或者字節(jié)內(nèi)存位置時(shí),必須用前綴 word ptr 或者前綴 byte ptr 指定數(shù)據(jù)類型。可接受的縮寫分別是 wo 和 by。以下范例顯示兩種格式:
    dec wo [si]
    neg byte ptr [128]

      指定操作數(shù)
    Debug 使用包括在中括號(hào) ([ ]) 的操作數(shù)引用內(nèi)存地址的習(xí)慣用法。這是因?yàn)榱硪环矫?Debug 不能區(qū)分立即操作數(shù)和內(nèi)存地址的操作數(shù)。以下范例顯示兩種格式:
    mov ax,21 ; load AX with 21h
    mov ax,[21] ; load AX with the
    ; contents of
    ; memory location 21h

      使用偽指令
    使用 a 命令提供兩個(gè)常用的偽指令:db 操作碼,將字節(jié)值直接匯編到內(nèi)存,dw 操作碼,將字值直接匯編到內(nèi)存。以下是兩個(gè)偽指令的范例:
    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\"

      Debug:C(比較)

      比較內(nèi)存的兩個(gè)部分。

      c range address

      參數(shù)
    range
    指定要比較的內(nèi)存第一個(gè)區(qū)域的起始和結(jié)束地址,或起始地址和長(zhǎng)度。有關(guān)有效的 range 值的信息,請(qǐng)單擊“相關(guān)主題”列表中的“Debug 說(shuō)明”。

      address
    指定要比較的第二個(gè)內(nèi)存區(qū)域的起始地址。有關(guān)有效 address 值的信息,請(qǐng)單擊“相關(guān)主題”列表中的“Debug 說(shuō)明”。
    ++

      范例
    以下命令具有相同效果:
    c100,10f 300
    c100l10 300
    每個(gè)命令都對(duì) 100h 到 10Fh 的內(nèi)存數(shù)據(jù)塊與 300h 到 30Fh 的內(nèi)存數(shù)據(jù)塊進(jìn)行比較。
    Debug 響應(yīng)前面的命令并顯示如下信息(假定 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。這表明那些地址中的值是相同的。
    ++

      說(shuō)明
    如果 range 和 address 內(nèi)存區(qū)域相同,Debug 將不顯示任何內(nèi)容而直接返回到 Debug 提示符。如果有差異,Debug 將按如下格式顯示:
    address1 byte1 byte2 addess2
    ++++

      Debug(轉(zhuǎn)儲(chǔ))

      顯示一定范圍內(nèi)存地址的內(nèi)容。

      d [range]

      參數(shù)
    range
    指定要顯示其內(nèi)容的內(nèi)存區(qū)域的起始和結(jié)束地址,或起始地址和長(zhǎng)度。有關(guān)有效的 range 值的信息,請(qǐng)單擊“相關(guān)主題”列表中的“Debug 說(shuō)明”。如果不指定 range,Debug 程序?qū)囊郧?d 命令中所指定的地址范圍的末尾開始顯示 128 個(gè)字節(jié)的內(nèi)容。
    有關(guān)顯示寄存器內(nèi)容的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug R(寄存器)。
    ++

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

      說(shuō)明
    當(dāng)使用 d 命令時(shí),Debug 以兩個(gè)部分顯示內(nèi)存內(nèi)容:十六進(jìn)制部分(每個(gè)字節(jié)的值都用十六進(jìn)制格式表示)和 ASCII 碼部分(每個(gè)字節(jié)的值都用 ASCII 碼字符表示)。每個(gè)非打印字符在顯示的 ASCII 部分由句號(hào) (.) 表示。每個(gè)顯示行顯示 16 字節(jié)的內(nèi)容,第 8 字節(jié)和第 9 字節(jié)之間有一個(gè)連字符。每個(gè)顯示行從 16 字節(jié)的邊界上開始。
    ++

      Debug:E(鍵入)

      將數(shù)據(jù)輸入到內(nèi)存中指定的地址。

      可以按十六進(jìn)制或 ASCII 格式鍵入數(shù)據(jù)。以前存儲(chǔ)在指定位置的任何數(shù)據(jù)全部丟失。

      e address

      參數(shù)

      address
    指定輸入數(shù)據(jù)的第一個(gè)內(nèi)存位置。

      list
    指定要輸入到內(nèi)存的連續(xù)字節(jié)中的數(shù)據(jù)。
    有關(guān)集成記憶碼的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug A(匯編)。
    有關(guān)顯示內(nèi)存部分內(nèi)容的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug D (轉(zhuǎn)儲(chǔ))。
    ++

      范例
    假定鍵入以下命令:
    ecs:100
    Debug 按下面的格式顯示第一個(gè)字節(jié)的內(nèi)容:
    04BA:0100 EB.
    要將該值更改為 41,請(qǐng)?jiān)诓迦朦c(diǎn)鍵入 41,如下所示:
    04BA:0100 EB.41_
    可以用一個(gè) e 命令鍵入連續(xù)的字節(jié)值。在鍵入新值后按 SPACEBAR(空格鍵),而不是按 ENTER 鍵。Debug 顯示下一個(gè)值。在此范例中,如果按三次 SPACEBAR(空格鍵),Debug 將顯示下面的值:
    04BA:0100 EB.41 10. 00. BC._
    要將十六進(jìn)制值 BC 更改為 42,請(qǐng)?jiān)诓迦朦c(diǎn)鍵入 42,如下所示:
    04BA:0100 EB.41 10. 00. BC.42_
    假定決定值 10 應(yīng)該是 6F。要糾正該值,請(qǐng)按 HYPHEN 鍵兩次以返回到地址 0101(值 10)。Debug 顯示以下內(nèi)容:
    04BA:0100 EB.41 10. 00. BC.42-
    04BA:0102 00.-
    04BA:0101 10._
    在插入點(diǎn)鍵入 6f 更改值,如下所示:
    04BA:0101 10.6f_
    按 ENTER 停止 e 命令并返回到 Debug 提示符下。
    以下是字符串項(xiàng)的范例:
    eds:100 \"This is the text example\"
    該字符串將從 DS:100 開始填充 24 個(gè)字節(jié)。
    ++

      說(shuō)明

      使用 address 參數(shù)

      如果在沒有指定可選的 list 參數(shù)的值情況下指定 address 的值,Debug 將顯示地址和內(nèi)容,在下一行重復(fù)地址,并等待您的輸入。此時(shí),您可以執(zhí)行下列操作之一:

      · 替換字節(jié)值。為此,請(qǐng)?jiān)诋?dāng)前值后鍵入新值。如果您鍵入的值不是有效的十六進(jìn)制值,或該值包含兩個(gè)以上的數(shù)字,則 Debug 不會(huì)回顯無(wú)效或額外的字符。

      · 進(jìn)入下一個(gè)字節(jié)。為此,請(qǐng)按 SPACEBAR(空格鍵)。要更改該字節(jié)中的值,請(qǐng)?jiān)诋?dāng)前值后鍵入新值。如果按 SPACEBAR(空格鍵)時(shí),移動(dòng)超過了 8 位界限,Debug 程序?qū)@示新的一行并在行首顯示新地址。

      · 返回到前一個(gè)字節(jié)。為此,請(qǐng)按 HYPHEN 鍵 (-)。可以反復(fù)按 HYPHEN 鍵 (-) 向后移動(dòng)超過多個(gè)字節(jié)。在按 HYPHEN 時(shí),Debug 開始新行并顯示當(dāng)前地址和字節(jié)值。

      · 停止執(zhí)行 e 命令。為此,請(qǐng)按 ENTER 鍵。在任何字節(jié)位置都可以按 ENTER。

      使用 list 參數(shù)

      如果指定 list 參數(shù)的值,隨后的 e 命令將使用列表中的值替換現(xiàn)有的字節(jié)值。如果發(fā)生錯(cuò)誤,將不更改任何字節(jié)值。

      List 值可以是十六進(jìn)制字節(jié)或字符串。使用空格、逗號(hào)或制表符來(lái)分隔值。必須將字符串包括在單或雙引號(hào)中。
    ++++

      Debug:F(填充)

      使用指定的值填充指定內(nèi)存區(qū)域中的地址。

      可以指定十六進(jìn)制或 ASCII 格式表示的數(shù)據(jù)。任何以前存儲(chǔ)在指定位置的數(shù)據(jù)將會(huì)丟失。
    f range list

      參數(shù)
    range

      指定要填充內(nèi)存區(qū)域的起始和結(jié)束地址,或起始地址和長(zhǎng)度。關(guān)于有效的 range 值的信息,請(qǐng)單擊“相關(guān)主題”列表中的“Debug 說(shuō)明”。

      list
    指定要輸入的數(shù)據(jù)。List 可以由十六進(jìn)制數(shù)或引號(hào)包括起來(lái)的字符串組成。
    ++

      范例
    假定鍵入以下命令:
    f04ba:100l100 42 45 52 54 41
    作為響應(yīng),Debug 使用指定的值填充從 04BA:100 到 04BA:1FF 的內(nèi)存位置。Debug 重復(fù)這五個(gè)值直到 100h 個(gè)字節(jié)全部填滿為止。
    ++

      說(shuō)明

      使用 range 參數(shù)

      如果 range 包含的字節(jié)數(shù)比 list 中的數(shù)值大,Debug 將在 list 中反復(fù)指派值,直到 range 中的所有字節(jié)全部填充。
    如果在 range 中的任何內(nèi)存損壞或不存在,Debug 將顯示錯(cuò)誤消息并停止 f 命令。

      使用 list 參數(shù)
    如果 list 包含的數(shù)值多于 range 中的字節(jié)數(shù),Debug 將忽略 list 中額外的值。

      Debug:G(轉(zhuǎn)向)

      運(yùn)行當(dāng)前在內(nèi)存中的程序。

      g [=address] [breakpoints]

      參數(shù)
    =address

      指定當(dāng)前在內(nèi)存中要開始執(zhí)行的程序地址。如果不指定 address,Windows 2000 將從 CS:IP 寄存器中的當(dāng)前地址開始執(zhí)行程序。

      breakpoints
    指定可以設(shè)置為 g 命令的部分的 1 到 10 個(gè)臨時(shí)斷點(diǎn)。
    有關(guān)執(zhí)行循環(huán)、重復(fù)的字符串指令、軟件中斷或子程序的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug P(執(zhí)行)。
    有關(guān)執(zhí)行指令的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug T(跟蹤)。

      范例
    假定鍵入以下命令:
    gcs:7550
    Windows 2000 運(yùn)行當(dāng)前內(nèi)存中的程序,直到執(zhí)行到 CS 段中的斷點(diǎn)地址 7550 為止。Debug 將顯示寄存器的內(nèi)容和標(biāo)志的狀態(tài)并結(jié)束 g 命令。

      以下命令設(shè)置兩個(gè)斷點(diǎn):
    gcs:7550, cs:8000
    如果在 Debug 遇到斷點(diǎn)之后再次鍵入 g 命令,將從在斷點(diǎn)之后的指令開始執(zhí)行,而不是在通常的開始地址執(zhí)行。
    ++

      說(shuō)明
    使用 address 參數(shù)

      必須在 address 參數(shù)之前使用等號(hào) (=) 以區(qū)分開始地址 (address) 和斷點(diǎn)地址 (breakpoints)。

      指定斷點(diǎn)

      程序在它遇到的第一個(gè)斷點(diǎn)處停止,而不論您在 breakpoint 列表的什么位置鍵入斷點(diǎn)。Debug 在每個(gè)斷點(diǎn)處用中斷代碼代替原始指令。

      當(dāng)程序到達(dá)斷點(diǎn)時(shí),Debug 將所有斷點(diǎn)地址恢復(fù)到它們的最初指令并顯示所有寄存器的內(nèi)容、所有標(biāo)記的狀態(tài)以及最后執(zhí)行指令的解碼形式。Debug 顯示的信息與使用 Debug r(寄存器)命令并指定斷點(diǎn)時(shí)所顯示的信息相同。

      如果不在斷點(diǎn)處停止程序,Debug 程序?qū)⒉皇褂迷贾噶钐鎿Q中斷代碼。

      設(shè)置斷點(diǎn)的限制

      可以只在包含 8086 操作代碼(操作碼)的第一個(gè)字節(jié)的地址上設(shè)置斷點(diǎn)。如果設(shè)置了 10 個(gè)以上的斷點(diǎn),Debug 將顯示以下信息:

      bp error

      對(duì)用戶堆棧指針的要求

      用戶堆棧指針必須有效且必須有 6 個(gè)字節(jié)可用于 g 命令。該命令使用 iret 指令跳轉(zhuǎn)到正在被測(cè)試的程序。Debug 設(shè)置用戶堆棧指針并將用戶標(biāo)志、代碼段寄存器和指令指針壓入用戶堆棧。(如果用戶堆棧無(wú)效或太小,操作系統(tǒng)可能會(huì)失敗。)Debug 在指定的斷點(diǎn)處設(shè)置中斷代碼 (0CCh)。

      重新啟動(dòng)程序
    不要在 Windows 2000 顯示以下消息后嘗試重新啟動(dòng)程序;
    Program terminated normally
    要正確地運(yùn)行程序,必須通過使用 Debug n(名稱)和 l(加載)命令重新加載該程序。
    ++++

      Debug:H(十六進(jìn)制)

      對(duì)指定的兩個(gè)參數(shù)執(zhí)行十六進(jìn)制運(yùn)算。
    h value1 value2

      參數(shù)
    value1
    代表從 0 到 FFFFh 范圍內(nèi)的任何十六進(jìn)制數(shù)字。
    value2
    代表從 0 到 FFFFh 范圍內(nèi)第二個(gè)十六進(jìn)制數(shù)字。
    ++

      范例
    假定鍵入以下命令:
    h19f 10a
    Debug 執(zhí)行運(yùn)算并顯示以下結(jié)果。
    02A9 0095
    ++

      說(shuō)明
    Debug 首先將指定的兩個(gè)參數(shù)相加,然后從第一個(gè)參數(shù)中減去第二個(gè)參數(shù)。這些計(jì)算的結(jié)果顯示在一行中:先計(jì)算和,然后計(jì)算差。
    ++++

      Debug:I(輸入)

      從指定的端口讀取并顯示一個(gè)字節(jié)值。
    i port

      參數(shù)
    port
    按地址指定輸入端口。地址可以是 16 位的值。
    有關(guān)將字節(jié)值發(fā)送到輸出端口的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug O(輸出)。
    ++

      范例
    假定鍵入以下命令:
    i2f8
    同時(shí)假定端口的字節(jié)值是 42h。Debug 讀取該字節(jié),并將其值顯示如下:
    42
    ++

      Debug:L(加載)

      將某個(gè)文件或特定磁盤扇區(qū)的內(nèi)容加載到內(nèi)存。

      要從磁盤文件加載 BX:CX 寄存器中指定的字節(jié)數(shù)內(nèi)容,請(qǐng)使用以下語(yǔ)法:
    l [address]
    要略過 Windows 2000 文件系統(tǒng)并直接加載特定的扇區(qū),請(qǐng)使用以下語(yǔ)法:
    l address drive start number

      參數(shù)
    address
    指定要在其中加載文件或扇區(qū)內(nèi)容的內(nèi)存位置。如果不指定 address,Debug 將使用 CS 寄存器中的當(dāng)前地址。
    drive
    指定包含讀取指定扇區(qū)的磁盤的驅(qū)動(dòng)器。該值是數(shù)值型:0 = A, 1 = B, 2 = C 等。
    start
    指定要加載其內(nèi)容的第一個(gè)扇區(qū)的十六進(jìn)制數(shù)。
    number
    指定要加載其內(nèi)容的連續(xù)扇區(qū)的十六進(jìn)制數(shù)。只有要加載特定扇區(qū)的內(nèi)容而不是加載 debug 命令行或最近的 Debug n(名稱)命令中指定的文件時(shí),才能使用 drive、start 和 number 參數(shù)。
    有關(guān)指定用于 l 命令的文件的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug n(名稱)。
    有關(guān)寫入調(diào)試到磁盤的文件的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug w(寫入)。
    ++

      范例
    假定啟動(dòng) Debug 并鍵入以下命令:
    nfile.com
    現(xiàn)在可以鍵入 l 命令以加載 File.com。Debug 將加載文件并顯示 Debug 提示符。
    假定需要從驅(qū)動(dòng)器 C 將起始邏輯扇區(qū)為 15 (0Fh) 的 109 (6Dh) 個(gè)扇區(qū)的內(nèi)容加載到起始地址為 04BA:0100 的內(nèi)存中。為此,請(qǐng)鍵入以下命令:
    l04ba:100 2 0f 6d
    ++

      注意
    使用不帶參數(shù)的 l 命令
    當(dāng)使用不帶參數(shù)的 l 命令時(shí),在 debug 命令行上指定的文件將加載到內(nèi)存中,從地址 CS:100 開始。Debug 同時(shí)將 BX 和 CX 寄存器設(shè)置為加載的字節(jié)數(shù)。如果不在 debug 命令行指定文件,所裝入的文件將是最近使用 n 命令經(jīng)常指定的文件。
    使用具有 address 參數(shù)的 1 命令
    如果使用帶 address 參數(shù)的 l 命令,Debug 將從內(nèi)存位置 address 開始加載文件或指定扇區(qū)的內(nèi)容。
    使用帶全部參數(shù)的 l 命令
    如果使用帶所有參數(shù)的 l 命令,Debug 將加載指定磁盤扇區(qū)的內(nèi)容而不是加載文件。

      加載特定扇區(qū)的內(nèi)容

    指定范圍內(nèi)的每個(gè)扇區(qū)均從 drive 讀取。Debug 從 start 開始加載,直到在 number 中指定的扇區(qū)數(shù)中的內(nèi)容全部被加載。

      加載 .exe 文件
    Debug 忽略 .exe 文件的地址 address 參數(shù)。如果指定 .exe 文件,Debug 將文件重新定位到 .exe 文件的標(biāo)題中指定的加載地址。在 .exe 文件被加載到內(nèi)存前,標(biāo)題自身從 .exe 文件脫離,因此磁盤上的 .exe 文件大小與內(nèi)存中的不同。如果要檢查整個(gè) .exe 文件,請(qǐng)使用不同的擴(kuò)展名重命名文件。
    打開十六進(jìn)制文件
    Debug 將具有 .hex 擴(kuò)展名的文件認(rèn)為十六進(jìn)制格式文件。鍵入不帶參數(shù)的 l 命令,可以加載從十六進(jìn)制文件中指定的地址處開始的十六進(jìn)制文件。如果鍵入的 l 命令包含 address 參數(shù),Debug 將把指定的地址加到在十六進(jìn)制文件中找到的地址上,以確定起始地址。

      Debug:M(移動(dòng))

      將一個(gè)內(nèi)存塊中的內(nèi)容復(fù)制到另一個(gè)內(nèi)存塊中。

      m range address
    參數(shù)

      range
    指定要復(fù)制內(nèi)容的內(nèi)存區(qū)域的起始和結(jié)束地址,或起始地址和長(zhǎng)度。
    address
    指定要將 range 內(nèi)容復(fù)制到該位置的起始地址。
    ++

      范例
    假定鍵入以下命令:
    mcs:100 110 cs:500
    Debug 首先將 CS:110 地址中的內(nèi)容復(fù)制到地址 CS:510 中,然后將 CS:10F 地址中的內(nèi)容復(fù)制到 CS:50F 中,如此操作直至將 CS:100 地址中的內(nèi)容復(fù)制到地址 CS:500 中。要查看結(jié)果,請(qǐng)使用 Debug d(轉(zhuǎn)儲(chǔ))命令,并使用 m 命令指定目標(biāo)地址。
    ++

      說(shuō)明
    復(fù)制操作對(duì)現(xiàn)有數(shù)據(jù)的影響
    如果新數(shù)據(jù)沒有寫入正在被復(fù)制的數(shù)據(jù)塊中的地址,則源數(shù)據(jù)將保持不變。但是,如果目標(biāo)塊已經(jīng)包含數(shù)據(jù)(就象它在覆蓋副本操作中一樣),則將改寫該數(shù)據(jù)。(覆蓋復(fù)制操作是指那些目標(biāo)數(shù)據(jù)塊部分內(nèi)容覆蓋原數(shù)據(jù)塊部分內(nèi)容的操作。)

      執(zhí)行覆蓋復(fù)制操作
    m 命令執(zhí)行目標(biāo)地址的覆蓋復(fù)制操作,而不丟失數(shù)據(jù)。將改寫的地址內(nèi)容首先復(fù)制。因此,如果將較高位地址的數(shù)據(jù)復(fù)制到較低位地址,則復(fù)制操作從原塊的最低位地 址開始并向最高位地址進(jìn)行。反之,如果要將數(shù)據(jù)從低地址復(fù)制到高地址,復(fù)制操作從原塊的最高地址開始,向最低地址進(jìn)行。
    ++++

      Debug:N(名稱)

      指定 Debug l(加載)或 w(寫入)命令的可執(zhí)行文件的名稱,或者指定正在調(diào)試的可執(zhí)行文件的參數(shù)。
    n [drive:][path] filename
    要指定測(cè)試的可執(zhí)行文件的參數(shù),請(qǐng)使用以下語(yǔ)法:
    n file-parameters

      參數(shù)
    如果在沒有參數(shù)的情況下使用,則 n 命令清除當(dāng)前規(guī)范。
    [drive:][path] filename
    指定要測(cè)試的可執(zhí)行文件的位置和名稱。
    file-parameters
    為正在測(cè)試的可執(zhí)行文件指定參數(shù)和開關(guān)。
    有關(guān)將文件或指定磁盤扇區(qū)的內(nèi)容加載到內(nèi)存中的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug L(加載)。
    有關(guān)寫入調(diào)試到磁盤的文件的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug W(寫入)。
    ++

      范例
    假定已經(jīng)啟動(dòng) Debug,并加載了正在調(diào)試的程序 Prog.com。接著您決定為 Prog.com 指定兩個(gè)參數(shù)并運(yùn)行此程序。以下是此范例的命令序列:
    debug prog.com
    nparam1 param2
    g
    在這種情況下,Debug g(轉(zhuǎn)向)命令會(huì)運(yùn)行該程序,就好像您已在 Windows 2000 命令提示符后鍵入了如下命令:
    prog param1 param2
    所以,測(cè)試和調(diào)試反映 Prog.com 通常的運(yùn)行時(shí)間環(huán)境。
    在下面的命令序列中,第一個(gè) n 命令將 File1.exe 指定為后接的 l(加載)命令的文件,該命令將 File1.exe 加載到內(nèi)存。第二個(gè) n 命令指定 File1.exe 將使用的參數(shù)。最后,g 命令將運(yùn)行 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 保存正在調(diào)試的文件 File1.exe。為避免出現(xiàn)此結(jié)果,應(yīng)該總是在 l 或 w 命令之前立即使用 n 命令的第一種形式。
    ++

      說(shuō)明
    n 命令的兩個(gè)用途
    可以按兩種方式使用 n 命令。首先,您可以使用它以指定后面的 l(加載)或 w(寫入)命令所使用的文件。如果在沒有命名所調(diào)試文件的情況下啟動(dòng) Debug,必須在使用 l 命令加載文件之前使用命令 nfilename。在 CS:5C 為文件控制塊 (FCB) 正確編排文件名的格式。其次,可以使用 n 命令指定被調(diào)試文件的命令行參數(shù)和開關(guān)。

      內(nèi)存區(qū)域
    以下四個(gè)內(nèi)存區(qū)域都會(huì)受到 n 命令的影響:
    內(nèi)存位置 內(nèi)容
    CS:5C 文件 1 的文件控制數(shù)據(jù)塊 (FCB)
    CS:6C 文件 2 的文件控制數(shù)據(jù)塊 (FCB)
    CS:80 n 命令行的長(zhǎng)度(以字符表示)
    CS:81 n 命令行字符的開頭
    為 n 命令指定的第一個(gè)文件名被放在 CS:5C 的 FCB 中。如果指定第二個(gè)文件名,此名稱將放置到 CS:6C 的 FCB 中。n 命令行上鍵入的字符數(shù)(除第一個(gè)字符之外,n)存儲(chǔ)在位置 CS:80。n 命令行上的實(shí)際字符(再次,除了字母 n 之外)存儲(chǔ)在以 CS:81 開頭的位置。注意這些字符可以是在 Windows 2000 命令提示符下鍵入的命令中有效的任何開關(guān)和分隔符。
    ++++

      Debug:O(輸出)

      將字節(jié)值發(fā)送到輸出端口。

      o port byte-value
    參數(shù)
    port
    通過地址指定輸出端口。端口地址可以是 16 位值。

      byte-value
    指定要指向 port 的字節(jié)值。
    有關(guān)從輸入端口讀取字節(jié)值的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug I(輸入)。
    ++

      范例
    要將字節(jié)值 4Fh 發(fā)送到地址為 2F8h 的輸出端口,請(qǐng)鍵入以下命令:
    o2f8 4f
    ++++

      Debug:P(執(zhí)行)

      執(zhí)行循環(huán)、重復(fù)的字符串指令、軟件中斷或子例程;或通過任何其他指令跟蹤。

      p [= address] [number]
    參數(shù)
    =address
    指定第一個(gè)要執(zhí)行指令的位置。如果不指定地址,則默認(rèn)地址是在 CS:IP 寄存器中指定的當(dāng)前地址。
    number
    指定在將控制返回給 Debug 之前要執(zhí)行的指令數(shù)。默認(rèn)值為 1。
    有關(guān)運(yùn)行當(dāng)前在內(nèi)存中程序的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug G(轉(zhuǎn)向)。
    有關(guān)執(zhí)行指令的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug T(跟蹤)。
    ++

      范例
    假定正在測(cè)試的程序在地址 CS:143F 處包含一個(gè) call 指令。要運(yùn)行 call 目標(biāo)位置的子程序然后將控制返回到 Debug,請(qǐng)鍵入以下命令:
    p=143f
    Debug 按以下格式顯示結(jié)果:
    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
    ++

      說(shuō)明
    將控制傳送到要測(cè)試的程序
    當(dāng) p 命令將控制從 Debug 傳送到要測(cè)試的程序時(shí),該程序不間斷運(yùn)行,直到循環(huán)、重復(fù)字符串指令、軟件中斷或者完成了指定地址的子例程為止,或者直到執(zhí)行了指定數(shù)量的機(jī)器指令為止。控制返回到 Debug。

      地址參數(shù)的限制
    如果 address 參數(shù)沒有指定段,Debug 將使用被測(cè)試程序的 CS 寄存器。如果省略 address,程序?qū)?CS:IP 寄存器所指定的地址開始執(zhí)行。必須在 address 參數(shù)之前使用等號(hào) (=) 以便將它與 number 參數(shù)區(qū)分。如果在指定地址處的指令不是循環(huán)、重復(fù)的字符串指令、軟件中斷或子例程,則 p 命令與 Debug t(跟蹤)命令的作用相同。

      使用 p 命令顯示的郵件
    當(dāng) p 執(zhí)行完一段說(shuō)明后,Debug 顯示出程序的寄存器內(nèi)容、標(biāo)志的狀態(tài)以及下一段將要被執(zhí)行的指令的解碼形式。

      警告
    · 不能使用 p 命令跟蹤只讀內(nèi)存 (ROM)。

      Debug:Q(退出)

      停止 Debug 會(huì)話,不保存當(dāng)前測(cè)試的文件。
    當(dāng)您鍵入 q 以后,控制返回到 Windows 2000 的命令提示符。
    q
    參數(shù)
    該命令不帶參數(shù)。
    有關(guān)保存文件的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug W(寫入)。
    ++++

      Debug:R(寄存器)

      顯示或改變一個(gè)或多個(gè) CPU 寄存器的內(nèi)容。
    r [register-name]
    參數(shù)
    無(wú)

      如果在沒有參數(shù)的情況下使用,則 r 命令顯示所有寄存器的內(nèi)容以及寄存器存儲(chǔ)區(qū)域中的標(biāo)志。
    register-name
    指定要顯示其內(nèi)容的寄存器名。
    有關(guān)顯示內(nèi)存部分內(nèi)容的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug D(轉(zhuǎn)儲(chǔ))。
    有關(guān)反匯編字節(jié)的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug U(反匯編)。
    ++

      范例
    要查看所有寄存器的內(nèi)容、所有標(biāo)記的狀態(tài)和當(dāng)前位置的指令解碼表,請(qǐng)鍵入以下命令:
    r
    如果當(dāng)前位置是 CS:11A,顯示外觀將類似于以下內(nèi)容:
    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
    要只查看標(biāo)志的狀態(tài),請(qǐng)鍵入以下命令:
    rf
    Debug 按以下格式顯示信息:
    NV UP DI NG NZ AC PE NC - _
    現(xiàn)在,您可以按任意順序鍵入一個(gè)或多個(gè)有效的標(biāo)志值,其中可以有或沒有空格,如下所示:
    nv up di ng nz ac pe nc - pleicy
    Debug 結(jié)束 r 命令并顯示 Debug 提示符。要查看更改,請(qǐng)鍵入 r 或 rf 命令。Debug 將顯示以下內(nèi)容:
    NV UP EI PL NZ AC PE CY - _
    按 ENTER 返回到 Debug 提示符。
    ++

      說(shuō)明
    使用 r 命令
    如果指定了寄存器名稱,Windows 2000 將顯示以十六進(jìn)制標(biāo)記表示的寄存器的 16 位值,并將冒號(hào)顯示為提示符。如果要更改包含在寄存器中的值,除非鍵入新值并按 ENTER 鍵;否則,請(qǐng)按 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 將每個(gè)標(biāo)記的當(dāng)前設(shè)置顯示為兩字母代碼,然后顯示 Debug 提示符。要更改標(biāo)志的設(shè)置,請(qǐng)從下表中鍵入適當(dāng)?shù)膬勺帜复a:
    標(biāo)志名 設(shè)置 清除
    溢出 ov nv
    方向 dn(減) up(增)
    中斷 ei(啟用) di(禁用)
    正負(fù) ng(負(fù)) pl(正)
    零 zr nz
    輔助進(jìn)位 ac na
    奇偶校驗(yàn) pe(偶校驗(yàn)) po(奇校驗(yàn))
    進(jìn)位 cy nc
    可以按任何順序鍵入新的標(biāo)志值。不需要在這些值之間留出空格。要停止 r 命令,請(qǐng)按 ENTER 鍵。任何沒有指定新值的標(biāo)志保持不變。
    用 r 命令顯示的郵件
    如果為標(biāo)記指定了多個(gè)值,Debug 將顯示以下消息:
    df error
    如果指定沒有在前面的表中列出的標(biāo)志代碼,Debug 將顯示以下消息:
    bf error
    在這兩種情況下,Debug 將忽略所有在無(wú)效項(xiàng)目之后指定的設(shè)置。
    Debug 的默認(rèn)設(shè)置
    在啟動(dòng) Debug 時(shí),會(huì)將段寄存器設(shè)置到空閑內(nèi)存的低端,指令指針設(shè)置為 0100h,清除所有標(biāo)志,并且將其余寄存器設(shè)置為零,除了被設(shè)置為 FFEEh 的 sp 之外。
    ++++

      Debug:S(搜索)

      在某個(gè)地址范圍搜索一個(gè)或多個(gè)字節(jié)值的模式。
    s range list
    參數(shù)
    range
    指定要搜索范圍的開始和結(jié)束地址。有關(guān) range 參數(shù)有效值的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug。
    list
    指定一個(gè)或多個(gè)字節(jié)值的模式,或要搜索的字符串。用空格或逗號(hào)分隔每個(gè)字節(jié)值和下一個(gè)字節(jié)值。將字符串值包括在引號(hào)中。
    ++

      范例
    假定需要查找包含值 41 并且范圍從 CS:100 到 CS:110 的所有地址。為此,請(qǐng)鍵入以下命令:
    scs:100 110 41
    Debug 按以下格式顯示結(jié)果:
    04BA:0104
    04BA:010D
    -
    以下命令在 CS:100 到 CS:1A0 的范圍內(nèi)搜索字符串“Ph”。
    scs:100 1a0 \"Ph\"
    ++

      說(shuō)明
    如果 list 參數(shù)包含多個(gè)字節(jié)值,Debug 將只顯示出現(xiàn)字節(jié)值的第一個(gè)地址。如果 list 只包含一個(gè)字節(jié)值,Debug 將顯示指定范圍內(nèi)出現(xiàn)該值的所有地址。
    ++++

      Debug:T(跟蹤)

      執(zhí)行一條指令,并顯示所有注冊(cè)的內(nèi)容、所有標(biāo)志的狀態(tài)和所執(zhí)行指令的解碼形式。
    t [=address] [number]
    參數(shù)
    =address
    指定 Debug 啟動(dòng)跟蹤指令的地址。如果省略 address 參數(shù),跟蹤將從程序的 CS:IP 寄存器所指定的地址開始。有關(guān) address 參數(shù)有效值的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug。
    number
    指定要跟蹤的指令數(shù)。該值必須是十六進(jìn)制數(shù)。默認(rèn)值為 1。
    有關(guān)執(zhí)行循環(huán)、重復(fù)的字符串指令、軟件中斷或子例程的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug P(執(zhí)行)。
    有關(guān)執(zhí)行當(dāng)前內(nèi)存中程序的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug G(轉(zhuǎn)向)。
    ++

      范例
    要執(zhí)行一個(gè)指令(CS:IP 指向的指令),然后顯示寄存器的內(nèi)容、標(biāo)志的狀態(tài)以及指令的解碼形式,請(qǐng)鍵入以下命令:
    t
    如果程序中的指令位于 04BA:011A,Debug 可能顯示下列信息:
    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
    ++

      說(shuō)明
    跟蹤只讀內(nèi)存中的指令
    t 命令使用 8086 或 8088 微處理器的硬件跟蹤模式。因此,也可以跟蹤存儲(chǔ)在只讀內(nèi)存 (ROM) 中的指令。
    使用地址參數(shù)
    必須在 address 參數(shù)之前使用等號(hào) (=) 以便將它與 number 參數(shù)區(qū)分。


    Debug:U(反匯編)

      反匯編字節(jié)并顯示相應(yīng)的原語(yǔ)句,其中包括地址和字節(jié)值。反匯編代碼看起來(lái)象已匯編文件的列表。
    u [range]
    參數(shù)
    無(wú)
    如果在沒有參數(shù)的情況下使用,則 u 命令分解 20h 字節(jié)(默認(rèn)值),從前面 u 命令所顯示地址后的第一個(gè)地址開始。
    range
    指定要反匯編代碼的起始地址和結(jié)束地址,或起始地址和長(zhǎng)度。有關(guān) range 參數(shù)有效值的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug。
    有關(guān)集成記憶碼的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug A(匯編)。
    有關(guān)顯示內(nèi)存部分內(nèi)容的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug D(轉(zhuǎn)儲(chǔ))。
    ++

      范例
    要反匯編 16 (10h) 字節(jié),從地址 04BA:0100 開始,請(qǐng)鍵入以下命令:
    u04ba:100l10
    Debug 按以下格式顯示結(jié)果:
    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 特定地址的信息,請(qǐng)鍵入以下命令:
    u04ba:0100 0108
    Debug 顯示以下內(nèi)容:
    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é)數(shù)的內(nèi)容寫入磁盤文件,請(qǐng)使用以下語(yǔ)法:
    w [address]
    要略過 Windows 2000 文件系統(tǒng)并直接寫入特定的扇區(qū),請(qǐng)使用以下語(yǔ)法:
    w address drive start number

      參數(shù)
    address
    指定要寫到磁盤文件的文件或部分文件的起始內(nèi)存地址。如果不指定 address,Debug 程序?qū)?CS:100 開始。關(guān)于 address 參數(shù)有效值的信息,請(qǐng)?jiān)?#8220;相關(guān)主題”列表中單擊 Debug。
    drive
    指定包含目標(biāo)盤的驅(qū)動(dòng)器。該值是數(shù)值型:0 = A, 1 = B, 2 = C,等等。
    start
    指定要寫入第一個(gè)扇區(qū)的十六進(jìn)制數(shù)。
    number
    指定要寫入的扇區(qū)數(shù)。
    有關(guān)指定用于 w 命令的文件的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug N(名稱)。
    有關(guān)將文件或文件扇區(qū)內(nèi)容加載到內(nèi)存中的信息,請(qǐng)單擊“相關(guān)主題”列表中的 Debug L(加載)。
    范例
    假定要將起始地址為 CS:100 的內(nèi)存內(nèi)容寫入到驅(qū)動(dòng)器 B 的磁盤中。需要將數(shù)據(jù)從磁盤的邏輯扇區(qū)號(hào) 37h 開始并持續(xù) 2Bh 個(gè)扇區(qū)。為此,鍵入以下命令:
    wcs:100 1 37 2b
    當(dāng)寫操作完成時(shí),Debug 再次顯示 Debug 提示符。
    ++

      說(shuō)明
    必須在啟動(dòng) Debug 時(shí)或者在最近的 Debug n(名稱)命令中指定磁盤文件的名字。這兩種方法都可以將地址 CS:5C 處文件控制塊的文件名正確地編排格式。
    在使用不帶參數(shù)的 w 命令之前重新設(shè)置 BX:CX
    如果使用了 Debug g(轉(zhuǎn)向)、t(跟蹤)、p(執(zhí)行)或 r(寄存器)命令,必須在使用無(wú)參數(shù)的 w 命令之前,將 BX:CX 寄存器復(fù)位。
    將修改后的文件寫入磁盤
    如果修改文件但不更改文件名、長(zhǎng)度或起始地址,Debug 仍然可以正確地將文件寫入源磁盤位置。
    w 命令的限制
    不能用該命令寫入 .exe 或 .hex 文件。

      警告
    · 因?yàn)槁赃^ Windows 2000 文件句柄,所以寫入特定的分區(qū)非常危險(xiǎn)。如果鍵入錯(cuò)誤的值,則磁盤文件結(jié)構(gòu)很容易被損壞。
    ++++

      Debug:XA(分配擴(kuò)展內(nèi)存)

      分配擴(kuò)展內(nèi)存的指定頁(yè)面數(shù)。
    要使用擴(kuò)展內(nèi)存,必須安裝符合 4.0 版的 Lotus/Intel/Microsoft 擴(kuò)展內(nèi)存規(guī)范 (LIM EMS) 的擴(kuò)展內(nèi)存設(shè)備驅(qū)動(dòng)程序。
    xa [count]

      參數(shù)
    count
    指定要分配的擴(kuò)展內(nèi)存的 16KB 頁(yè)數(shù)。
    有關(guān)使用擴(kuò)展內(nèi)存的其他 Debug 命令的信息,請(qǐng)單擊“相關(guān)主題”列表中的 XD(釋放擴(kuò)展內(nèi)存)、XM(映射擴(kuò)展內(nèi)存頁(yè))或 XS(顯示擴(kuò)展內(nèi)存狀態(tài))。
    ++

      范例
    要分配擴(kuò)展內(nèi)存的 8 個(gè)頁(yè)面,請(qǐng)鍵入以下命令:
    xa8
    如果命令成功,Debug 將顯示類似的以下消息:
    Handle created=0003
    ++

      說(shuō)明
    如果指定的頁(yè)面數(shù)可用,則 Debug 將顯示消息,此消息表明所創(chuàng)建的句柄的十六進(jìn)制數(shù);否則,Debug 將顯示錯(cuò)誤消息。
    Debug:XD(釋放擴(kuò)展內(nèi)存)

      釋放指向擴(kuò)展內(nèi)存的句柄。
    要使用擴(kuò)展內(nèi)存,必須安裝符合 4.0 版的 Lotus/Intel/Microsoft 擴(kuò)展內(nèi)存規(guī)范 (LIM EMS) 的擴(kuò)展內(nèi)存設(shè)備驅(qū)動(dòng)程序。
    xd [handle]

      參數(shù)
    handle
    指定要釋放的句柄。
    有關(guān)使用擴(kuò)展內(nèi)存的其他 Debug 命令的信息,請(qǐng)單擊“相關(guān)主題”列表中 XA(分配擴(kuò)展內(nèi)存)、XM(映射擴(kuò)展內(nèi)存頁(yè)) 或 XS(顯示擴(kuò)展內(nèi)存狀態(tài))。
    ++

      范例
    要釋放句柄 0003,請(qǐng)鍵入以下命令:
    xd 0003
    如果命令成功,Debug 將顯示下列消息:
    Handle 0003 deallocated
    ++++

      Debug:XM(映射擴(kuò)展內(nèi)存頁(yè))

      將屬于指定句柄的擴(kuò)展內(nèi)存邏輯頁(yè)映射到擴(kuò)展內(nèi)存的物理頁(yè)。
    要使用擴(kuò)展內(nèi)存,必須安裝符合 4.0 版的 Lotus/Intel/Microsoft 擴(kuò)展內(nèi)存規(guī)范 (LIM EMS) 的擴(kuò)展內(nèi)存設(shè)備驅(qū)動(dòng)程序。
    xm [lpage] [ppage] [handle]

      參數(shù)
    lpage
    指定要映射到物理頁(yè) ppage 的擴(kuò)展內(nèi)存的邏輯頁(yè)面號(hào)。
    ppage
    指定將 lpage 映射到的物理頁(yè)面號(hào)。
    handle
    指定句柄。
    有關(guān)使用擴(kuò)展內(nèi)存的其他 Debug 命令的信息,請(qǐng)單擊“相關(guān)主題”列表中的 XA(分配擴(kuò)展內(nèi)存)、XD(釋放擴(kuò)展內(nèi)存)或 XS(顯示擴(kuò)展內(nèi)存)。
    ++

      范例
    要將句柄 0003 的邏輯頁(yè) 5 映射到物理頁(yè) 2,請(qǐng)鍵入以下命令:
    xm 5 2 0003
    如果命令成功,Debug 將顯示下列消息:
    Logical page 05 mapped to physical page 02
    ++++

      Debug:XS(顯示擴(kuò)展內(nèi)存狀態(tài))

      顯示有關(guān)擴(kuò)展內(nèi)存狀態(tài)的信息。
    要使用擴(kuò)展內(nèi)存,必須安裝符合 4.0 版的 Lotus/Intel/Microsoft 擴(kuò)展內(nèi)存規(guī)范 (LIM EMS) 的擴(kuò)展內(nèi)存設(shè)備驅(qū)動(dòng)程序。
    xs

      參數(shù)
    該命令不帶參數(shù)。
    有關(guān)使用擴(kuò)展內(nèi)存的其他 Debug 命令的信息,請(qǐng)單擊“相關(guān)主題”列表中的 XA(分配擴(kuò)展內(nèi)存)、XD(釋放擴(kuò)展內(nèi)存)或 XM(映射擴(kuò)展內(nèi)存頁(yè))。
    ++

      范例
    要顯示擴(kuò)展內(nèi)存信息,請(qǐng)鍵入以下命令:
    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
    ++

      說(shuō)明
    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

    posted on 2009-12-11 16:50 BlakeSu 閱讀(215) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲综合小说久久另类区| 亚洲youwu永久无码精品| 亚洲精品乱码久久久久久下载| a毛片成人免费全部播放| 亚洲av再在线观看| h视频在线免费观看| 国产亚洲美女精品久久久2020| 精品久久久久久国产免费了| AV大片在线无码永久免费| 亚洲va中文字幕无码| 一级片在线免费看| 日本一区二区三区免费高清| 国产亚洲精品VA片在线播放| 免费观看一级毛片| 亚洲伊人久久大香线蕉苏妲己| 久久国产色AV免费观看| 激情五月亚洲色图| 国产成人免费高清在线观看| 91在线亚洲精品专区| 中文字幕免费在线观看动作大片 | 亚洲午夜免费视频| 亚洲GV天堂GV无码男同| 免费人成视频在线观看视频| 国产特黄一级一片免费| 91情国产l精品国产亚洲区| 男男AV纯肉无码免费播放无码| 国产精品亚洲一区二区三区| 亚洲人成图片小说网站| 日韩亚洲人成网站| 亚洲色WWW成人永久网址| 黄+色+性+人免费| 边摸边吃奶边做爽免费视频99 | 中文字幕免费不卡二区| 亚洲精品老司机在线观看| 亚洲色大成网站www久久九| 免费毛片a在线观看67194| 久久亚洲精品无码AV红樱桃| 无码中文字幕av免费放| 亚洲专区一路线二| 亚洲精品色婷婷在线影院| 亚洲精品国产精品|