2019-11-11

最近在學匯編語言,有關(guān)debug命令的一些具體用法及例子列示如下,大家相互借鑒。 一、DEBUG程序的調(diào)用在DOS的提示符下,可鍵入命令: C:\DEBUG [D:][PATH][FILENAME[.EXT]][PARM1][PARM2]其中,文件名是被調(diào)試文件的名字。如用戶鍵入文件,則DEBUG將指定的文件裝入存儲器中,用戶可對其進行調(diào)試。如果未鍵入文件名,則用戶可以用當前存儲器的內(nèi)容工作,或者用DEBUG命令N和L把需要的文件裝入存儲器后再進行調(diào)試。命令中的D指定驅(qū)動器PATH為路徑,PARM1和PARM2則為運行被調(diào)試文件時所需要的命令參數(shù)。在DEBUG程序調(diào)入后,將出現(xiàn)提示符,此時就可用DEBUG命令來調(diào)試程序。 二、DEBUG的主要命令 1、顯示存儲單元的命令D(DUMP),格式為: _D[address]或_D[range]例如,按指定范圍顯示存儲單元內(nèi)容的方法為: -d100 120 18E4:0100 c7 06 04 02 38 01 c7 06-06 02 00 02 c7 06 08 02 G...8.G.....G... 18E$:0110 02 02 bb 04 02 e8 02 00-CD 20 50 51 56 57 8B 37 ..;..h..M PQVW. 7 18E4:0120 8B 其中0100至0120是DEBUG顯示的單元內(nèi)容,左邊用十六進制表示每個字節(jié),右邊用ASCII字符表示每個字節(jié),·表示不可顯示的字符。這里沒有指定段地址,D命令自動顯示DS段的內(nèi)容。如果只指定首地址,則顯示從首地址開始的80個字節(jié)的內(nèi)容。如果完全沒有指定地址,則顯示上一個D命令顯示的最后一個單元后的內(nèi)容。 2、修改存儲單元內(nèi)容的命令有兩種。 ·輸入命令E(ENTER),有兩種格式如下:第一種格式可以用給定的內(nèi)容表來替代指定范圍的存儲單元內(nèi)容。命令格式為: -E address [list] 例如,-E DS:100 F3'XYZ'8D其中F3,'X','Y','Z'和各占一個字節(jié),該命令可以用這五個字節(jié)來替代存儲單元DS:0100到0104的原先的內(nèi)容。第二種格式則是采用逐個單元相繼修改的方法。命令格式為: -E address 例如,-E DS:100 則可能顯示為: 18E4:0100 89.-如果需要把該單元的內(nèi)容修改為78,則用戶可以直接鍵入78,再按“空格”鍵可接著顯示下一個單元的內(nèi)容,如下: 18E4:0100 89.78 1B.- 這樣,用戶可以不斷修改相繼單元的內(nèi)容,直到用ENTER鍵結(jié)束該命令為止。 ·填寫命令F(FILL),其格式為: -F range list 例如:-F 4BA:0100 5 F3'XYZ'8D使04BA:0100~0104單元包含指定的五個字節(jié)的內(nèi)容。如果list中的字節(jié)數(shù)超過指定的范圍,則忽略超過的項;如果list的字節(jié)數(shù)小于指定的范圍,則重復使用list填入,直到填滿指定的所有單元為止。 3)檢查和修改寄存器內(nèi)容的命令R(register),它有三種格式如下: ·顯示CPU內(nèi)所有寄存器內(nèi)容和標志位狀態(tài),其格式為: -R 例如,-r AX=0000 BX=0000 CX=010A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000 DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=0100 NV UP DI PL NZ NA PO NC 18E4:0100 C70604023801 MOV WORD PTR [0204],0138 DS:0204=0000 ·顯示和修改某個寄存器內(nèi)容,其格式為: -R register name 例如,鍵入 -R AX系統(tǒng)將響應如下: AX F1F4 : 即AX寄存器的當前內(nèi)容為F1F4,如不修改則按ENTER鍵,否則,可鍵入欲修改的內(nèi)容,如: -R bx BX 0369 :059F 則把BX寄存器的內(nèi)容修改為059F。 ·顯示和修改標志位狀態(tài),命令格式為: -RF系統(tǒng)將響應,如: OV DN EI NG ZR AC PE CY-此時,如不修改其內(nèi)容可按ENTER鍵,否則,可鍵入欲修改的內(nèi)容,如: OV DN EI NG ZR AC PE CY-PONZDINV 即可,可見鍵入的順序可以是任意的。 4)運行命令G,其格式為: -G[=address1][address2[address3…]]其中,地址1指定了運行的起始地址,如不指定則從當前的CS:IP開始運行。后面的地址均為斷點地址,當指令執(zhí)行到斷點時,就停止執(zhí)行并顯示當前所有寄存器及標志位的內(nèi)容,和下一條將要執(zhí)行的指令。 5)跟蹤命令T(Trace),有兩種格式: ·逐條指令跟蹤 -T [=address]從指定地址起執(zhí)行一條指令后停下來,顯示所有寄存器內(nèi)容及標志位的值。如未指定地址則從當前的CS:IP開始執(zhí)行。 ·多條指令跟蹤 -T [=address][value] 從指定地址起執(zhí)行n條指令后停下來,n由value指定。 6)匯編命令A(Assemble),其格式為: -A[address]該命令允許鍵入?yún)R編語言語句,并能把它們匯編成機器代碼,相繼地存放在從指定地址開始的存儲區(qū)中。必須注意:DEBUG把鍵入的數(shù)字均看成十六進制數(shù),所以如要鍵入十進制數(shù),則其后應加以說明,如100D。 7)反匯編命令U(Unassemble)有兩種格式。 ·從指定地址開始,反匯編32個字節(jié),其格式為: -U[address]例如: -u100 18E4:0100 C70604023801 MOV WORD PTR[0204],0138 18E4:0106 C70606020002 MOV WORD PTR[0206],0200 18E4:010C C70606020202 MOV WORD PTR[0208],0202 18E4:0112 BBO4O2 MOV BX,0204 18E4:0115 E80200 CALL 011A 18E4:0118 CD20 INT 20 18E4:011A 50 PUSH AX 18E4:011B 51 PUSH CX 18E4:011C 56 PUSH SI 18E4:011D 57 PUSH DI 18E4:011E 8B37 MOV SI,[BX]如果地址被省略,則從上一個U命令的最后一條指令的下一個單元開始顯示32個字節(jié)。 ·對指定范圍內(nèi)的存儲單元進行反匯編,格式為: -U[range] 例如: -u100 10c 18E4:0100 C70604023801 MOV WORD PTR[0204],0138 18E4:0106 C70606020002 MOV WORD PTR[0206],0200 18E4:010C C70606020202 MOV WORD PTR[0208],0202 或 -u100 112 18E4:0100 C70604023801 MOV WORD PTR[0204],0138 18E4:0106 C70606020002 MOV WORD PTR[0206],0200 18E4:010C C70606020202 MOV WORD PTR[0208],0202  可見這兩種格式是等效的。 8)命名命令N(Name),其格式為: -N filespecs [filespecs]命令把兩個文件標識符格式化在CS:5CH和CS:6CH的兩個文件控制塊中,以便在其后用L或W命令把文件裝入存盤。filespecs的格式可以是: [d:][path] filename[.ext] 例如, -N myprog -L - 可把文件myprog裝入存儲器。 9)裝入命令(Load),有兩種功能。 ·把磁盤上指定扇區(qū)范圍的內(nèi)容裝入到存儲器從指定地址開始的區(qū)域中。其格式為: -L[address[drive sector sector] ·裝入指定文件,其格式為: -L[address]此命令裝入已在CS:5CH中格式化了文件控制塊所指定的文件。如未指定地址,則裝入CS:0100開始的存儲區(qū)中。 10)寫命令W(Write),有兩種功能。 ·把數(shù)據(jù)寫入磁盤的指定扇區(qū)。其格式為: -W address drive sector sector ·把數(shù)據(jù)寫入指定的文件中。其格式為: -W[address]此命令把指定的存儲區(qū)中的數(shù)據(jù)寫入由CS:5CH處的文件控制塊所指定的文件中。如未指定地址則數(shù)據(jù)從CS:0100開始。要寫入文件的字節(jié)數(shù)應先放入BX和CX中。 11)退出DEBUG命令Q(Quit),其格式為: -Q它退出DEBUG,返回DOS。本命令并無存盤功能,如需存盤應先使用W命令。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • Day9用條件格式扮靚報表 一、基本用法: 突出顯示單元格,找到表中大于(小于、等于等)數(shù)值 方法一:篩選方式:選...
    天天_5274閱讀 220評論 0 1
  • 今天的學習內(nèi)容很豐富,但是迷你圖、函數(shù)圖表這些平時用的機會不是很多,暫且先記下吧。學習由淺入深,雖然這節(jié)課還在學習...
    mahu520閱讀 282評論 0 1
  • DAY 9 用條件格式扮靚報表 一、基本用法: 1、突出顯示單元格規(guī)則:若想在表格中某個區(qū)域找出某個金額時,...
    小歆姐姐閱讀 241評論 0 1
  • Day 8 用條件格式扮靚報表 基本用法 選中數(shù)據(jù)一開始一條件格式一突出顯示單元格規(guī)則一大于3000一顏色選擇自定...
    仰望星空_3f58閱讀 88評論 0 1
  • 打卡第八天:用條件格式扮靚報表 條件格式就是依據(jù)事先設(shè)定的規(guī)則條件,根據(jù)單元格的值智能的設(shè)置單元格的格式??梢栽?..
    GH_31e4閱讀 295評論 0 1

友情鏈接更多精彩內(nèi)容