DEBUG 是 DOS 內建的多功能除錯工具,自 DOS 1.0 起隨附至今。它支援組語、反組譯、記憶體檢視/修改、I/O 埠存取、磁碟扇區讀寫、擴充記憶體 (EMS) 管理等功能,是組語開發者、逆向工程師、系統維護人員的必備利器。本文整理自官方文件,詳細說明每個命令語法、參數、範例與注意事項。
| 命令 | 功能 | 常用語法 |
|---|---|---|
A | 組譯 (Assemble) | A [address] |
C | 比較記憶體 | C range address |
D | 顯示記憶體 | D [range] |
E | 輸入/修改記憶體 | E address [list] |
F | 填充記憶體 | F range list |
G | 執行程式 | G [=address] [breakpoints] |
H | 十六進制運算 | H value1 value2 |
I | 輸入埠讀取 | I port |
L | 載入檔案/扇區 | L [address] / L address drive start number |
M | 移動/複製記憶體 | M range address |
N | 指定檔案/參數 | N [drive:][path]filename |
O | 輸出埠寫入 | O port byte-value |
P | 執行子程式/迴圈 | P [=address] [count] |
Q | 離開 DEBUG | Q |
R | 顯示/修改暫存器 | R [register] |
S | 搜尋記憶體 | S range list |
T | 單步追蹤 | T [=address] [count] |
U | 反組譯 | U [range] |
W | 寫入檔案/扇區 | W [address] / W address drive start number |
XA | 配置 EMS 頁面 | XA [count] |
XD | 釋放 EMS 控制代碼 | XD [handle] |
XM | 對應 EMS 頁面 | XM [lpage] [ppage] [handle] |
XS | 顯示 EMS 狀態 | XS |
CS:、DS:、ES:、SS:;遠端返回用 RETF。MOVSW (16-bit)、MOVSB (8-bit)。NEAR/FAR 強制指定。BYTE PTR/WORD PTR(縮寫 BY/WO)。[] 表示記憶體定址,立即數不加括號。DB 定義位元組、DW 定義字組,支援字串與數值混合。-A 100
0D62:0100 MOV AX, 1234
0D62:0103 MOV [BX], AX
0D62:0105 DB 'Hello', 0
0D62:010B
D CS:100 110 顯示範圍;D CS:100 L 20 顯示 20h 字節。E CS:100 進入互動模式:顯示目前值,可輸入新值、Space 移下一位、- 回上一位、Enter 結束。E CS:100 41 42 "ABC" 直接批次寫入。G =100 120 130 從 CS:100 執行,在 CS:120、CS:130 設暫時中斷點。N 指定檔案至 CS:100,BX:CX 回傳位元組數。L 1000:載入至指定位址。L 1000 2 0F 6D:略過檔案系統,直接讀磁碟機 2 (C:),從邏輯扇區 0Fh 讀 6Dh 個扇區。N FILE.EXE 設定後續 L/W 目標檔案。N PARAM1 PARAM2 設定被測程式的命令列參數,G 執行時自動傳遞。CS:5C (FCB1)、CS:6C (FCB2)、CS:80 (參數長度)、CS:81 起始參數字串。CALL、INT、LOOP、REP 字串指令時,一次執行完整個子程式/迴圈再停下,而非單步進入。P =143F 在 CALL 指令處執行完子程式返回。R 顯示所有暫存器、旗標、下一條指令反組譯。R AX 修改單一暫存器。RF 進入旗標修改模式:輸入雙字母代碼 (OV/NV, DN/UP, EI/DI, NG/PL, ZR/NZ, AC/NA, PE/PO, CY/NC)。U 100 L 10 從 CS:100 反組譯 10h 位元組。N 指定檔名,且 BX:CX 為寫入位元組數。EMM386.EXE)。XA 8 配置 8 頁 (128KB) EMS,回傳控制代碼。XM 5 2 0003 將控制代碼 0003 的邏輯頁 5 對應至實體頁 2。XS 顯示所有控制代碼、頁面配置、頁框段位址統計。CS:100、DS:200,預設區段依命令而定 (U/D 用 CS,E/F/S 用 DS)。100 110 (起迄) 或 100 L 10 (起始+長度)。P/T 無法追蹤唯讀記憶體 (ROM/BIOS) 程式碼。W address drive start number 略過檔案系統,錯誤參數會導致資料遺失。DEBUG 雖然介面樸素,但功能極為強大,涵蓋從指令級除錯到硬體 I/O、磁碟編輯、EMS 管理的完整工具鏈。熟練掌握其命令,能在無原始碼環境下完成程式分析、修補、資料救援等高階任務。建議搭配 HELP 命令 (部分版本支援) 或列印本速查表隨身備查。