資源描述:
《第3章_2 調(diào)試程序debug》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、調(diào)試程序DEBUG的使用DEBUG.EXE是DOS提供的可用于調(diào)試可執(zhí)行程序的一個(gè)工具軟件,也是可用于匯編語言程序設(shè)計(jì)的一種調(diào)試工具。一、DEBUG程序的調(diào)用在DOS的提示符下,可如下鍵入Debug啟動(dòng)調(diào)試程序:DEBUG[路徑\文件名]↙Debug后可以不帶文件名,僅運(yùn)行Debug程序調(diào)試程序DEBUG的使用二、DEBUG命令的格式Debug的命令都是一個(gè)字母,后跟一個(gè)或多個(gè)參數(shù)命令的使用中注意:字母不分大小寫。只使用16進(jìn)制數(shù),沒有后綴字母。分隔符(空格或逗號(hào))只在兩個(gè)數(shù)值之間是必須的,命令和參數(shù)間可無分隔符。每個(gè)命令
2、只有按了回車鍵后才有效,可以用Ctrl+Break中止命令的執(zhí)行。命令如果不符合Debug的規(guī)則,則將以“error”提示,并用“?”指示錯(cuò)誤位置。調(diào)試程序DEBUG的使用1、顯示命令DD命令顯示主存單元的內(nèi)容,它的格式如下:D[地址];顯示當(dāng)前或指定開始地址的主存內(nèi)容D[范圍];顯示指定范圍的主存內(nèi)容例:-D100功能:顯示當(dāng)前數(shù)據(jù)段偏移地址從100H開始的數(shù)據(jù)例:-D100,120功能:顯示當(dāng)前數(shù)據(jù)段偏移地址從100H至120H的數(shù)據(jù)例:-D100L10功能:顯示當(dāng)前數(shù)據(jù)段偏移地址從100H開始的16個(gè)字節(jié)例:-D10
3、00:2000功能:顯示1000H段偏移地址從2000H開始的數(shù)據(jù)調(diào)試程序DEBUG的使用2、E命令E命令用于修改主存內(nèi)容,它有兩種格式:E地址;格式1,修改指定地址的內(nèi)容E地址數(shù)據(jù)表;格式2,用數(shù)據(jù)表的數(shù)據(jù)修改指定地址的內(nèi)容。格式1是逐個(gè)單元相繼修改的方法。例如,鍵人“eds:100”,Debug顯示原來內(nèi)容,用戶可以直接輸入新數(shù)據(jù),然后按空格鍵顯示下一個(gè)單元的內(nèi)容,或者按“一’’鍵顯示上一個(gè)單元的內(nèi)容;不需要修改可以直接按空格或“一”鍵;這樣,用戶可以不斷修改相繼單元的內(nèi)容,直到用回車鍵結(jié)束該命令為止。調(diào)試程序DEBU
4、G的使用格式2可以一次修改多個(gè)單元。例:-eds:100F3‘XYZ’8D功能:用F3/’X‘/’y‘/’Z’/8D這5個(gè)數(shù)據(jù)替代DS:0100~0104的原來內(nèi)容。調(diào)試程序DEBUG的使用3、寄存器命令RR命令用于顯示和修改處理器的寄存器,它有三種格式。R;格式1,顯示所有寄存器內(nèi)容和標(biāo)志位狀態(tài)R寄存器名;格式2,顯示和修改指定寄存器例:-RAXRF;格式3,顯示和修改標(biāo)志位例:-RF調(diào)試程序DEBUG的使用標(biāo)志狀態(tài)的表示符號(hào)標(biāo)志置位符號(hào)復(fù)位符號(hào)溢出0FOVNV方向DFDNUP中斷IFEIDI符號(hào)sFNGPL零位ZFZR
5、NZ輔助AFACNA奇偶PFPEP0進(jìn)位CFCYNC調(diào)試程序DEBUG的使用4、匯編命令A(yù)A[地址];從指定地址開始匯編指令A(yù)命令中如果沒有指定地址,則接著上一個(gè)A命令的最后一個(gè)單元開始;若還沒有使用過A命令,則從當(dāng)前CS:IP開始。輸入A命令后,就可以輸入8086指令,Debug將它們匯編成機(jī)器代碼,相繼地存放在指定地址開始的存儲(chǔ)區(qū)中,記住最后要輸入一個(gè)回車結(jié)束A命令。調(diào)試程序DEBUG的使用進(jìn)行匯編的步驟如下:(1)輸入?yún)R編命令A(yù)[地址],按回車。Debug提示地址,等待你輸入新指令;(2)輸入?yún)R編指令,按回車;(3)
6、如上繼續(xù)輸入?yún)R編指令,直到輸入所有指令;(4)不輸入內(nèi)容就按回車,結(jié)束匯編,返回Debug的提示符狀態(tài)。例:-A103↙MOVAX,1234↙MOVBX,5678↙↙調(diào)試程序DEBUG的使用5、反匯編命令UU[地址];從指定地址開始,反匯編32個(gè)字節(jié)(80列顯示模式)U范圍;對指定范圍的主存內(nèi)容進(jìn)行反匯編U命令中如果沒有指定地址,則接著上一個(gè)U命令的最后一個(gè)單元開始;若還沒有使用過u命令,則從當(dāng)前CS:IP開始。例:-U103↙調(diào)試程序DEBUG的使用6、運(yùn)行命令GG[=地址][斷點(diǎn)地址1,斷點(diǎn)地址2…,斷點(diǎn)地址10]G命
7、令等號(hào)后的地址指定程序段運(yùn)行的起始地址,如不指定則從當(dāng)前的CS:IP開始運(yùn)行。斷點(diǎn)地址如果只有偏移地址,則默認(rèn)是代碼段CS;斷點(diǎn)可以沒有,但最多只能有10個(gè)。G命令輸入后,從指定地址處開始運(yùn)行程序,直到遇到斷點(diǎn)或者程序正常結(jié)束。例:-G103↙功能:從當(dāng)前CS:IP執(zhí)行到偏移地址為100H。調(diào)試程序DEBUG的使用7、跟蹤命令T單步命令。T命令逐條指令執(zhí)行程序,遇到子程序(CALL)或中斷調(diào)用(INTn)指令也不例外,也會(huì)進(jìn)入到子程序或中斷服務(wù)程序當(dāng)中執(zhí)行。8、繼續(xù)命令PP命令類似T命令,只是不會(huì)進(jìn)入子程序或中斷服務(wù)程序中
8、。當(dāng)不需要調(diào)試子程序或中斷服務(wù)程序時(shí),要應(yīng)用P命令,而不是T命令。調(diào)試程序DEBUG的使用9、退出命令Q命令使Debug程序退出,返回DOS。