




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、要在計算機上執(zhí)行匯編語言程序,其操作步驟如下:1.編輯源程序使用編輯軟件將匯編源程序輸入到計算機中,建立*.ASM文件。2匯編源程序使用匯編程序?qū)R編源程序匯編成目標(biāo)代碼文件,即生成*. OBJ文件。目前使用較多的匯編程序是宏匯編程序 MASM。C>MASM A1 /3.連接目標(biāo)程序文件生成可執(zhí)行文件生成OBJ文件后,必須用LINK程序連接目標(biāo)代碼程序和庫 函數(shù)代碼生成可執(zhí)行文件,生成的文件的擴展名為EXE。C>LINK A1 /4.程序的執(zhí)行建立了 EXE文件后,就可以在 DOS下直接執(zhí)行程序了。C>A1 /匯編程序調(diào)試工具 debug命令:DEBU調(diào)試命令介紹1.主要調(diào)試
2、命令:(1) 反匯編命令U :將存儲器中的二進制數(shù)據(jù)翻譯成較有意義的助記符形式, 以幫助理解,如圖1.5所示。一般常用以下三種格式:a)-U/:從當(dāng)前IP處開始;對連續(xù)約32字節(jié)內(nèi)容反匯編。如對TEST.EXE; 剛裝入DEBUG時的IP=0000,則在輸入U命令后有如下顯示:-U /13C2: 0000 B402MOV AH , 0213C2: 0002 B241MOV DL, 4113C2: 0004 CD21INT214C13C2: 0006B44CMOV AH,13C2: 0008CD21INT 2113C2: 000A8B4606MOV AX,BP+06J JJ JJ J13C2:
3、00208B07MOVAX,BX蔭命令提示符-DEBUG TEST.EXEG:XWJVL>DEBUG TEST -UB402 13C2:«WM 13C2UU4 CD21 13C2:0B0fc B44C 13C2:0008 CD21 L3C2:0B0fi 8B46U6 13C2:000D 8B5608 13C2:0310 26 13C2=0011 39470A 13C2:0014 ?509 13C2:0016 26 13C2:001? 39570C 13C2:301A 7503 13C2:«W1C E9U9FF 13C2:001F 26 13C2:00Z0 8B07.E
4、WEUUTUTUU : PZ : P 込P U OONONOOSNNSMNHSOMHiMIMMECJECJJEMAH ,02DL.1121RHf4C21口斗.BF+061 DX,BP+081BXMKAX QQ1FtBK*0CDX 001FFP2BflX,BX圖1.5 反匯編命令的執(zhí)行結(jié)果在上例中,13C2: 0000表示CS: IP的內(nèi)容(其中CS的值是動態(tài)值);B402 代表該處存放的二進制數(shù)據(jù),亦即指令 MOV AH , 02H的機器代碼;當(dāng)連續(xù)約 32 字節(jié)的數(shù)據(jù)反匯編完后,重新回至U DEBUG 提示符“-” 下,如果再鍵入 U 命 令,則將繼續(xù)對后面的內(nèi)存區(qū)反匯編。特別應(yīng)該注意的是,
5、由于反匯編命令針對內(nèi)存區(qū)的二進制數(shù)據(jù),而被調(diào)試程序僅占內(nèi)存區(qū)的某一部分, 故反匯編出來的內(nèi)容并非全是被調(diào)試程序的代碼,女口上例中13C2: 000A單元以后的部分,顯然不是 TEST.EXE的內(nèi)容。另外還需注 意,DEBUG默認(rèn)使用十六進制。b) -J 0123/ :從指定的IP=0123處開始,對連續(xù)約 32字節(jié)內(nèi)容反匯編。c) -J 0123 0143/ :從指定的IP=0123處開始反匯編,直至指定的 0143處 結(jié)束。 顯示寄存器命令R:顯示或修改寄存器的內(nèi)容,如圖 1.6所示。一般常 用以下形式:a) - R /:顯示所有寄存器當(dāng)前的內(nèi)容及當(dāng)前將執(zhí)行的指令。如對TEST.EXE,在程
6、序運行之前,鍵入 R命令:BP=0000SI=0000-R / AX=0000BX=0000CX=000ADX=0000SP=0000DI=0000DS=13B2ES=13B2SS=13C2CS=13C2 IP=0000 NVUP EI PLNZ NAPO NC13C2: 0000B402MOVAH - 02阿命魯挨示哥-DEBUG TE5TJXE-! xjAX 0000EK=000QBP=0000£I>0030DI "=00003DS L3B2ES-13B2SS-13C2CS-13C2p-eeaeHU UP ElPL NZNA PO NCI13C2:0000 B40
7、2IMOUAH*02-fl AX AX 0000 :432i-B AXAX 4321-n F NU UP ElFL NZ NAPO HC -ZBR F NU UP ElPL ZR NAPO NC -Ln1 ”圖1.6顯示寄存器命令執(zhí)行結(jié)果在顯示寄存器內(nèi)容時,狀態(tài)標(biāo)志寄存器 F表示成各個分離的標(biāo)志位,其意義 女口下表1.1所示:表1.1 標(biāo)志寄存器的標(biāo)志為含義溢出方向中斷符號零輔助進位奇偶進位0NVUPDiPLNZNA:PONC1OVDN旦NGZRACPECYb) -R AX /: 顯示指定的 AX 寄存器當(dāng)前的內(nèi)容,并等待鍵入新值; 如果 不作修改,可直接回車。如:-R AX/AX 0000:
8、4321/c) -R F/: 顯示標(biāo)志寄存器 F 各個標(biāo)志位的內(nèi)容,并等待鍵入新的標(biāo)志 位;如果不作修改,可直接回車。如:-R F /NV UP El PL NZ NA PO NC -ZR /(3) 運行命令 G: 使程序在 DEBUG 控制下運行,一般有全程、斷點運行兩 種方式。a) -G/:控制程序由當(dāng)前IP處運行,直至程序結(jié)束。如果當(dāng)前 IP為初 始值,其作用則相當(dāng)于直接在 DOS下運行程序,一般用于快諫觀察程序的 運行情況,如圖1.7所示。圖1.7 運行命令執(zhí)行結(jié)果b) -G 0008/:控制程序由當(dāng)前IP處運行,直至指定的斷點IP=0008H處, 程序暫停,顯示各個寄存器的當(dāng)前值及斷
9、點處指令,然后返回DEBUG提示符“-”下。如對TEST.EXE,若想觀察字符串顯示的入口參數(shù)是否設(shè)置好, 則可以斷點運行至0008處:-G 0008/AX=4C41BX=0000CX=000ADX=0041SP=0000BP=0000Sl=0000Dl=0000DS=13B2ES=13B2 SS=13C2 CS=13C2 IP=0008 NV UP El PL ZR NAPO NC13C2: 0008 CD21INT 21斷點一般選取在需要觀察的地方,當(dāng)程序停下來后,可以根據(jù)各方面的情況(如寄存器、緩沖區(qū)、標(biāo)志等)來判斷程序是否運行正確。(4)單步命令T:控制程序運行一條指令后暫停,顯示各個
10、寄存器的當(dāng)前值 及斷點處指令,然后返回DEBUG提示符“-”下,如圖1.8所示。例如對TEST.EXE, 若當(dāng)前IP為初始值,則鍵入 T命令后有如下顯示: -T/AX=0200BX=0000CX=000ADX=0000SP=0000BP=0000Sl=0000Dl=0000DS=13B2ES=13B2 SS=13C2 CS=13C2 IP=0002 NV UP El PL NZ NAPO NC13C2: 0002 B241MOV DL , 41圖1.8單步命令執(zhí)行結(jié)果單步命令一般用于需對程序運行作仔細(xì)分析的地方,如判斷分支轉(zhuǎn)移、觀察 運算結(jié)果等。若能綜合運用斷點及單步指令,則可大大提高DEBU
11、G 調(diào)試的速度及效率。但應(yīng)注意,當(dāng)IP指針位于INT 21H 類指令處時,執(zhí)行 T命令將會 使程序進入該功能調(diào)用子程序中,因此,這種情況下最好不用T命令,而用斷點運行命令跳過該類功能調(diào)用指令。(5) 修改存儲單元命令 E: 般常用以下二種形式:a) E起始地址內(nèi)容表1 /:按內(nèi)容表的內(nèi)容修改從起始地址開始的多個 存儲單元內(nèi)容,即用內(nèi)容表指定的內(nèi)容來代替存儲單元當(dāng)前內(nèi)容,如圖1.10所例如:一E DS: 0100 'ABC' 12 34 表示從DS:0100為起始單元的連續(xù)五個字節(jié)單元內(nèi)容依次被修改為'A、B、C、12H、34H區(qū)命令提示符-DEBUG TE5T走JCEE
12、 DS E DS 3B2: D DS 3B2: 3B2: 3B2: 3B2: 3B2: 3B2: 3B2: 3B2:100110 IS100W610203B40506070DS:0100 2:0100 ;2:U110I2:(112Q26.554i 42558B 078B弘22 3DFF 5E04 8A7D FF 012041 4255 6b nn45764D4B375525E010801E27376CBB40442FB80843 12 3447 0H 75192ED3BA if200F3C88 204699658DB28825F5V4264C-CD39-57 4E -F846-F88B-EC
13、03-FEFP-2A4C-CD39-57210C89890683FF210CB56S6CE8 B5B75S2E73 B763AA9267 6340FF800A 40師 E9 E9C45?5740C4B6E98HW9 IF 5EM05672QISBB9bb FF FFF8 BO 8B117556 FF(J82690Al FF7680ID0826CG& : Bf -F A Au - -uCGBfAuL9UUPFF - - * * -UJ0 在圖1.10 修改存儲單元命令執(zhí)行結(jié)果b) E地址/:逐個修改指定地址單元的當(dāng)前內(nèi)容。如:一E DS: 0110/13B2: 0110 2655其中13
14、B2: 0110單元原來的值是 26H , 55H為輸入的修改值。若只修改一 個單元的內(nèi)容,這時按回車鍵即可;若還想繼續(xù)修改下一個單元內(nèi)容, 此時應(yīng)按 空格鍵,就顯示下一個單元的內(nèi)容, 需修改就鍵入新的內(nèi)容,不修改再按空格跳 過,如此重復(fù)直到修改完畢,按回車鍵返回 DEBUG “-”提示符。如果在修改過 程中,將空格鍵換成按“-”鍵,則表示可以修改前一個單元的內(nèi)容。(6) 顯示內(nèi)存命令 D : 以十六進制及 ASCII兩種方式顯示內(nèi)存區(qū)的二進制數(shù) 據(jù),通常用來觀察數(shù)據(jù)段內(nèi)的緩沖區(qū)內(nèi)容。一般常用以下二種形式:a) -D/:從0000單元開始,連續(xù)顯示128個內(nèi)存單元的內(nèi)容,如果繼續(xù)鍵 入 D 命
15、令,則繼續(xù)顯示后 128 個單元內(nèi)容。例如:-D DS: 0100/13B2: 0100 41 42 43 12 34 21 B4 4C-CD 21 8B 46 06 8B 56 08 ABC. 4 !. L. !. F . . V.13B2: 0110 55 66 47 0A 75 09 26 39 -57 0C 75 03 E9 09 FF 26 UFG.u. & 9W. u &、八13B2: 0170 7D FF 80 72 0B 8A 5D FF-2A FF 38 A7 C4 01 75 1D > . . r . j.*.8 u .在上例中,128個單元分成 8行,每行16個單元,每個單元的 內(nèi)容分別以十 六進制形式和ASCII碼形式顯示。如果該單元的內(nèi)容不是可顯示字符,則在ASCII 區(qū)內(nèi)顯示為“”。b) D 0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年黑龍江省建筑安全員-C證考試題庫
- 出售 海邊 平房合同范本
- 分手補償贈與合同范本
- 廠區(qū)搬家運輸合同范本
- 鳩江地標(biāo)性酒店施工方案
- 廠房通風(fēng)采購合同范本
- 養(yǎng)殖合同范例雞
- 2025重慶市安全員《C證》考試題庫及答案
- 工傷申請授權(quán)委托書范本
- 交評合同范本
- 高速公路日常清掃與養(yǎng)護方案
- 風(fēng)電epc合同模板
- 2024年新人教版一年級數(shù)學(xué)下冊《第2單元第5課時 20以內(nèi)的退位減法解決問題(1)》教學(xué)課件
- 2022年陜西省普通高校職業(yè)教育單獨招生統(tǒng)一考試語文甲(A)試題
- 失業(yè)保險待遇申領(lǐng)表
- 2024-2025學(xué)年初中信息技術(shù)(信息科技)第二冊河北大學(xué)版(第3版)教學(xué)設(shè)計合集
- 期末測試卷(一)(試題)2023-2024學(xué)年二年級上冊數(shù)學(xué)蘇教版
- 攜程在線能力測評真題
- 感知覺與溝通評估三明醫(yī)學(xué)科技職業(yè)
- 人教版(2024)六年級全一冊 第17課 設(shè)計我的種植園
- 承包商入廠安全培訓(xùn)試題附參考答案【完整版】
評論
0/150
提交評論