北京理工大學(xué)匯編實驗一實驗報告_第1頁
北京理工大學(xué)匯編實驗一實驗報告_第2頁
北京理工大學(xué)匯編實驗一實驗報告_第3頁
北京理工大學(xué)匯編實驗一實驗報告_第4頁
北京理工大學(xué)匯編實驗一實驗報告_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本科實驗報告實驗名稱:DOS環(huán)境下的匯編語言編程環(huán)境使用課程名稱:課程設(shè)計(CPU與匯編)(實驗)實驗時間:2014.10.10任課教師:馬永鋒實驗地點:10-102實驗教師:蘇京霞實驗類型:□原理驗證√綜合設(shè)計□自主創(chuàng)新學(xué)生姓名:朱賀1120121427/05411202組號:學(xué)院:信息與電子學(xué)院同組搭檔:無專業(yè):電子科學(xué)與技術(shù)成績:實驗一DOS環(huán)境下的匯編語言編程環(huán)境使用(基礎(chǔ)與驗證型)一、實驗要求和目的掌握匯編語言程序設(shè)計的基本流程和學(xué)會上機開發(fā)簡單程序;熟練掌握宏匯編程序MASM的使用;熟練掌握連接程序LINK的使用;熟練掌握DEBUG的使用;二、軟硬件環(huán)境硬件環(huán)境:計算機系統(tǒng)windows;軟件環(huán)境:裝有MASM、DEBUG、LINK、等應(yīng)用程序。三、實驗涉及的主要知識1、匯編語言源程序的匯編過程手工編寫的源程序匯編語言源文件).ASM(MASMEDIT機器語言目標(biāo)文件).OBJ(機器語言執(zhí)行文件.EXE(LINK編輯程序編輯匯編程序匯編連接程序連接匯編語言源程序的匯編過程是是利用匯編程序(MASM)對已編輯好的源程序文件(.ASM)進行匯編,將源程序文件中以ASCII碼表示的助記符指令逐條翻譯成機器碼指令,并完成源程序中的偽指令所指出的各種操作,后可以建立3個文件:擴展名為.OBJ的目標(biāo)文件、擴展名為.LST的列表文件和擴展名為.CRF的交叉索引文件。后兩者可有可無。實驗開發(fā)過程中選用MASM。目標(biāo)程序的連接過程匯編后產(chǎn)生的目標(biāo)程序(OBJ文件)并不是可執(zhí)行程序文件(EXE文件),還不能直接運行,它必須通過連接程序(LINK)連接成一個可執(zhí)行程序后才能運行。連接程序進行連接時,其輸入有兩個部分:一是目標(biāo)文件(.OBJ),目標(biāo)文件可以是一個也可以是多個,可以是匯編語言經(jīng)匯編后產(chǎn)生的目標(biāo)文件,也可以是高級語言(例如C語言)經(jīng)編譯后產(chǎn)生的目標(biāo)文件;另一是庫文件(.LIB),庫文件是系統(tǒng)中已經(jīng)建立的,主要是為高級語言提供的。連接后輸出兩個文件,一是擴展名為.EXE的可執(zhí)行文件,另一個是擴展名為.MAP的內(nèi)存分配文件,它是連接程序的列表文件,又稱為連接映像(LinkMap),它給出每個段在存儲器中的分配情況,該文件可有可無。連接程序給出的“無堆棧段的警告性錯誤”并不影響程序的運行。所以,到此為止,連接過程已經(jīng)結(jié)束,可以在操作系統(tǒng)下執(zhí)行該.EXE程序了。Debug調(diào)試過程調(diào)試程序Debug就是用來調(diào)試匯編語言程序的一種工具。Debug的主要功能有顯示和修改寄存器及內(nèi)存單元的內(nèi)容;按指定地址啟動并運行程序;設(shè)置斷點使程序分段運行,以便檢查程序運行過程中的中間結(jié)果或確定程序出錯的位置;反匯編被調(diào)試程序,它將一個可執(zhí)行文件中的指令機器碼反匯編成助記符指令并同時給出指令所在的內(nèi)存地址;單條追蹤或多條追蹤被調(diào)試程序,它可以逐條指令執(zhí)行或幾條指令執(zhí)行被調(diào)試程序,每執(zhí)行一條(或幾條)指令后,Debug程序?qū)⒅袛喑绦虻倪\行并提供有關(guān)結(jié)果信息;匯編一段程序,在Debug的匯編命令下可以直接輸入助記符指令,并將其匯編成可運行程序段。此外,Debug還可以將磁盤指定區(qū)的內(nèi)容或一個文件裝入到內(nèi)存或?qū)?nèi)存的信息寫到磁盤上等等。啟動Debug程序:在DOS狀態(tài)下可以用下面的命令啟動Debug程序:DEBUG[路徑文件名.擴展名]Debug后面的文件名及路徑是指被調(diào)試程序的文件名及路徑,Debug后面的文件必須是程序的可執(zhí)行文件,其擴展名可以是.EXE或.COM。在此命令后,DOS將調(diào)試程序Debug調(diào)入內(nèi)存,Debug接著將被調(diào)程序送入內(nèi)存。比如:DEBUGtest01.EXE四、實驗內(nèi)容與步驟1、匯編、鏈接并調(diào)試下面給出的簡單程序,找出程序中的錯誤。(一)錄入并建立匯編語言源程序文件(ASM文件) 在masm軟件中,輸入實驗講義所給程序如圖:保存,運行知有如下錯誤:在22.25.26行分別找到對應(yīng)錯誤修改如下:ADDITION改為ADDITION:語法錯誤COM改為CMP,比較BX的內(nèi)容和10的大小JAE改為JBE,將大于等于則轉(zhuǎn)移改為小于等于則轉(zhuǎn)移修改后的程序如下:運行正常(二)用匯編程序MASM將ASM文件匯編成目標(biāo)程序文件(OBJ文件)在masm軟件中點擊運行—>編譯成目標(biāo)文件(OBJ),即可在默認(rèn)保存目錄下生成同名OBJ文件(三)用連接程序LINK生成可執(zhí)行程序文件(EXE文件)在masm軟件中點擊運行—>生成可執(zhí)行文件(exe),即可在默認(rèn)保存目錄下生成同名exe文件(四)程序的調(diào)試調(diào)試過程:①.生成EXE文件后,在masm軟件工具欄里點擊“調(diào)試”按鈕,進入debug程序②.觀察寄存器初始狀態(tài)以單步工作方式開始運行程序首先用T命令順序執(zhí)行用戶程序的前l(fā)兩條指令,將段寄存器DS預(yù)置為用戶的數(shù)據(jù)段。觀察用戶程序數(shù)據(jù)段初始內(nèi)容-Dds:0<Enter>-2、完成下列程序設(shè)計:分類統(tǒng)計字?jǐn)?shù)組data中正數(shù)、負數(shù)和零的個數(shù),并分別存入內(nèi)存字變量Positive、Negative和Zero中,數(shù)組元素個數(shù)保存在其第一個字中。使用Debug查看Positive、Negative和zero三個變量的數(shù)據(jù)。 程序流程圖如下:開始=0>0Check開始=0>0Check<0<0Positive++;Positive++;Negative++Zero++;xxunhuanNoNoYesYes結(jié)束結(jié)束Debug調(diào)試內(nèi)存初始狀態(tài):運行結(jié)果觀察內(nèi)存狀態(tài),Positivezeronegat

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論