第四章調(diào)試程序DEBUG_第1頁(yè)
第四章調(diào)試程序DEBUG_第2頁(yè)
第四章調(diào)試程序DEBUG_第3頁(yè)
第四章調(diào)試程序DEBUG_第4頁(yè)
第四章調(diào)試程序DEBUG_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、調(diào)調(diào) 試試 程程 序序 D E B U G封面調(diào)調(diào) 試試 程程 序序 D E B U G編輯編輯文本編輯器,如文本編輯器,如 EDIT.COM源程序:文件名源程序:文件名.asm匯編匯編匯編程序,如匯編程序,如 MASM.EXE目標(biāo)模塊:文件名目標(biāo)模塊:文件名.obj連接連接連接程序,如連接程序,如 LINK.EXE可執(zhí)行文件:文件名可執(zhí)行文件:文件名.exe調(diào)試調(diào)試調(diào)試程序,如調(diào)試程序,如 DEBUG.EXE應(yīng)用程序應(yīng)用程序錯(cuò)誤錯(cuò)誤錯(cuò)誤錯(cuò)誤錯(cuò)誤錯(cuò)誤錯(cuò)誤錯(cuò)誤匯編語(yǔ)言程序的開發(fā)過程匯編語(yǔ)言程序的開發(fā)過程調(diào)調(diào) 試試 程程 序序 D E B U G調(diào)試程序調(diào)試程序DEBUGDEBUG的使用的使用調(diào)調(diào)

2、 試試 程程 序序 D E B U GD E B U G 的的 使使 用用DEBUG.EXEDEBUG.EXE是是DOSDOS提供的用于調(diào)試可執(zhí)行提供的用于調(diào)試可執(zhí)行程序的工具軟件,是匯編語(yǔ)言程序設(shè)計(jì)中常程序的工具軟件,是匯編語(yǔ)言程序設(shè)計(jì)中常用的調(diào)試工具。在用的調(diào)試工具。在DEBUGDEBUG環(huán)境下,不但可以調(diào)環(huán)境下,不但可以調(diào)試經(jīng)匯編、連接后生成的可執(zhí)行程序,也可試經(jīng)匯編、連接后生成的可執(zhí)行程序,也可以編寫簡(jiǎn)單的程序。以編寫簡(jiǎn)單的程序。調(diào)調(diào) 試試 程程 序序 D E B U G啟動(dòng)啟動(dòng)DEBUGDEBUG程序程序1.1.啟動(dòng)啟動(dòng)DEBUGDEBUG程序程序 在在DOSDOS提示符下鍵入:提示

3、符下鍵入:DEBUG (DEBUG (表示回車表示回車) )DebugDebug執(zhí)行,屏幕顯示提示符執(zhí)行,屏幕顯示提示符“”,說(shuō)明計(jì)算機(jī),說(shuō)明計(jì)算機(jī)當(dāng)前處于當(dāng)前處于DEBUGDEBUG的管理之下,可接受、并執(zhí)行的管理之下,可接受、并執(zhí)行DEBUGDEBUG命令。命令。 在在DOSDOS提示符下鍵入:提示符下鍵入:DEBUG DEBUG 路徑路徑 文件名文件名DEBUGDEBUG執(zhí)行,并將指定文件裝入內(nèi)存,供調(diào)試。執(zhí)行,并將指定文件裝入內(nèi)存,供調(diào)試。v如不指定被調(diào)試程序,如不指定被調(diào)試程序,DEBUGDEBUG設(shè)置所有段寄存器的設(shè)置所有段寄存器的值相同,并指向最低的、可用的段地址;值相同,并指向

4、最低的、可用的段地址;SPSP指向本指向本段的尾部;段的尾部;IPIP指向本段的指向本段的0100H0100H單元;其它通用寄存單元;其它通用寄存器和所有狀態(tài)標(biāo)志清器和所有狀態(tài)標(biāo)志清0 0。調(diào)調(diào) 試試 程程 序序 D E B U G啟動(dòng)DEBUG2v 如帶入的被調(diào)試程序擴(kuò)展名不是如帶入的被調(diào)試程序擴(kuò)展名不是.EXE.EXE,則,則BXBX、CXCX包含被調(diào)試文件長(zhǎng)度(字節(jié)數(shù),包含被調(diào)試文件長(zhǎng)度(字節(jié)數(shù),BXBX為高位),其他為高位),其他同上。同上。( (帶入帶入.COM.COM程序同此程序同此) )v 如帶入的被調(diào)試程序擴(kuò)展名是如帶入的被調(diào)試程序擴(kuò)展名是.EXE.EXE,則需要重新,則需要重

5、新定位。定位。DS=ESDS=ES指向當(dāng)前最低的、可用的段地址(指向當(dāng)前最低的、可用的段地址(PSPPSP的首字節(jié));的首字節(jié));CS:IPCS:IP和和SS:SPSS:SP根據(jù)被調(diào)試程序確定,根據(jù)被調(diào)試程序確定,分別指向代碼段和堆棧段;分別指向代碼段和堆棧段;BX.CXBX.CX為文件長(zhǎng)度,其它為文件長(zhǎng)度,其它通用寄存器和狀態(tài)標(biāo)志清通用寄存器和狀態(tài)標(biāo)志清0 0。 演示:演示:DEBUGDEBUG的兩種啟動(dòng)方法的兩種啟動(dòng)方法調(diào)調(diào) 試試 程程 序序 D E B U G命令格式2 DEBUG2 DEBUG命令和參數(shù)的格式命令和參數(shù)的格式1.1.命令格式命令格式 命令字母命令字母 參數(shù)參數(shù)字母不分大

6、小寫字母不分大小寫v只使用只使用1616進(jìn)制數(shù),不加進(jìn)制數(shù),不加H H;v分割符只在兩個(gè)數(shù)值之間是必須的,命令和分割符只在兩個(gè)數(shù)值之間是必須的,命令和參數(shù)之間可有可無(wú);參數(shù)之間可有可無(wú);v鍵入回車鍵執(zhí)行命令,鍵入回車鍵執(zhí)行命令,Ctrl+BreakCtrl+Break或或Ctrl+CCtrl+C中止命令的執(zhí)行;中止命令的執(zhí)行;v如命令不符合如命令不符合DEBUGDEBUG的規(guī)則,則提示的規(guī)則,則提示“error”error”并使用并使用“”指示錯(cuò)誤位置。指示錯(cuò)誤位置。調(diào)調(diào) 試試 程程 序序 D E B U G參數(shù)格式12.2.參數(shù)格式參數(shù)格式表示地址表示地址( (邏輯地址邏輯地址) ):040

7、0:2500 0400:2500 D10ac:010ac:0既不送段地址,也不送偏移地址,既不送段地址,也不送偏移地址,如如DDSDS: 或或 D04000400:調(diào)調(diào) 試試 程程 序序 D E B U G參數(shù)格式2表示范圍表示范圍 開始地址開始地址 結(jié)束地址結(jié)束地址如如“D DS:0 50”,“D2AC0:100 200”,“D100 D DS:0 50”,“D2AC0:100 200”,“D100 120”120”注意:結(jié)束地址不能帶段地址注意:結(jié)束地址不能帶段地址 開始地址開始地址 L L 字節(jié)長(zhǎng)度字節(jié)長(zhǎng)度如如 “ “D DS:0 L 10”, “D100L20”D DS:0 L 10”

8、, “D100L20”調(diào)調(diào) 試試 程程 序序 D E B U G命令索引命命 令令 索索 引引D D命令命令 E E命令命令 F F命令命令 R R命令命令 A A命令命令U U命令命令 G G命令命令 T T命令命令 P P命令命令 Q Q命令命令N N命令命令 L L命令命令 W W命令命令 C C命令命令 H H命令命令S S命令命令 I I命令命令 O O命令命令 M M命令命令調(diào)調(diào) 試試 程程 序序 D E B U GD命令3.DEBUG3.DEBUG命令命令1.1.顯示命令顯示命令D D D D 地址地址 D D 范圍范圍 ;如不指定范圍,一次顯示;如不指定范圍,一次顯示8 8行行

9、1616個(gè)字節(jié)。個(gè)字節(jié)。 D ;默認(rèn)段寄存器為;默認(rèn)段寄存器為DS,當(dāng)前偏移地址,當(dāng)前偏移地址 D DS:100 /DS:100 /D CS:200CS:200 D 200:100 200:100 D 200200;200200為偏移地址,默認(rèn)段寄存器為偏移地址,默認(rèn)段寄存器DSDS D DS:100 110/ DS:100 110/ D 100 L 1010調(diào)調(diào) 試試 程程 序序 D E B U GE命令2.2.修改命令修改命令E E E E 地址地址 ;從指定地址開始,修改(或連續(xù);從指定地址開始,修改(或連續(xù)修改)存儲(chǔ)單元內(nèi)容。修改)存儲(chǔ)單元內(nèi)容。DEBUGDEBUG首先顯示指定單元內(nèi)容

10、,首先顯示指定單元內(nèi)容,如要修改,可輸入新數(shù)據(jù);空格鍵顯示下一個(gè)單元如要修改,可輸入新數(shù)據(jù);空格鍵顯示下一個(gè)單元內(nèi)容并可修改,減號(hào)鍵顯示上一個(gè)單元內(nèi)容并可修內(nèi)容并可修改,減號(hào)鍵顯示上一個(gè)單元內(nèi)容并可修改;如不修改,可直接按空格鍵或減號(hào)鍵;回車鍵改;如不修改,可直接按空格鍵或減號(hào)鍵;回車鍵結(jié)束命令。結(jié)束命令。 E E 地址地址 數(shù)據(jù)表;從指定的地址開始用數(shù)據(jù)數(shù)據(jù)表;從指定的地址開始用數(shù)據(jù)表給定的數(shù)據(jù)修改存儲(chǔ)單元。表給定的數(shù)據(jù)修改存儲(chǔ)單元。 E DS:100 F3 AB 8D DS:100 F3 AB 8D。調(diào)調(diào) 試試 程程 序序 D E B U GF命令3.3.添充命令添充命令F FF F 范圍

11、范圍 數(shù)據(jù)表;數(shù)據(jù)表; 將數(shù)據(jù)表寫入指定范圍的存儲(chǔ)單元;數(shù)據(jù)個(gè)數(shù)將數(shù)據(jù)表寫入指定范圍的存儲(chǔ)單元;數(shù)據(jù)個(gè)數(shù)多,忽略多出的數(shù)據(jù),個(gè)數(shù)少,則重復(fù)使用數(shù)據(jù)表。多,忽略多出的數(shù)據(jù),個(gè)數(shù)少,則重復(fù)使用數(shù)據(jù)表。 F DS:0 L5 01,02,03,04,05DS:0 L5 01,02,03,04,05 F DS:0 L5 01 02 03 04 05DS:0 L5 01 02 03 04 05(空格分隔)(空格分隔) F DS:0 L5 FF ;5個(gè)字節(jié)重復(fù)使用個(gè)字節(jié)重復(fù)使用FF 注意和注意和E命令的區(qū)別:命令的區(qū)別: E E 地址地址 數(shù)據(jù)表數(shù)據(jù)表起始地址,不是范圍起始地址,不是范圍調(diào)調(diào) 試試 程程 序

12、序 D E B U GR命令4.4.顯示修改寄存器命令顯示修改寄存器命令R R R R;顯示所有寄存器和標(biāo)志位狀態(tài);顯示所有寄存器和標(biāo)志位狀態(tài); 顯示當(dāng)前顯示當(dāng)前CSCS:IPIP指向的指令。指向的指令。顯示標(biāo)志時(shí)使用的符號(hào):顯示標(biāo)志時(shí)使用的符號(hào):標(biāo)志標(biāo)志 標(biāo)志標(biāo)志=1 =1 標(biāo)志標(biāo)志=0=0 OF OFOVOVNVNV DF DFDNDNUPUP IF IFEIEIDIDI SF SFNGNGPLPL ZF ZFZRZRNZNZ AF AFACACNANA PF PFPEPEPOPO CF CFCYCYNCNC調(diào)調(diào) 試試 程程 序序 D E B U GA命令 R R 寄存器名;顯示并修改指定

13、的寄存器。寄存器名;顯示并修改指定的寄存器。 RAX RAX ;RIPRIP;RFRF等等5.5.匯編命令匯編命令A(yù) AA A 地址地址 ;從指定的地址開始輸入符號(hào)指令;從指定的地址開始輸入符號(hào)指令;如省略地址,則接著上一個(gè)如省略地址,則接著上一個(gè)A A命令的最后一個(gè)單元開命令的最后一個(gè)單元開始;若第一次使用始;若第一次使用A A命令省略地址,則從當(dāng)前命令省略地址,則從當(dāng)前CS:IPCS:IP開始(通常是開始(通常是CSCS:100100)。)。注釋注釋: :在在DEBUGDEBUG下編寫簡(jiǎn)單程序即使用下編寫簡(jiǎn)單程序即使用A A命令。命令。每條指令后要按回車。每條指令后要按回車。不輸入指令按回

14、車,或按不輸入指令按回車,或按Ctrl+CCtrl+C結(jié)束匯編。結(jié)束匯編。支持所有支持所有80868086符號(hào)硬指令,偽指令只支持符號(hào)硬指令,偽指令只支持DBDB、DWDW,不支持各類符號(hào)名。,不支持各類符號(hào)名。調(diào)調(diào) 試試 程程 序序 D E B U GU命令6.6.反匯編命令反匯編命令U U U U 地址地址 ;從指定地址開始反匯編;從指定地址開始反匯編3232個(gè)字節(jié)個(gè)字節(jié)的機(jī)器指令;省略地址時(shí)的機(jī)器指令;省略地址時(shí), ,則接著上一個(gè)則接著上一個(gè)U U命令的最命令的最后一個(gè)單元開始;若第一次使用后一個(gè)單元開始;若第一次使用U U命令省略地址,則命令省略地址,則從當(dāng)前從當(dāng)前CS:IPCS:IP

15、開始(通常是開始(通常是CSCS:100100)。)。 U U 范圍;對(duì)指定范圍的單元進(jìn)行反匯編。范圍;對(duì)指定范圍的單元進(jìn)行反匯編。 U U U100U100 U100L10U100L10調(diào)調(diào) 試試 程程 序序 D E B U GG命令7.7.運(yùn)行程序命令運(yùn)行程序命令G G G G;從;從CS:IPCS:IP指向的指令開始執(zhí)行程序,直到指向的指令開始執(zhí)行程序,直到程序結(jié)束或遇到程序結(jié)束或遇到INT 3INT 3。 G= G=地址;從指定地址開始執(zhí)行程序,直到程地址;從指定地址開始執(zhí)行程序,直到程序結(jié)束或遇到序結(jié)束或遇到INT 3INT 3。 G G 斷點(diǎn)斷點(diǎn)11,斷點(diǎn),斷點(diǎn)2 2,斷點(diǎn)斷點(diǎn)10

16、10;從;從CS:IPCS:IP指指向的指令開始執(zhí)行程序,直到遇到斷點(diǎn)。向的指令開始執(zhí)行程序,直到遇到斷點(diǎn)。G=G=地址地址 斷點(diǎn)斷點(diǎn)11,斷點(diǎn),斷點(diǎn)2 2,斷點(diǎn)斷點(diǎn)1010 G G ;從;從CS:IPCS:IP指向的指令開始執(zhí)行程序。指向的指令開始執(zhí)行程序。 G=100 G=100 ;從指定地址開始執(zhí)行程序。;從指定地址開始執(zhí)行程序。 G=100 105 110 120G=100 105 110 120調(diào)調(diào) 試試 程程 序序 D E B U GG命令2注注 釋:釋: 1 1)最多可設(shè)置)最多可設(shè)置1010個(gè)斷點(diǎn)。個(gè)斷點(diǎn)。2 2)斷點(diǎn)必須設(shè)置在一條指令的首字節(jié)。)斷點(diǎn)必須設(shè)置在一條指令的首字節(jié)

17、。3 3)如設(shè)置了多個(gè)斷點(diǎn),程序在第一個(gè)斷點(diǎn)停下)如設(shè)置了多個(gè)斷點(diǎn),程序在第一個(gè)斷點(diǎn)停下后,顯示寄存器、標(biāo)志及下一條要執(zhí)行的指令,再次后,顯示寄存器、標(biāo)志及下一條要執(zhí)行的指令,再次輸入輸入G G命令,程序繼續(xù)往下執(zhí)行,直到下一個(gè)斷點(diǎn)或命令,程序繼續(xù)往下執(zhí)行,直到下一個(gè)斷點(diǎn)或程序結(jié)束。程序結(jié)束。4 4)程序如有錯(cuò)誤,執(zhí)行時(shí)可能造成死機(jī)。)程序如有錯(cuò)誤,執(zhí)行時(shí)可能造成死機(jī)。調(diào)調(diào) 試試 程程 序序 D E B U GT命令8.8.跟蹤命令(單步執(zhí)行命令)跟蹤命令(單步執(zhí)行命令)T T T T;從當(dāng)前;從當(dāng)前IPIP開始執(zhí)行一條指令。開始執(zhí)行一條指令。 T T 數(shù)值;從當(dāng)前數(shù)值;從當(dāng)前IPIP開始執(zhí)行

18、多條指令。開始執(zhí)行多條指令。 T = T =地址;地址; T = T =地址地址 數(shù)值;數(shù)值; T T5 / / T=100 5必須用分割符必須用分割符調(diào)調(diào) 試試 程程 序序 D E B U GP、Q命令9.9.跟蹤執(zhí)行并跳過子程序命令跟蹤執(zhí)行并跳過子程序命令P PP =P =地址地址 數(shù)值數(shù)值 ;類似;類似T T命令,但跳過子程序命令,但跳過子程序和中斷服務(wù)程序。和中斷服務(wù)程序。10.10.退出退出DEBUGDEBUG命令命令Q QQ Q;返回;返回DOSDOS環(huán)境。環(huán)境。 Q調(diào)調(diào) 試試 程程 序序 D E B U GN N命令命令11.11.命名命令命名命令N NN N 文件標(biāo)示符;指定文

19、件,以便用文件標(biāo)示符;指定文件,以便用W W命令在磁盤命令在磁盤上生成該文件,或者用上生成該文件,或者用L L命令從磁盤裝入該文件。命令從磁盤裝入該文件。N MY_PRO.COM 寫盤:在當(dāng)前盤當(dāng)前目錄生成指定文件。寫盤:在當(dāng)前盤當(dāng)前目錄生成指定文件。 讀盤:在當(dāng)前盤當(dāng)前目錄讀取指定文件。讀盤:在當(dāng)前盤當(dāng)前目錄讀取指定文件。 N A: USER MY_PRO.COM調(diào)調(diào) 試試 程程 序序 D E B U GL L命令命令12.12.裝入命令裝入命令L L L L 地址地址 ;裝入;裝入N N命令指定的文件,默認(rèn)的內(nèi)命令指定的文件,默認(rèn)的內(nèi)存地址為存地址為CSCS:100100。 N MY_PR

20、O.COM L L L L 地址地址 驅(qū)動(dòng)器號(hào)驅(qū)動(dòng)器號(hào) 扇區(qū)號(hào)扇區(qū)號(hào) 扇區(qū)數(shù);將某驅(qū)動(dòng)扇區(qū)數(shù);將某驅(qū)動(dòng)器的若干扇區(qū)(最多器的若干扇區(qū)(最多80H80H個(gè))裝入內(nèi)存;個(gè))裝入內(nèi)存;0=A0=A,1=B1=B,2=C2=C;默認(rèn)的段地址為;默認(rèn)的段地址為CSCS。 L DS:200 2 0 1調(diào)調(diào) 試試 程程 序序 D E B U GW命令13.13.寫盤命令寫盤命令W W W W 地址地址 ;將指定地址開始的內(nèi)存數(shù)據(jù)寫;將指定地址開始的內(nèi)存數(shù)據(jù)寫入磁盤,生成入磁盤,生成N N命令指定的文件;默認(rèn)的內(nèi)存地址為命令指定的文件;默認(rèn)的內(nèi)存地址為CS:100CS:100;寫盤的字節(jié)數(shù)由;寫盤的字節(jié)數(shù)由BX(BX(高位字高位字) )和和CX(CX(低位字低

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論