小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Debug命令詳解 - WIN32 - linxh

 傾聽天外來客 2011-05-03
Debug命令詳解
 
命令行參數(shù)形式:
    格式:DEBUG [[驅(qū)動器號:][路徑]文件名 [調(diào)試參數(shù)]]
    用途:debug將所指定文件裝入內(nèi)存,顯示提示符“-”等待進一步命令。若裝入文件為.exe文件,按照重定位原則裝入為可執(zhí)行狀態(tài)。.com文件類似。若為其它類型文件則直接進行內(nèi)存映射,由偏移量100H原封不動讀入內(nèi)存。
    debug將在緩沖區(qū)為被調(diào)試程序建立適當?shù)腜SP(程序段前綴,Program Segment Prefix)。在PSP中的偏移量80H為命令行的末尾。而且在偏移量5CH和6CH由包含參數(shù)后面的可選參數(shù)構(gòu)成缺省的FCB(文件控制塊,F(xiàn)ile Control Block)。
    進入時各寄存器初使情況:
    寄存器  .com程序             .exe程序
     AX     指定驅(qū)動器錯誤碼     指定驅(qū)動器錯誤碼
     BX     程序空間的高地址     程序空間的高地址
     CX     程序空間的低地址     程序空間的低地址
     DX           0                    0
     SI           0                    0
     DI           0                    0
     BP           0                    0
     SP     0FFFFH或可利用的     不定
            內(nèi)存空間上限減2
     IP     100H                 目標程序的的代碼
                                 入口偏移量
     CS           PSP            目標程序代碼段址
     DS           PSP                  PSP
     CS           PSP                  PSP
     SS           PSP            目標程序堆棧段底

命令:
A:  編寫匯編代碼(Assemble)
    格式:A[地址]
    用途:程序允許在指定位置(若無缺省為IP指針位置)進行匯編
          程序書寫。
    細節(jié):
        *所有數(shù)值皆為十六進制整數(shù),數(shù)值后不帶“H”
        *不支持文件管理用的目錄表、宏標記、條件匯編
        *跳轉(zhuǎn)指令后要直接書寫十六進制地址不支持標號
        *數(shù)據(jù)類型若非默認類型,要以PTR加以指定
        *字符串操作要指定類型為B或W(如lodsb和lodsw等)及長度
        *用DB和DW接受數(shù)據(jù)定義,直按進行匯編
        *對內(nèi)存地址加[]以與立即數(shù)區(qū)分

C: 內(nèi)存內(nèi)容比較(Compare)
   格式:C 地址范圍  地址
         地址范圍:做比較的第一個內(nèi)存域始未地址或始地址和長度
         地址:    做比較的第二個內(nèi)存域的始地址
   用途:*對內(nèi)存中兩個域的內(nèi)容加以比較,以字節(jié)為單位。對發(fā)現(xiàn)有
         差別的內(nèi)容及其地址用如下形式顯示出:
             地址1  始位置  未位置  地址2
         *若地址范圍或地址不含段地址,默認為DS的值。

D: 顯示內(nèi)存內(nèi)容(Dump)
   格式:D[地址范圍]
         地址范圍:給定顯示區(qū)的始未范圍或始地址和長度。
   用途:*內(nèi)存內(nèi)容顯示指令,以十六進制和ASCII碼形式顯示指定范
         圍內(nèi)的內(nèi)存內(nèi)容。
         *若不指定范圍,第一次按目標程序的CS:IP的位址開始顯示。
         以后使用上次顯示的未地址的下一地址為開始進行顯示。
         *若不指定長度,則顯示128byte的內(nèi)容。計8行。

E: 數(shù)據(jù)的輸入
   格式:E 地址 數(shù)值列表
         地址:    數(shù)據(jù)輸入的內(nèi)存始地址
         數(shù)值列表:從始地址輸入的連續(xù)數(shù)據(jù)
   用途:*向內(nèi)存區(qū)域輸入數(shù)據(jù)。數(shù)據(jù)以十六進制形式,或以ASCII碼形式
         均可。覆蓋掉原有數(shù)據(jù)。
         *十六進制時要用空格、逗號或制表符加以分隔。字符串則要用單
         引號或雙引號括起且區(qū)分大小寫。
         *若不指寫段址,則默認為DS中值。每寫完一數(shù)據(jù)地址自動增加。
         *如省略數(shù)值列表,對應每一字節(jié)請求輸入。點號前為該字節(jié)原
         始值,點號后請求輸入。這時若按空格,跳過這一字節(jié);按回車,
         結(jié)束輸入;按減號或連字符,顯示前一字節(jié)內(nèi)容。
     *出錯時內(nèi)存內(nèi)容有可能已被改變。提示后終止。
         *字符串只能以數(shù)值列表的形式輸入,不能按地址提式輸入。

F: 內(nèi)存填充(Fill)
   格式:F 地址范圍 數(shù)值列表
    地址范圍:數(shù)據(jù)輸入的內(nèi)存始本地址或首地址和長度
         數(shù)值列表:從始地址輸入的連續(xù)數(shù)據(jù)
  用途:*將列表中數(shù)據(jù)寫入內(nèi)存。輸入數(shù)據(jù)以十六進制或ASCII碼形式。
     覆蓋原有信息;若出錯,顯示出錯信息,原有信息保留。
     *若未指寫段址,默認為DS寄存器值。
     *列表中可有十六進制或字符串兩種形式,各內(nèi)容用空格、逗號、
     制表符隔開。字符串必須以單引號或雙引號括起,區(qū)分大小寫。
     *若要填充區(qū)域大于數(shù)據(jù)數(shù)目,列表可重復使用;相反,若列表
     比要填充區(qū)域大時,則自動截斷后面的數(shù)據(jù)。

G: 程序執(zhí)行(Go)
   格式:G[=地址][斷點0][……斷點]
         地址:          Debug開始執(zhí)行的地址。
         斷點0……斷點9:指定的0—10個臨時中斷點。
   用途:*將CPU控制權(quán)由Debug轉(zhuǎn)移給被調(diào)試中的程序。不設斷點時,則程
         序的執(zhí)行或是中途失敗或是正常結(jié)束。結(jié)束時,提示有“Program
         termminated nomally”,即程序結(jié)束正常,控制權(quán)再返回到
         Debug。
         *此時因數(shù)據(jù)有可能重寫,若需再次執(zhí)行,因重新裝入。
         *地址中,如未指定段址,則使用目標程序的CS寄存器中的值。當
         地址省略時,則Debug使用目標程序的CS:IP寄存器的值開始執(zhí)行。
         且為與斷點區(qū)分,地址參數(shù)前必須加等號,否則將其認為是第零
         個斷點。
         *斷點參數(shù)可指定10個臨時斷點。當程序執(zhí)行到指定的斷點地址時
         則發(fā)生中止。與斷點表內(nèi)的次序無關(guān),斷點可按任意次序輸入。
         *中止時,將會顯示寄存器的內(nèi)容、標志位狀態(tài)及CS:IP指出的指
         令(也就是下一條將要執(zhí)行的指令),然后是提示符“-”。
         *若沒有裝入可執(zhí)行程序或程序內(nèi)容未知,有可能進入死狀態(tài)。
         *若目標程序的棧不起作用或太小,則可能引起系統(tǒng)“破碎”。

H: 執(zhí)行十六進制算術(shù)運算(Hexadecimal)
   格式:H 值1  值2
         值1、2為0—FFFFH范圍內(nèi)的任意十六進制數(shù)。
   用途:*用來求兩個十六進制數(shù)的和、差,對結(jié)果顯示為值1+值2及值1-
         值2。如果值2 > 值1則顯示其補碼。
         *雖然很少用,但事實還是很有用的,熟練掌握。

I: 端口的輸入(Input)
   格式:I 端口地址
         端口地址:0—FFFF范圍內(nèi)的I/O端口地址。
   用途:用來讀取指定I/O端口地址,并以2位十六進制數(shù)加以顯示。
   警告:I指令將直接訪問計算機硬件,不是所以錯誤檢查都能進行,所以
         使用是必須小心。對某個外設控制器分配端口的輸入操作,可能
         干涉系統(tǒng)固有的操作。對沒有分配指定I/O端口的設備,或該端口
         為寫入專用端口等情況,I命令都不能保證可顯示。

L: 裝入命令(Load)
   格式:L 地址
         或
         L 地址 驅(qū)動器 開始扇區(qū) 扇區(qū)數(shù)
         地址:    存放從盤中讀出數(shù)據(jù)的內(nèi)存地址。
         驅(qū)動器:  A=0, B=1, C=2, 以此類推。
         開始扇區(qū):以十六進制數(shù)表示要最先裝入的邏輯扇區(qū)號。
         扇區(qū)數(shù):  以十六進制數(shù)表示要裝入連續(xù)扇區(qū)個數(shù)。
   用途:*若輸入了一個不完全的L命令時,則對下述磁盤文件進行裝入:
            1在Debug命令行中指定過的文件;
            2由命令末尾參數(shù)N指定的文件。
         *在地址中若未指定段址,則使用CS中的值。若為可執(zhí)行文件按重
         定位原則裝入為可執(zhí)行狀態(tài)。
         *裝入后文件長度,或.exe文件程序的實際長度放入目標程序的BX
         和CX兩個寄存器中。高十六位放在BX中。
         *若在命令行中給出所有參數(shù),則不必用MS-DOS的文件系統(tǒng)訪問磁
         盤。

M: 數(shù)據(jù)傳送(Move)
   格式:M 地址范圍 地址
         地址范圍:被復制域的始末地址,或始地址和長度。
         地址:    數(shù)據(jù)復制目的域的起始地址。
   用途:*對內(nèi)存中數(shù)據(jù)進行復制。目的域被覆蓋。
         *若地址范圍中無段址,則使用DS內(nèi)容;若地址中無段址,使用地
         址范圍中的值。


N: 文件名或命令末尾的參數(shù)(Name)
   格式:N 參數(shù) [參數(shù)……]
         參數(shù):插入到仿真的PSP中去一個以上的文件名或者是開關(guān)項。
   用途:*對磁盤讀寫操作L、W指定目標文件。


O: 端口的輸出(Output)
   格式:O 端口  字節(jié)
         端口:I/O端口地址。
         字節(jié):寫入I/O端口的0—FFFF范圍的值。
   用途:向I/O端口地址寫入一字節(jié)。
   警告:錯誤的操作將導致系統(tǒng)崩潰。

P: 循環(huán)或子程序處理(Procedure)
   格式:P[=地址] [命令數(shù)]
         地址:  執(zhí)行的起始地址。
         指令數(shù):執(zhí)行的指令條數(shù)。
   用途:*循環(huán)或子程序處理。將循環(huán)、串指令、軟件中斷或子程序調(diào)用
         視為單語句。執(zhí)行中了,顯示目標程序寄存器內(nèi)容、標志位狀態(tài)
         和下一條要執(zhí)行的指令。
         *若地址參數(shù)中無段址,則使用CS中的值。完全忽略地址時,則從
         程序中的CS:IP指定位置開始執(zhí)行。

Q: 結(jié)束Debug操作(Quit)
   格式:Q
   用途:程序結(jié)束返回。對未保存的結(jié)果丟失。

R: 寄存器顯示與更改(Register)
   格式:R [寄存器]
         寄存器:AX BX CX DX SP BP SI DI
                 DS ES CS IP PC
                 F
   用途:*若R不帶參數(shù),則顯示所有寄存器的內(nèi)容和狀態(tài)標志、下一指令。
         *若指定新值,在顯示內(nèi)容后,給出冒句提示輸入新值。回車結(jié)束。
         *對狀態(tài)字F,在連字符“-”后以空格間隔輸入新值,次序不計。
         *若直接回車,則跳過修改,寄存器內(nèi)容不變。

S: 內(nèi)存檢索(Search)
   格式:S 地址范圍  列表
         地址范圍:想來你該明白是什么樣了吧:)
         列表:    欲檢索的一個以上的字節(jié)值或字符串。
   用途:*在指定的內(nèi)存范圍內(nèi)檢索列表的值。對每一個匹配的地址進行
         顯示。
         *若起地址中無段址,默認為DS的值。
         *檢索范圍不得大于FFFFH
         *列表必須以分隔符(空格,逗號,制表符等)分隔;字符串要加
         單引號或雙引號括起,區(qū)分大小寫。

T: 程序執(zhí)行跟蹤(Trace)
   格式:T[=地址][指令數(shù)]
         地址:  執(zhí)行的第一條指令的地址。
         指定數(shù):執(zhí)行的機器指令的條數(shù)。
   用途:*執(zhí)行單條指令,顯示寄存器及下一條指令。
         *在地址參數(shù)中若無段址,則默認為CS寄存器的值。
         *若全部省略,則由CS:IP寄存器指出的地址開始執(zhí)行。
         *以后則順序執(zhí)行。
         *對ROM內(nèi)的跟蹤應使用T命令。
   警告:對Intel 8259 中斷屏幕的內(nèi)容(IBM PC及兼容機端口20H和21H)
         的更改,或者系統(tǒng)功能調(diào)用(INT 21H),不能使用T指令,對上述
         情況要使用P指令。

U: 反匯編(Unassemble)
   格式:U [地址范圍]
   用途:*將機器指定解碼為匯編語言的助記符。
         *地址范圍中無段址時,默認使用CS值。
         *當始地址與實際邊界不一致時,結(jié)果將不可信。
         *若不含末地址或長度,則自給定始地址起反匯編32個字節(jié)。
         *以后由前次U最后一指令的下一指令做32字節(jié)的反匯編。
         *若從沒用過U,則于CS:IP開始進行反匯編。
         *只能對8086指令解碼,對其它以DB來顯示。

W: 寫入文件或扇區(qū)(Write)
   格式:W [地址]
       或
         W 地址 驅(qū)動器 開始扇區(qū) 扇區(qū)數(shù)
         地址:  待寫入盤的數(shù)據(jù)在內(nèi)存中的起始位置。
         驅(qū)動器:寫入數(shù)據(jù)的盤的驅(qū)動器號(A=0,B=1,C=2,以下類推)。
         始扇區(qū):寫入數(shù)據(jù)的最前的邏輯扇區(qū)號(0—FFFFH)。
         扇區(qū)數(shù):寫入數(shù)據(jù)的連續(xù)扇區(qū)個數(shù)(0—FFFFH)。
   用途:*將內(nèi)存中的文件或一個個扇區(qū)傳送到磁盤上。
         *W若不帶參數(shù),或只有地址參數(shù),則按BX:CX寄存器指出的字節(jié),從內(nèi)
         存向磁盤寫入數(shù)據(jù)。此時的文件名是此命令前最后一個使用過的文件名
         ,或者是N命令中指定的文件,如果沒有使用過N命令,則使用Debug命
        令行中指定的文件。
         *Debug的W命令,不能向擴展名為.EXE或.HEX的文件中寫入數(shù)據(jù)。
         *這可用改擴展名的方法得到應用,讓其能對.exe文件寫入。
         *若無地址項,則認為是目標程序的CS:0100H。
         *該命令可不通過MS-DOS的文件系統(tǒng)直接訪問磁盤的邏輯扇區(qū)。但必須
         以十六進制形式給在命令行中給定各參數(shù)。
         *W命令不能對用于網(wǎng)絡上的驅(qū)動器進行邏輯扇區(qū)寫入處理。
   警告:若參數(shù)有誤,則可能破壞盤文件結(jié)構(gòu)。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多