版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
實(shí)驗(yàn)一匯編基本操作第一頁,共三十九頁,2022年,8月28日一、實(shí)驗(yàn)?zāi)康氖煜ぴ赑C機(jī)上建立、匯編、鏈接、調(diào)試、和運(yùn)行匯編語言程序的全過程;設(shè)計一個完整的順序結(jié)構(gòu)匯編語言程序,學(xué)習(xí)數(shù)據(jù)傳送和算術(shù)運(yùn)算指令的用法。第二頁,共三十九頁,2022年,8月28日源程序(文本文件)*.ASM目標(biāo)文件(二進(jìn)制文件)*.OBJ可執(zhí)行文件(二進(jìn)制文件)*.EXE庫文件(各種函數(shù))編譯連接masm.exelink第三頁,共三十九頁,2022年,8月28日二、實(shí)驗(yàn)內(nèi)容示例題:在屏幕上顯示信息:“5A”DATASEGMENT;定義數(shù)據(jù)段x db‘5’
;定義字節(jié)型變量x,x值存放于內(nèi)存DATA段字節(jié)偏移量0處y db‘A’
;定義字節(jié)型變量y,y值存放于內(nèi)存DATA段字節(jié)偏移量1處DATAENDS
CODESEGMENT;定義代碼段(偽指令,編譯器使用)ASSUMECS:CODE,DS:DATA(偽指令,編譯器使用)
START:MOVAX,DATA;數(shù)據(jù)段在內(nèi)在重定位,以便程序能夠正確引用的在數(shù)據(jù)段中MOVDS,AX
第四頁,共三十九頁,2022年,8月28日MOVDL,x;
x值即48D(或31H)-“5”的ASCII碼存入寄器DLMOVAH,2;INT21H ;調(diào)用2號DOS中斷,用于顯示DL中存放的字符
MOVBX,01MOVDL,[BX]
;通過BX寄存器間接址將y值存入DL(與第3行有相同的作用)MOVAH,2INT21H
;此段語句功能同上一段
MOVAH,4CHINT21H
;4C號DOS中斷,功能是結(jié)束程序,將系統(tǒng)控制權(quán)返給操作系統(tǒng)
CODEENDS;以下兩句為偽指令,不占用內(nèi)存,編譯器使用ENDSTART第五頁,共三十九頁,2022年,8月28日實(shí)驗(yàn)步驟1、從“開始”->“運(yùn)行”->輸入“CMD”命令,進(jìn)入仿真DOS狀態(tài);2、鍵入D:↙,進(jìn)入D盤(↙表示回車鍵);3、輸入CDMASM6↙,進(jìn)入MASM6目錄(即匯編程序所在目錄);4、輸入EDIT↙(即DOS下的文本編輯程序)編輯宏匯編語言源程序,或者用TC編輯環(huán)境,或者用Windows的文本編輯程序均可。選用你熟悉的文本編輯程序,按要求逐條輸入給出的源程序,并對輸入完畢的源程序存盤,其文件名由自己定,但文件的擴(kuò)展名必須是.ASM(如果用Windows編輯程序,文件格式一定要選純文本文件),文件保存位置為D:\MASM6。例如把示例題源程序文件取名為hello.asm。第六頁,共三十九頁,2022年,8月28日5、對源程序進(jìn)行編譯以生成.OBJ目標(biāo)文件(框內(nèi)為鍵盤輸入的內(nèi)容,↙表示回車):D:\MASM6\>MASMhello.asm↙Microsoft(R)MacroAssemblerVersion5.0Copyright(C)MicrosoftCorp1981-1985,1987,Allrightsreserved.
工
Sourcefilename[hello.ASM]:↙ 注:源文件名,上邊已輸入在此直接回車即可
Objectfilename[hello.OBJ]:↙ 注:目標(biāo)文件名,默認(rèn)與源文件同名
SourceListing[NUL.LST]:↙ 注:列表文件,直接回車表示不生成該文件
Cross-reference[nul.CRF]:↙ 注:交叉索引文件直接回車表示不生成該文件
50636+408356Bytessymbolspacefree0WarningErrors 注:編譯過程沒有警告性錯誤
0SevereErrors 注:沒有嚴(yán)重錯誤,編譯成功,如不為0剛需打開源程序按此處給出的錯誤提示修改錯誤
D:\>注:返回DOS環(huán)境第七頁,共三十九頁,2022年,8月28日
不同版本時,以上顯示內(nèi)容可能不同,但基本原理是一致的。MASM完成對源程序的編譯,若編譯過程中發(fā)現(xiàn)語法錯誤,則列出錯誤的語句代碼及錯誤類型,最后列出警告錯誤和語法錯誤的總數(shù)。此時,就可以根據(jù)錯誤的性質(zhì)分析錯誤,并使用編輯程序修改源程序,再重新匯編源程序,直至匯編后無錯誤發(fā)生為止。第八頁,共三十九頁,2022年,8月28日6、鏈接目標(biāo)文件,對上步生成的目標(biāo)文件進(jìn)行鏈接生成擴(kuò)展名為.exe的可執(zhí)行文件
D:\MASM6\>LINK↙Microsoft(R)8086Object,linkerVersion3.05
Copyright(C)MicrosoftCorp1983,1984,1985,Allrightsreserved.ObjectModules[.OBJ]:hello↙ 注:目標(biāo)文件名,擴(kuò)展名不用輸入
RunFile[HELLO.EXE]:↙ 注:可執(zhí)行文件名,默認(rèn)與目標(biāo)文件同名
ListFile[NUL.MAP]:↙ 注:不輸出MAP文件
Libraries[.LIB]:↙ 注:不鏈接庫文件若連接過程有錯,則顯示錯誤信息,此時需要重新調(diào)用編輯程序修改源程序,然后再重新匯編,再經(jīng)過鏈接,直至無錯為止。第九頁,共三十九頁,2022年,8月28日7、運(yùn)行程序及調(diào)試程序連接成功后,在D:\MASM6\目錄下生成了一個可執(zhí)行文件(擴(kuò)展名為.exe),DOS下用DIR命令可以看見該文件(或者在Windows中文件管理器中也可看見該文件)。操作者可在該目錄下直接鍵入文件名(或在文件管理器中雙擊)運(yùn)行此程序:D:\MASM6\>hello.exe↙注:大小寫均可,擴(kuò)展名可不輸入回車后屏幕將顯示:5A第十頁,共三十九頁,2022年,8月28日自己編程:仿照上面程序,將自己的英文名字打印到屏幕上。反復(fù)對以上過程進(jìn)行練習(xí),認(rèn)真理解各步的作用,掌握“編輯”、“編譯”和“鏈接”的概念,了解各步的需要的輸入文件,輸出文件是什么。第十一頁,共三十九頁,2022年,8月28日實(shí)驗(yàn)報告要求(實(shí)驗(yàn)1)1.實(shí)驗(yàn)題目;2.實(shí)驗(yàn)?zāi)康模?.實(shí)驗(yàn)內(nèi)容(1).編程任務(wù)(2).解決問題的基本思路(3).源程序(4).程序運(yùn)行步驟4.實(shí)驗(yàn)結(jié)論;5.本次實(shí)驗(yàn)的主要收獲和體會(100字左右);第十二頁,共三十九頁,2022年,8月28日利用debug調(diào)試宏匯編程序debug.exe是DOS系統(tǒng)自帶的匯編調(diào)試軟件,debug命令是DOS的內(nèi)部命令,只要進(jìn)入DOS系統(tǒng)在任何目錄下都可以運(yùn)行。debug調(diào)試程序有多種命令,可以顯示修改內(nèi)存、匯編、反匯編、單步運(yùn)行程序,中斷運(yùn)行程序等,是調(diào)試匯編程序的常用工具。第十三頁,共三十九頁,2022年,8月28日debug可以直接在運(yùn)行中匯編指令,進(jìn)行調(diào)試,但由于使用這一功能要記住內(nèi)存地址,所以在這里不做介紹,有興趣可以看有關(guān)的參考書,在這里只介紹完整的源程序的調(diào)試方法。第十四頁,共三十九頁,2022年,8月28日調(diào)試步驟:首先編寫源程序,可以用任何文本文字(不帶格式符)編輯系統(tǒng)編寫源程序,如Windows下的記事本,在這里我們一般使用DOS下的文本編輯器edit.exe,與debug.exe一樣,edit也是DOS系統(tǒng)的內(nèi)部命令,在任何目錄下都可以運(yùn)行。但是要注意,無論用哪種編輯器,源程序的后備名必須是.asm。如a.asm等。第十五頁,共三十九頁,2022年,8月28日用記事本編輯源程序文件名為b.asm第十六頁,共三十九頁,2022年,8月28日在DOS下運(yùn)行edit,編輯a.asm源程序第十七頁,共三十九頁,2022年,8月28日輸入源程序第十八頁,共三十九頁,2022年,8月28日文件菜單,可以存盤、重命名、退出等第十九頁,共三十九頁,2022年,8月28日源文件編輯完成后,存盤退出,這時應(yīng)將源文件編譯成目標(biāo)程序.obj文件。同樣在DOS下運(yùn)行宏匯編編譯程序masm.exe。這個程序不是DOS系統(tǒng)命令,須將該可執(zhí)行文件拷貝至源程序的目錄處。第二十頁,共三十九頁,2022年,8月28日在DOS下運(yùn)行masm命令,同時輸入源文件名第二十一頁,共三十九頁,2022年,8月28日編譯程序依次詢問三個選項(xiàng),均輸入回車如果源程序無語法錯誤,提示0個錯誤,表示已生成a.obj文件第二十二頁,共三十九頁,2022年,8月28日如果存在錯誤,指出源程序的錯誤行數(shù),錯誤類型,應(yīng)返回編輯器修改。兩個錯誤第二十三頁,共三十九頁,2022年,8月28日錯誤,多個逗號錯誤,少個逗號當(dāng)前光標(biāo)所在行數(shù)第二十四頁,共三十九頁,2022年,8月28日成功生成a.obj文件后,對obj文件進(jìn)行連接,在DOS的當(dāng)前目錄下執(zhí)行l(wèi)ink.exe文件。執(zhí)行l(wèi)inka第二十五頁,共三十九頁,2022年,8月28日對這三個選項(xiàng)均回車跳過如果源程序沒有堆棧段,程序會提示第二十六頁,共三十九頁,2022年,8月28日這時,我們已經(jīng)成功地生成了a.exe文件,因?yàn)檫@個匯編程序沒有涉及到屏幕的輸入輸出,即運(yùn)行結(jié)果存在內(nèi)存中,雖然能在DOS及Windows下正確運(yùn)行,但什么結(jié)果都看不到。為了觀察程序的運(yùn)行結(jié)果或?yàn)榱苏{(diào)試程序,我們需要運(yùn)行debug.exe調(diào)試程序來觀察cpu的寄存器的運(yùn)行狀態(tài)及數(shù)據(jù)段內(nèi)存的數(shù)據(jù)。第二十七頁,共三十九頁,2022年,8月28日在當(dāng)前目錄下輸入debuga.exe第二十八頁,共三十九頁,2022年,8月28日進(jìn)入debug程序,這是debug的提示符,可以在這個提示符下直接輸入debug的各項(xiàng)命令第二十九頁,共三十九頁,2022年,8月28日U反匯編,可以看源程序格式:U[地址]功能:把指定地址范圍的內(nèi)存塊全部反匯編,一次最多顯示32字節(jié)機(jī)器碼。第三十頁,共三十九頁,2022年,8月28日機(jī)器碼CS:IP原指令第三十一頁,共三十九頁,2022年,8月28日T:單步運(yùn)行程序格式:T[=地址]功能:從指定地址處,(默認(rèn)為當(dāng)前CS:IP地址)處運(yùn)行一條指令,并顯示寄存器內(nèi)容、標(biāo)志寄存器的狀態(tài)和下一條指令。第三十二頁,共三十九頁,2022年,8月28日t命令CPU各寄存器內(nèi)容標(biāo)志寄存器狀態(tài)下一條指令及地址、機(jī)器碼第三十三頁,共三十九頁,2022年,8月28日G:執(zhí)行程序,直至程序結(jié)束或斷點(diǎn)處。格式:G[=地址]斷點(diǎn)地址功能:從指定地址或當(dāng)前地址開始運(yùn)行,遇到斷點(diǎn)則停止,并顯示斷點(diǎn)處的各種狀態(tài)。第三十四頁,共三十九頁,2022年,8月28日運(yùn)行到0015H0015H處寄存器狀態(tài)下一條指令第三十五頁,共三十九頁,2022年,8月28日D顯示內(nèi)存命令格式:D地址(例如DDS:0000)功能:顯示指定范圍的地址內(nèi)容,最多128個字節(jié)。如DDS:0020L40顯示數(shù)據(jù)段從0020H開始的40個字節(jié)的內(nèi)容。第三十六頁,共三十九頁,2022年,8月28日顯示內(nèi)存命令DS:偏移地址內(nèi)存內(nèi)容,均為16進(jìn)制形式對應(yīng)內(nèi)容的ASCII碼第三十七頁,共三十九頁,2022年,8月28日Q退出debug程序。返回DOS第三十八頁,共三十九頁,2022年,8月28日標(biāo)志寄存器的含義:溢出標(biāo)志OFOV(溢出)NV(不溢出)方向標(biāo)志DF
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度瓷磚行業(yè)標(biāo)準(zhǔn)化與認(rèn)證服務(wù)合同4篇
- 二零二五年度純凈水產(chǎn)品回收利用合作協(xié)議4篇
- 2025年度創(chuàng)業(yè)擔(dān)保貸款信用記錄合作協(xié)議4篇
- 二零二五年度綠化苗木養(yǎng)護(hù)技術(shù)服務(wù)合同范本4篇
- 2025年度煤礦掘進(jìn)工程信息化建設(shè)與運(yùn)維合同4篇
- 2025年租賃房屋租賃保證金管理合同4篇
- 二零二五年度消防教育培訓(xùn)與演練服務(wù)合同4篇
- 二零二五年度打印機(jī)維修保養(yǎng)及節(jié)能改造合同4篇
- 2025年度船舶交易稅費(fèi)結(jié)算合同年度更新4篇
- 2024物業(yè)管理公司商業(yè)運(yùn)營與管理合同
- 供油合同模板
- 2025-2030年中國氯酸鈉產(chǎn)業(yè)十三五規(guī)劃及投資風(fēng)險評估報告
- 質(zhì)量系統(tǒng) GMP 實(shí)施指南
- 住房公積金繳存情況專項(xiàng)審計報告
- 猴痘病毒資料
- 《鼻部應(yīng)用解剖》PPT課件
- 第二章 熱力學(xué)基本定律
- 義務(wù)教育教科書英語Go for it七年級上冊單詞表
- 第一章 電力系統(tǒng)潮流計算1
- 粉末丁腈橡膠使用方法
- SM2模擬測試1
評論
0/150
提交評論