




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
匯編語言源程序的編輯與調試過程1怎樣在TD環境下載入被調試稈序?在TD環境下如何編輯匯編指令?在TD環境下如何杳看/修改數據段的數據?4?在TD環境下如何修改寄存器內容?在TD環境下修改某個標志位內容,怎樣操作?指定稈序的起始執行地址怎樣操作?在TD環境下怎樣單步跟蹤稈序的執行?8?在TD環境中,若只執行稈序的某一部分指令,怎樣處理?被調試稈序的顯示輸出看不見怎么辦?10?用MASM編譯時產牛警告錯誤會影響結果嗎?在WIN2000和WINDOWSXP環境中可以使用命令行方式的EDIT編輯器和調試稈序DEBUG嗎?為什么點擊該稈序時會出現:IncorrectDOSversion的錯誤信息?12?若使用DEBUG調試運行稈序,如何裝入稈序?在匯編語言源稈序中怎樣加入中文注釋?用記事本工具編輯源稈序,主名為123_ABCDEF.ASM,為什么編譯稈序MASM報告找不到該文件?15?用記事本工具編輯源稈序,取名為123.ASM,為什么編譯稈序MASM報告找不到該文件?16?已在稈序中設有如下定義:STACKSEGMENT/DR200DUP(0)/STACKENDS/為什么LINK仍然警告:nostacksegment?使用DERUG調試稈序,如何設置斷點?用TD調試一個顯示字符串的稈序,當單步運行至:/MOVAL.09/INT21H/語句后,稈序似乎變得冗長難耐,是什么原因?怎樣在TD環境下載入被調試程序?答:方法1:轉到TD.EXE所在目錄,在DOS提示符下鍵入以下命令:C:\ASM>TD/進入TD后,按Alt-F鍵打開File菜單,選擇Open,在文件對話框中輸入要調試的程序名,按回車。方法2:轉到TD.EXE所在目錄,在DOS提示符下鍵入以下命令(假定要調試的程序名為HELLO.EXE):C:\ASM>TDHELLO.EXE/方法3在Windows操作系統中,打開TD.EXE所在目錄,把要調試的程序圖標拖放到TD的圖標上。[返回]在TD環境下如何輸入編輯匯編指令?答(1)用Tab鍵選擇代碼區為當前區域;(2)用方向鍵把光標移到期望的地址處,如果是輸入一個新的程序段,建議把光標移到CS:0100H處;(3)打開指令編輯窗口,有兩種方法:一是在光標處直接鍵入匯編指令,在輸入匯編指令的同時屏幕上就會自動彈出指令的臨時編輯窗口。二是用Alt-F10鍵激活代碼區局部菜單,選擇其中的匯編命令,屏幕上也會自動彈出指令的臨時編輯窗口。(4)在臨時編輯窗口中輸入/編輯指令,每輸入完一條指令,按回車,輸入的指令即可出現在光標處(替換掉原來的指令),同時光標自動下移一行,以便輸入下一條指令。[返回]在TD環境下如何杳看/修改數據段的數據?答:(1)用Tab鍵選擇數據區為當前區域;(2)使用局部菜單中的“Goto”命令并結合使用方向鍵把光標移到期望的地址單元處(注意數據區的光標是一個下劃線),數據區就從該地址處顯示內存單元的內容。3)若要修改該地址處的內容,則需打開數據編輯窗口。有兩種方法:一是在光標處直接鍵輸入數據,在輸入數據的同時屏幕上就會自動彈出數據編輯窗口。二是用Alt-F10鍵激活數據區局部菜單,選擇其中的“Change”命令,屏幕上也會彈出數據編輯窗口。(4)在數據編輯窗口中輸入所需的數據,輸入完后,按回車,輸入的數據就會替代光標處的原始數據。「返冋]4.在TD環境下如何修改寄存器內容?答:(1)用Tab鍵選擇寄存器區為當前區域;用方向鍵把光標移到要修改的寄存器上;打開編輯輸入窗口。有兩種方法:一是在光標處直接鍵入所需的值,在鍵入的同時屏幕上就會自動彈出編輯輸入窗口。二是用Alt-F10鍵激活寄存器區局部菜單,選擇其中的“Change”命令,屏幕上也會彈出編輯輸入窗口。在編輯輸入框中鍵入所需的值,然后冋車,這個新的值就會取代原來該寄存器的內容。「返冋]5.在TD環境下修改某個標志位內容,怎樣操作?答:(1)用Tab鍵選擇標志區為當前區域;用方向鍵把光標移到要修改的標志位上;按冋車鍵或空格鍵即可使標志位的值在0、1之間變化。「返冋]6.指定程序的起始執行地址怎樣操作?答:方法一:用Tab鍵選擇代碼區為當前區域;用Alt-F10鍵激活代碼區局部菜單,選擇局部菜單中的“NewCS:IP”命令。方法二:用Tab鍵選擇寄存器區為當前區域;用方向鍵把光標移到CS寄存器上,輸入程序起始地址的段地址。用方向鍵把光標移到IP寄存器上,輸入程序起始地址的偏移量。「返冋]7. 在TD環境下怎樣單步跟蹤程序的執行?答:(1)用上述第6條中的方法首先指定程序的起始執行地址;(2)按F7或F8鍵,每次將只執行一條指令。注:若當前執行的指令是CALL指令,則F7將跟蹤進入被調用的子程序,而F8則把CALL指令及其調用的子程序當作一條完整的指令,要執行完子程序才停在CALL指令的下一條指令上。「返冋]在TD環境中,若只執行程序的某一部分指令,怎樣處理?答:方法一:用設置斷點的方法。用上述第6條中的方法首先指定程序的起始執行地址;用方向鍵把光標移到要執行的程序段的最后一條指令的下一條指令的起始處(注意,不能移到最后一條指令上,否則最后一條指令將不會被執行),按F2設置斷點。也可按Alt-F2鍵,然后在彈出的輸入窗口中輸入斷點地址。按F9鍵執行,程序將會停在所設置的斷點處。方法二:用“運行程序到光標處”的方法。用上述第6條中的方法首先指定程序的起始執行地址;用方向鍵把光標移到要執行的程序段的最后一條指令的下一條指令上(注意,同方法一)。按F4鍵執行程序,程序將會執行到光標處停下。方法三:用“執行到指定位置”的方法。用上述第6條中的方法首先指定程序的起始執行地址;按Alt-F9,在彈出的輸入窗口中輸入要停止的地址(即要在哪條指令起始處暫停,就輸入哪條指令的地址),按回車,程序將會執行到指定位置處暫停。[返冋]9.被調試程序的顯示輸出看不見怎么辦?答:在TD環境下按Alt-F5鍵。[返冋]用MASM編譯時產生警告錯誤會影響結果嗎?答:會。警告錯誤是指仍然生成目標代碼,并非是指目標代碼是正確的。[返冋]在WIN2000和WINDOWSXP環境中可以使用命令行方式的EDIT編輯器和調試程序DEBUG嗎?為什么點擊該程序時會出現:IncorrectDOSversion的錯誤信息?答:EDIT和DEBUG屬于系統命令程序文件,運行前要核對版本號,WIN98/2000/XP有各自配套的系統命令文件,使用上述兩個軟件時必須注意版本匹配。WIN98的命令文件放置在WINDOWS(或WIN98)文件夾下的COMMAND子文件夾中;WIN2000/XP的系統命令文件路徑一般為:WINDOWS\SYSTEM32或WINNT\SYSTEM32。「返冋]若使用DEBUG調試運行程序,如何裝入程序?答:在命令行界面輸入:DEBUGABX.EXE或雙擊DEBUG圖標,之后在DEBUG窗口中輸入:nABC.EXE/L100兩條命令;運行程序即被載入。「返冋]在匯編語言源程序中怎樣加入中文注釋?答:用記事本或C++編輯器編輯源程序。但須注意中英文切換,源程序中必須使用英文標點符號。[返冋]用記事本工具編輯源程序,主名為123_ABCDEF.ASM,為什么編譯程序MASM報告找不到該文件?答:MASM遵循MS-DOS的命名原則,即文件主名最長為8個字符,上述文件主名超過了規定。[返冋]用記事本工具編輯源程序,取名為123.ASM,為什么編譯程序MASM報告找不到該文件?答:出現此種情況,往往123.ASM并非文件名的全部,其最后的擴展名仍是.TXT,解決的辦法是:點擊“我的電腦”或“資源管理器”在“查看”或“工具”菜單中選擇“文件夾選項”,選擇“查看”選項卡,將其中的“隱藏已知文件類型的擴展名”選項取消,可顯示全部文件名,再為文件重新命名。[返冋]已在程序中設有如下定義:STACKSEGMENT/DB200DUP(0)/STACKENDS/為什么LINK仍然警告:nostacksegment?答:將段定義修改為:STACKSEGMENTSTACK;后面的STACK項是組合類型,即不再出現警告信息。[返冋]使用DEBUG調試程序,如何設置斷點?答:例如,在DEBUG命令窗口中輸入:G=100,0150;表示從代碼段偏移地址100H執行到150H處中斷,屆時可通過各寄存器及存儲器察看程序的中間結果。[返冋]用TD調試一個顯示字符串的程序,當單步運行至:/MOVAL,09/INT21H/語句后,程序似乎變得冗長難耐,是什么原因?答:在INT21H處單步運行,即進入了DOS系統調用中斷程序服務程序,其中包含了從0~62H個功能子程序,用參數AH區分。9號功能只是其中一個分支,內中還要有輸入輸出底層處理。運行至此,應該將TD窗口的光標置于INT下一條語句前,按F4鍵,即以光標所在處為斷點,就可自動執行完該調用程序。[返冋]實驗一熟悉PC機的使用和調試匯編程序的方法一.實驗目的:掌握匯編程序由編輯、編譯、鏈接到調試的全過程。
2.通過匯編調試工具加深對機器指令執行過程的了解。實驗要求:了解PC機的系統類型和基本配置,熟悉PC機DOS下的基本操作命令。掌握使用PE2(或使用SIDEKICH(SK),edit)等編輯器對匯編語言源程序(擴展名.ASM)的編輯操作。學會用宏匯編程序MASM(或TASM)對匯編語言源程序進行匯編和使用連接程序LINK(或TLINK)對.OBJ文件鏈接生成.EXE文件。學會用匯編調試工具軟件TD(或DEBUG)對.EXE文件進行調試及執行程序的方法。利用TD(或DEBUG)加深對機器指令的了解。了解匯編幫助軟件NG的使用方法。實驗儀器:PC機實驗步驟:1.開機:開機后有兩種狀態,即進入DOS操作系統或WINDOWS操作系統,下面分別介紹進入后實驗步驟:DOS操作系統:打開機器上的開關,這時屏幕上顯示〃〉〃提示符即進入DOS工作狀態。要求:每個同學使用自己的學號或其它有特征的字符串建立自己的子目錄,建立方法見〈〈DOS的基本操作命令〉〉。開機后,若出現系統崩潰(稱〃死機〃)現象,一般使用熱啟動(CTRL-ALT-DEL鍵)或復位鍵重新啟動。WINDOWS操作系統開機后進入WINDOWS環境,選擇MS-DOS方式的圖標,連擊鼠標的左鍵,會進入DOS環境,一般地進入的工作目錄是D:\USER,(如果工作目錄不是D:\USER,可以通過對MS-DOS方式的屬性修改完成,具體方法是,在WINDOWS環境下,光標移至MS-DOS方式圖標,擊右鍵,會彈出一菜單,選擇屬性欄,下圖所示:MS-DOS方式屬性 常規聞丨字體丨肉存I常規聞丨字體丨肉存I需罰IMs-bos肓式類型:指向MS-DOS程序飾鍥捷肓式位置: C:\WINDOWS\Desktop大小:967字節(967字節〕,占用£096字節MS-DOS名稱:MS-DOS^l.FIF創建時間:1999年U月13日.21:56>28修改時間:20UU年1月15日11:.27:20訪間時間:20.00年4月12日屬性:廠口珪魚”r隱藏①)◎存檔?確定 取消然后選擇程序,會顯示如下窗口:注意:將工作目錄修改為D:\USERNG(匯編幫助軟件)和SK(編輯軟件)的啟動。NG的啟動:在DOS提示符下鍵入NG,將NG駐留到內存,用戶可以隨時調出(具體使用方法見〈〈NG的使用〉〉。SK的啟動(若使用SK編輯器):在DOS提示符下鍵入SK,將SK駐留到內存,用戶可隨時調出(具體使用方法見〈〈SK的使用〉〉),該軟件適合較短程序的編輯和調試。編輯、編譯、鏈接和調試匯編語言程序過程。A建立匯編語言程序使用PE2建立匯編語言程序在DOS提示符下使用PE2編輯器輸入用戶匯編語言程序(擴展名為.ASM)。〉PE2文件名.ASM(回車)使用SK建立匯編語言程序使用SK2熱鍵啟動SK編輯命令見《PE2的使用方法》和《SK的使用方法》。使用EDIT建立匯編程序>edit文件名.asm(回車)B匯編程序生成目標程序經過編輯命令建立的匯編語言源程序使用匯編程序編譯成目標程序一使用MASM宏匯編進行編譯〉MASM文件名在匯編程序調入后,先顯示版本號,然后出現第一行提示,Objectfilename[源文件名.OBJ]:;默認該文件名回車。SourceListing[NUL.LST]:源文件名或其他;輸入文件名建立可打印文件。CrossReference[NUL.CRF]:源文件名或其他;回車。WarningErrorssevereErrors如果匯編過程中發現源程序有錯誤,由以上兩種錯誤類型分別列出。此時可分析錯誤原因,返回編輯程序修改源程序。匯編程序出錯信息見《匯編程序出錯信息表》,注意出錯的類型及出錯的源文件對應行。若不需要產生.LST和.CRF文件,可在>下加";">MASM文件名;二使用TASM進行編譯例如:編譯A.ASM文件。>TASMA<Enter>TurboAssemblerVersion2.5Copyright(c)1988,1991BorlandInternationalAssemblingfile:a.ASMErrormessages:NoneWarningmessages:NonePasses:1Remainingmemory:162k可按要求填加必要的選擇。例如若需要在TD中跟蹤源文件調試,可使用/zi選擇(應注意選擇項英文的大小寫):>TASM/ziA<Enter>若要生成列表文件,可用如下操作:>TASMA,,A.LST<Enter>TASM的選擇項如下(可用/H顯示):Syntax:TASM[options]source[,object][,listing][,xref]/a,/sAlphabeticorSource-codesegmentordering/cGeneratecross-referenceinlisting/dSYM[=VAL]DefinesymbolSYM=0,or=valueVAL/e,/rEmulatedorRealfloating-pointinstructions/h,/?Displaythishelpscreen/iPATHSearchPATHforincludefiles/jCMDJaminanassemblerdirectiveCMD(eg./jIDEAL)/kh#Hashtablecapacity#symbols/l,/laGeneratelisting:l=normallisting,la=expandedlisting/ml,/mx,/muCasesensitivityonsymbols:ml=all,mx=globals,mu=none/mv#Setmaximumvalidlengthforsymbols/m#Allow#multiplepassestoresolveforwardreferences/nSuppresssymboltablesinlisting/o,/opGenerateoverlayobjectcode,PharLap-style32-bitfixups/pCheckforcodesegmentoverridesinprotectedmode/qSuppressOBJrecordsnotneededforlinking/tSuppressmessagesifsuccessfulassembly/w0,/w1,/w2Setwarninglevel:w0=none,w1=w2=warningson/w-xxx,/w+xxxDisable(-)orenable(+)warningxxx/xIncludefalseconditionalsinlisting/zDisplaysourcelinewitherrormessage/zi,/zdDebuginfo:zi=full,zd=linenumbersonly鏈接程序生成可執行文件由匯編后建立的目標碼文件,必須經過鏈接后才能生成可執行的命令文件一使用LINK完成連接>LINK文件名;回車后調入鏈接程序,此時屏幕顯示。RunFile[文件名.EXE]:;回車默認該文件名。ListFile[NUL.MAP]:;Libraries[.LIB]:;回車。Warning:;提示錯誤。如果有錯誤,返回編輯程序重新修改源程序。若要生成.COM文件,則用EXE2BIN實現:>EXE2BINA.EXEA.COM二使用TLINK完成連接例如:鏈接A文件。>TLINKA<Enter>TurboLinkVersion4.0Copyright(c)1991BorlandInternational可按要求填加必要的選擇。例如若需要在Debug中跟蹤源文件調試,應使用/V選擇(應注意選擇項英文的大小寫):>TLINK/vA<Enter>若要生成COM文件,可使用/Tdc選擇:>TLINK/TdcA<Enter>TLINK的選擇項如下(可用/H顯示):Syntax:TLINKobjfiles,exefile,mapfile,libfiles,deffile@xxxxindicatesuseresponsefilexxxxOptions:/m=mapfilewithpublics/x=nomapfileatall/i=initializeallsegments/l=includesourcelinenumbers/L=specifylibrarysearchpaths/s=detailedmapofsegments/n=nodefaultlibraries/d=warnifduplicatesymbolsinlibraries/c=lowercasesignificantinsymbols/3=enable32-bitprocessing/v=includefullsymbolicdebuginformation/e=ignoreExtendedDictionary/t=createCOMfile(sameas/Tc)/o=overlayswitch/P[=NNNNN]=packcodesegments/A=NNNN=setNewExesegmentalignmentfactor/ye=expandedmemoryswapping/yx=extendedmemoryswapping/C=casesensitiveexportsandimports/Txx=specifyoutputfiletype/Tdx=DOSimage(default)/Twx=Windowsimage(thirdlettercanbec=COM,e=EXE,d=DLL)匯編語言動態調試工具調試匯編程序一使用DEBUG進行調試DEBUG是專為匯編語言設計的一種調試工具,可用來檢查,修改存儲單元和寄存器的內容裝入,存儲及啟動運行程序,也可用DEBUG匯編簡單的匯編語言程序。>DEBUG文件名.EXE-;"-"是DEBUG的提示符DEBUG下的基本命令及格式(具體見《DEBUG使用說明》)命令任務格式A(Assmble)匯編語句A[address]C(Compare)比較內存CrangeaddressD(Dump)顯示內存D[address]E(Enter)改變內存EaddresslistF(Fill)填充內存FrangelistG(GO)執行程序G[address]H(Hexarthmetic)十六進制運算HValueValueI(Input)輸入IportaddressL(Load)裝入內存L[address]M(Move)傳送內存MrangerangeN(Name)定義文件N[d:][path]filename[.com]O(output)輸出字節OportaddressbyteQ(Quit)退出DEBUG狀態QR((Register)顯示寄存器R[registername]S(Search)檢索字符SranglistT(Trace)單步/多步跟蹤TorT[address][value]U(Unassmble)反匯編U[address]orU[range]W(Write)文件或數據寫盤W[address[drivesectorsector]]二使用TD(TurboDebugger)調試匯編程序TD設計具有Turbo系列語言的特點,其多重覆蓋窗口、下拉菜單和彈出菜單的結合給用戶提供了一個快速友好的交互環境,幫助系統使用十分方便。以下給出常用操作命令,具體命令見《TurboDebugger命令一覽表》。A啟動TurboDebuggerSyntax:>TDobjfiles例如:調試已編譯鏈接后的A文件:>TDA<Enter>進入TD后屏幕顯示下拉菜單欄:在屏幕的上端代碼區域:按地址,機器碼及助記符組成寄存器域:CPU中寄存器內容標志域:CPU中所有標志狀態堆棧區域:當前堆棧內容數據區域:以地址,ASCII碼值及ASCII碼顯示數據常用命令欄:在屏幕下端屏幕中間區域可通過TAB鍵移動BF10或Alt-進入菜單提示欄,回車選擇對應菜單例如:Alt-F進入屏幕上端的File欄,回車后顯示下拉菜單,移動光標可選擇相應功能。CAlt-F10訪問局部菜單通過該命令,用戶可容易的進入當前欄的局部菜單。D窗口命令使用下拉菜單的Window,可進入多窗口顯示,用戶可調試窗口的位置和大小,以最佳的方式觀察程序執行過程同時可切換不同顯示窗口。E常用執行命令在常用命令欄有提示,以下給出更有趣的命令:連續慢速執行在RUN菜單下選擇Animate反向跟蹤執行Alt-F4斷點方式執行用F2設斷點,使用RUN命令后停在斷點處五.實驗內容:1.輸入以下程序,完成由編輯、編譯、鏈接到調試的全過程。在調試過程中應使用單步、斷點等方法調試,注意觀察寄存器、標志位和有關存儲器內容的變化A將S1(BYTE),S2(WORD)和S3(DWORD)送至D1,D2,D3.注意:以下程序有誤,在調試過程中加以修改使之正確DATASEGMENTSS1 DB1234HSS2 DWEA32HSS3 DD12345678HDD1DB0DD2DW?DD3DW?DATEENDSCODESEGMEMTASUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,SS1MOVDD1,ALLEASI,SS2LEADI,DD2MOVAX,[SI]MOV[DI],AXMOVSI,OFFSETS3MOVDI,OFFSETD3MOVAX,[SI]MOVD3,AXINCSIINCDIMOVAX,[SI]MOV[DI],AXMOVAX,4C00H;返回系統INT21HCODEENDSENDSSTRATB完成兩個長整數相加的匯編程序要求:調
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 昭通衛生職業學院《國民經濟核算》2023-2024學年第二學期期末試卷
- 農行個人養老金練習卷附答案
- 化工自動化控制儀表作業題庫練習試卷附答案
- 人教版高中英語必修第三冊UNIT 3 DIVERSE CULTURES Section Ⅳ課件
- 《神州謠》課件 部編版小學語文二年級下冊
- 避峰填谷用電方案
- 2025年即時配送行業配送路徑優化與成本控制:物流行業物流成本控制策略分析報告
- 威海偉建實業有限公司碳纖維制品項目報告表
- 中考語文主謂短語專題練習(含答案)
- 2025年標準員之專業管理實務題庫附答案(典型題)
- 第45屆世界技能大賽烹飪(西餐)項目全國選拔賽技術工作文件
- 科幻小說閱讀(原卷版)-2023年浙江中考語文復習專練
- 化妝品代加工保密協議
- 2024年高等教育法學類自考-00229證據法學考試近5年真題附答案
- 新媒體環境下的品牌策劃學習通超星期末考試答案章節答案2024年
- 股東之間股權轉讓合同協議書(2篇)
- 人體器官講解課件
- 惠州市惠城區2024-2025學年數學四年級第一學期期末調研模擬試題含解析
- DB3301-T 0256-2024 城市生態河道建設管理規范
- 2024中考滿分作文9篇
- 04S519小型排水構筑物(含隔油池)圖集
評論
0/150
提交評論