資源描述:
《匯編語言上機過程》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。
1、匯編語言上機過程一、用匯編語言編寫的源程序,使之運行必須經(jīng)過以下幾個步驟:1.用編輯程序建立一個擴展名為.ASM的匯編語言源程序文件。2.調(diào)匯編程序(MASM),對源程序匯編,生成機器碼目標文件,擴展名為.OBJ。3.連接(LINK)目標文件,生成可執(zhí)行文件,擴展名為.EXE。4.運行可執(zhí)行文件。5.如果程序運行有錯,可調(diào)用DEBUG程序對.EXE文件進行調(diào)試。二、編輯匯編語言源程序可用各種編輯軟件來建立匯編語言源程序,例如記事本。先保存為.TXT文件,然后改為.ASM文件,方法是在windows界面:工具
2、——文件夾選項——查看——將“隱藏已知文件的擴展名”選項去掉。然后將擴展名.TXT直接改為.ASM,匯編程序文件名稱由用戶自定(只能用英文字母、數(shù)字下劃線)。三、編譯匯編語言源裎序用MASM程序匯編源程序,生成浮動目標程序(即擴展名為.OBJ的文件),這里產(chǎn)生的是浮動的目標模塊,是不可執(zhí)行程序。匯編前,在DOS狀態(tài)下用下列命令可以打開源程序,例如打開z1.asm的方法是:>typez1.asm<CR>則屏幕上顯示出z1.asm的源程序。匯編z1.asm文件過程的屏幕操作與顯示如下:>masmz1.asm<C
3、R>屏幕顯示以下各行(一次一行),提示用戶所應鍵入的信息:OBJECTFILENAME[Z1.OBJ]<CR>SOURCELISTING[NUL.LST]:<CR>CROSSREFERENCE[NUL.CRF]:<CR>產(chǎn)生目標文件(.OBJ)是匯編的主要目的,通常用戶可以直接回車,表示采用默認文件名。(.LST)文件為列表文件,提供全部匯編后的信息。若用戶不需要這些信息,可直接回車。(.CRF)文件為交義引用文件,要建立交叉引用文件,則鍵入文件名。MASM將為用戶建立擴展名為(.CRF)的交叉引用文件,這
4、里所得到的交叉引用文件,必須調(diào)用CREF程序處理,以建立一個按字母順序排列的能被顯示或打印的源程序中的符號(包括變量)表。5利用它用戶可以很快查到符號的相對地址及類型,這對調(diào)試較大的程序是很有用的。所以用戶的盤中還應拷貝CREF.EXE文件。若用戶不需要這些信息,可直接回車。到此為止,匯編過程已完成。MASM對源程序進行匯編時,若發(fā)現(xiàn)源程序中有語法錯誤則列出有錯誤的語句,錯誤的代碼和錯誤的類型,最后列出錯誤的總數(shù)。此時就可以分析錯誤,調(diào)用編輯程序修改錯誤,直到匯編無錯誤。一、連接裝配匯編程序LINK.EXE
5、文件用來將(.OBJ)文件連接成可執(zhí)行文件,擴展名為(.EXE)。連接過程如下:在DOS下,鍵入>LINKz1<CR>先顯示版本號,然后依此提問以下幾個問題:RUNFILE[Z1.EXE]:<CR>LISTFILE[NUL.MAP]:<CR>LIBRARIES[.LIB]:<CR>第一個提示詢問要產(chǎn)的可執(zhí)行文件(.EXE)的文件名,一般按回車表示默認括號內(nèi)規(guī)定的文件名。第二個提示詢問是否建立內(nèi)存分配圖文件(.MAP),直接回車表示不要建立。最后詢問是否用庫文件(.LIB),若不用庫文件,直接回車。然后連接程
6、序開始進行連接,若連接過程有錯,則顯示錯誤信息。有錯誤就要修改源文件,重新匯編、連接直至無錯。若用戶程序直接使用系統(tǒng)堆棧,則不要理會“NOSTACKSEGMENT”的警告提示。二、匯編語言程序的運行匯編語言源程序經(jīng)過匯編、連接以后生成的.EXE文件,可在DOS下直接鍵入文件名運行。例如:>z1<CR>。則z1.EXE文件會裝入內(nèi)存并從程序中起始的地址運行。程序如正確無誤,執(zhí)行完后控制將能正常返回DOS操作系統(tǒng)。若運行結果在存儲單元里,或發(fā)現(xiàn)程序運行錯誤,或想跟蹤程序的執(zhí)行,那么就需要用DEBUG程序。三、匯
7、編程序的調(diào)試DEBUG是專為匯編語言設計的一個調(diào)試程序,它通過單步、設置斷點等方式為匯編語言程序的調(diào)試提供了非常有效的調(diào)試手段。在DOS的提示下,鍵入命令:>DEBUGz1.exe<CR>5DOS把DEBUG.COM調(diào)入內(nèi)存后把被調(diào)試的z1程序也調(diào)入內(nèi)存。裝入內(nèi)存的地址從偏移0開始,裝入后顯示DEBUG的提示符“—”。在提示符“—”下可執(zhí)行DEBUG的各種命令。一、常用的DEBUG命令介紹如下。1.顯示內(nèi)存單元內(nèi)容的命令D格式1:D<CR>表示從代碼段cs:0000H開始的80H個單元的內(nèi)存。格式2:Dds
8、:[地址]<CR>表示從數(shù)據(jù)段指定地址開始的80H個單元的內(nèi)存。格式3:D[始地址末地址]<CR>此命令顯示指定范圍的內(nèi)存。例如下面是D命令顯示內(nèi)容的其中一行,顯示說明:0B2E:0200E8DAE146E8ACDF74-0DE84500ACE84100...F...t..E...A.左邊“0B2E:0200”是頭一個存儲單元的邏輯地址,對應內(nèi)容就是“E8”,后面依次是后續(xù)存儲單元的內(nèi)容(十六進制形式),共16個