![實(shí)驗(yàn)一 匯編基本操作ppt課件_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/97d75767-79c1-4a2f-b2be-aa88c8eec762/97d75767-79c1-4a2f-b2be-aa88c8eec7621.gif)
![實(shí)驗(yàn)一 匯編基本操作ppt課件_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/97d75767-79c1-4a2f-b2be-aa88c8eec762/97d75767-79c1-4a2f-b2be-aa88c8eec7622.gif)
![實(shí)驗(yàn)一 匯編基本操作ppt課件_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/97d75767-79c1-4a2f-b2be-aa88c8eec762/97d75767-79c1-4a2f-b2be-aa88c8eec7623.gif)
![實(shí)驗(yàn)一 匯編基本操作ppt課件_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/97d75767-79c1-4a2f-b2be-aa88c8eec762/97d75767-79c1-4a2f-b2be-aa88c8eec7624.gif)
![實(shí)驗(yàn)一 匯編基本操作ppt課件_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/97d75767-79c1-4a2f-b2be-aa88c8eec762/97d75767-79c1-4a2f-b2be-aa88c8eec7625.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)一 匯編基本操作一、實(shí)驗(yàn)?zāi)康?熟悉在PC機(jī)上建立、匯編、鏈接、調(diào)試、和運(yùn)行匯編語(yǔ)言程序的全過(guò)程; 設(shè)計(jì)一個(gè)完整的順序結(jié)構(gòu)匯編語(yǔ)言程序,學(xué)習(xí)數(shù)據(jù)傳送和算術(shù)運(yùn)算指令的用法。源程序源程序(文本文件)(文本文件)*.ASM目標(biāo)文件目標(biāo)文件(二進(jìn)制文件)(二進(jìn)制文件)*.OBJ可執(zhí)行文件可執(zhí)行文件(二進(jìn)制文件)(二進(jìn)制文件)*.EXE庫(kù)文件庫(kù)文件(各種函數(shù))(各種函數(shù))編譯編譯銜接銜接masm.exelink二、實(shí)驗(yàn)內(nèi)容 示例題:在屏幕上顯示信息:“5A”DATA SEGMENT ;定義數(shù)據(jù)段xdb 5 ;定義字節(jié)型變量x, x值存放于內(nèi)存DATA段字節(jié)偏移量處ydb A;定義字節(jié)型變量y, y值存
2、放于內(nèi)存DATA段字節(jié)偏移量1處DATA ENDS CODE SEGMENT;定義代碼段偽指令,編譯器使用)ASSUME CS:CODE,DS:DATA偽指令,編譯器使用) START: MOV AX,DATA;數(shù)據(jù)段在內(nèi)在重定位,以便程序能夠正確引用的在數(shù)據(jù)段中MOV DS,AXMOV DL, x; x值即48D或31H)“5的ASCII碼存入寄器DLMOV AH, 2;INT 21H ; 調(diào)用號(hào)DOS中斷,用于顯示DL中存放的字符 MOV BX,01MOV DL,BX;通過(guò)BX寄存器間接址將y值存入DL與第3行有相同的作用)MOV AH,2INT 21H;此段語(yǔ)句功能同上一段 MOV AH
3、,4CHINT 21H;4C號(hào)DOS中斷,功能是結(jié)束程序,將系統(tǒng)控制權(quán)返給操作系統(tǒng) CODE ENDS ;以下兩句為偽指令,不占用內(nèi)存,編譯器使用END START實(shí)驗(yàn)步驟 1、從“開(kāi)場(chǎng)”“運(yùn)轉(zhuǎn)”輸入“CMD命令,進(jìn)入仿真DOS狀態(tài); 2、鍵入D: ,進(jìn)入D盤(pán)( 表示回車(chē)鍵); 3、輸入CD MASM6 ,進(jìn)入MASM6目錄即匯編程序所在目錄); 4、輸入EDIT (即DOS下的文本編輯程序編輯宏匯編語(yǔ)言源程序,或者用TC編輯環(huán)境,或者用Windows的文本編輯程序均可。 選用你熟悉的文本編輯程序,按要求逐條輸入給出的源程序,并對(duì)輸入完畢的源程序存盤(pán),其文件名由自己定,但文件的擴(kuò)展名必須是.A
4、SM如果用Windows編輯程序,文件格式一定要選純文本文件),文件保存位置為D: MASM6。例如把示例題源程序文件取名為hello.asm。5、對(duì)源程序進(jìn)行編譯以生成.OBJ目標(biāo)文件(框內(nèi)為鍵盤(pán)輸入的內(nèi)容, 表示回車(chē)):D: MASM6MASM hello.asm Microsoft(R) Macro Assembler Version 5.0 Copyright(C) Microsoft Corp 1981-1985,1987,All rights reserved. 工 Source filenamehello.ASM: 注:源文件名,上邊已輸入在此直接回車(chē)即可 Object file
5、namehello.OBJ: 注:目標(biāo)文件名,默認(rèn)與源文件同名 Source ListingNUL.LST: 注:列表文件,直接回車(chē)表示不生成該文件 Cross-referencenul.CRF: 注:交叉索引文件直接回車(chē)表示不生成該文件 50636+408356 Bytes symbol space free 0 Warning Errors注:編譯過(guò)程沒(méi)有警告性錯(cuò)誤 0 Severe Errors注:沒(méi)有嚴(yán)重錯(cuò)誤,編譯成功,如不為0剛需打開(kāi)源程序按此處給出的錯(cuò)誤提示修改錯(cuò)誤 D: 注:返回DOS環(huán)境 不同版本時(shí),以上顯示內(nèi)容可能不同,但基本原理是一致的。MASM完成對(duì)源程序的編譯,若編譯過(guò)
6、程中發(fā)現(xiàn)語(yǔ)法錯(cuò)誤,則列出錯(cuò)誤的語(yǔ)句代碼及錯(cuò)誤類(lèi)型,最后列出警告錯(cuò)誤和語(yǔ)法錯(cuò)誤的總數(shù)。此時(shí),就可以根據(jù)錯(cuò)誤的性質(zhì)分析錯(cuò)誤,并使用編輯程序修改源程序,再重新匯編源程序,直至匯編后無(wú)錯(cuò)誤發(fā)生為止。6、鏈接目標(biāo)文件,對(duì)上步生成的目標(biāo)文件進(jìn)行鏈接生成擴(kuò)展名為.exe的可執(zhí)行文件 D: MASM6 LINKMicrosoft(R) 8086 Object,linker Version 3.05 Copyright(C) Microsoft Corp 1983,1984,1985,All rights reserved. Object Modules .OBJ:hello注:目標(biāo)文件名,擴(kuò)展名不用輸入 Ru
7、n FileHELLO.EXE: 注:可執(zhí)行文件名,默認(rèn)與目標(biāo)文件同名 List FileNUL.MAP:注:不輸出MAP文件 Libraries.LIB: 注:不鏈接庫(kù)文件若連接過(guò)程有錯(cuò),則顯示錯(cuò)誤信息,此時(shí)需要重新調(diào)用編輯程序修改源程序,然后再重新匯編,再經(jīng)過(guò)鏈接,直至無(wú)錯(cuò)為止。7、運(yùn)行程序及調(diào)試程序 連接成功后,在D: MASM6目錄下生成了一個(gè)可執(zhí)行文件擴(kuò)展名為.exe),DOS下用DIR命令可以看見(jiàn)該文件或者在Windows中文件管理器中也可看見(jiàn)該文件)。操作者可在該目錄下直接鍵入文件名或在文件管理器中雙擊運(yùn)行此程序:D: MASM6 hello.exe 注:大小寫(xiě)均可,擴(kuò)展名可不輸
8、入回車(chē)后屏幕將顯示 :5A自己編程:仿照上面程序,將自己的英文自己編程:仿照上面程序,將自己的英文名字打印到屏幕上。名字打印到屏幕上。 反復(fù)對(duì)以上過(guò)程進(jìn)行練習(xí),認(rèn)真理解反復(fù)對(duì)以上過(guò)程進(jìn)行練習(xí),認(rèn)真理解各步的作用,掌握各步的作用,掌握“編輯編輯”、“編譯和編譯和“鏈鏈接的概念,了解各步的需要的輸入文件,接的概念,了解各步的需要的輸入文件,輸出文件是什么。輸出文件是什么。實(shí)驗(yàn)報(bào)告要求實(shí)驗(yàn)1)1. 實(shí)驗(yàn)題目;2. 實(shí)驗(yàn)?zāi)康模?. 實(shí)驗(yàn)內(nèi)容(1). 編程任務(wù)(2). 解決問(wèn)題的基本思路(3). 源程序(4). 程序運(yùn)行步驟4. 實(shí)驗(yàn)結(jié)論;5. 本次實(shí)驗(yàn)的主要收獲和體會(huì)100字左右);利用利用debug
9、調(diào)試宏匯編程序調(diào)試宏匯編程序debug.exe是是DOS系統(tǒng)自帶的匯編調(diào)試軟件,系統(tǒng)自帶的匯編調(diào)試軟件,debug命令是命令是DOS的內(nèi)部命令,只要進(jìn)入的內(nèi)部命令,只要進(jìn)入DOS系統(tǒng)在任何目錄下都可以運(yùn)行。系統(tǒng)在任何目錄下都可以運(yùn)行。debug調(diào)試程序有多種命令,可以顯示修改調(diào)試程序有多種命令,可以顯示修改內(nèi)存、匯編、反匯編、單步運(yùn)行程序,中斷內(nèi)存、匯編、反匯編、單步運(yùn)行程序,中斷運(yùn)行程序等,是調(diào)試匯編程序的常用工具。運(yùn)行程序等,是調(diào)試匯編程序的常用工具。debug可以直接在運(yùn)行中匯編指令,進(jìn)行調(diào)可以直接在運(yùn)行中匯編指令,進(jìn)行調(diào)試,但由于使用這一功能要記住內(nèi)存地址,試,但由于使用這一功能要記住
10、內(nèi)存地址,所以在這里不做介紹,有興趣可以看有關(guān)的所以在這里不做介紹,有興趣可以看有關(guān)的參考書(shū),在這里只介紹完整的源程序的調(diào)試參考書(shū),在這里只介紹完整的源程序的調(diào)試方法。方法。調(diào)試步驟:調(diào)試步驟:首先編寫(xiě)源程序,可以用任何文本文字不首先編寫(xiě)源程序,可以用任何文本文字不帶格式符編輯系統(tǒng)編寫(xiě)源程序,如帶格式符編輯系統(tǒng)編寫(xiě)源程序,如Windows下的記事本,在這里我們一般使用下的記事本,在這里我們一般使用DOS下的文本編輯器下的文本編輯器edit.exe,與,與debug.exe一一樣,樣,edit也是也是DOS系統(tǒng)的內(nèi)部命令,在任何系統(tǒng)的內(nèi)部命令,在任何目錄下都可以運(yùn)行。但是要注意,無(wú)論用哪目錄下都
11、可以運(yùn)行。但是要注意,無(wú)論用哪種編輯器,源程序的后備名必須是種編輯器,源程序的后備名必須是.asm。如。如a.asm等。等。用記事本編用記事本編輯源程序輯源程序文件文件名為名為b.asm在在DOS下運(yùn)行下運(yùn)行edit,編輯編輯a.asm源程序源程序輸入源程序輸入源程序文件菜單,可文件菜單,可以存盤(pán)、重命以存盤(pán)、重命名、退出等名、退出等源文件編輯完成后,存盤(pán)退出,這時(shí)應(yīng)將源源文件編輯完成后,存盤(pán)退出,這時(shí)應(yīng)將源文件編譯成目標(biāo)程序文件編譯成目標(biāo)程序 .obj文件。文件。同樣在同樣在DOS下運(yùn)行宏匯編編譯程序下運(yùn)行宏匯編編譯程序masm.exe。這個(gè)程序不是這個(gè)程序不是DOS系統(tǒng)命令,須將該可執(zhí)行系
12、統(tǒng)命令,須將該可執(zhí)行文件拷貝至源程序的目錄處。文件拷貝至源程序的目錄處。在在DOS下運(yùn)行下運(yùn)行masm命令命令,同時(shí)同時(shí)輸入源文件名輸入源文件名編譯程序依次詢(xún)編譯程序依次詢(xún)問(wèn)三個(gè)選項(xiàng),均問(wèn)三個(gè)選項(xiàng),均輸入回車(chē)輸入回車(chē)如果源程序無(wú)語(yǔ)法如果源程序無(wú)語(yǔ)法錯(cuò)誤,提示錯(cuò)誤,提示0個(gè)錯(cuò)個(gè)錯(cuò)誤,表示已生成誤,表示已生成a.obj文件文件如果存在錯(cuò)誤,指如果存在錯(cuò)誤,指出源程序的錯(cuò)誤行出源程序的錯(cuò)誤行數(shù),錯(cuò)誤類(lèi)型,應(yīng)數(shù),錯(cuò)誤類(lèi)型,應(yīng)返回編輯器修改。返回編輯器修改。兩個(gè)錯(cuò)誤兩個(gè)錯(cuò)誤錯(cuò)誤,多個(gè)逗號(hào)錯(cuò)誤,多個(gè)逗號(hào)錯(cuò)誤,少個(gè)逗號(hào)錯(cuò)誤,少個(gè)逗號(hào)當(dāng)前光標(biāo)所在行數(shù)當(dāng)前光標(biāo)所在行數(shù)成功生成成功生成a.obj文件后,對(duì)文件后,
13、對(duì)obj文件進(jìn)行連接,文件進(jìn)行連接,在在DOS的當(dāng)前目錄下執(zhí)行的當(dāng)前目錄下執(zhí)行l(wèi)ink.exe文件。文件。執(zhí)行執(zhí)行l(wèi)ink a對(duì)這三個(gè)選項(xiàng)對(duì)這三個(gè)選項(xiàng)均回車(chē)跳過(guò)均回車(chē)跳過(guò)如果源程序沒(méi)有堆棧如果源程序沒(méi)有堆棧段,程序會(huì)提示段,程序會(huì)提示這時(shí),我們已經(jīng)成功地生成了這時(shí),我們已經(jīng)成功地生成了a.exe文件,因文件,因?yàn)檫@個(gè)匯編程序沒(méi)有涉及到屏幕的輸入輸出,為這個(gè)匯編程序沒(méi)有涉及到屏幕的輸入輸出,即運(yùn)行結(jié)果存在內(nèi)存中,雖然能在即運(yùn)行結(jié)果存在內(nèi)存中,雖然能在DOS及及Windows下正確運(yùn)行,但什么結(jié)果都看不到。下正確運(yùn)行,但什么結(jié)果都看不到。為了觀(guān)察程序的運(yùn)行結(jié)果或?yàn)榱苏{(diào)試程序,為了觀(guān)察程序的運(yùn)行結(jié)果
14、或?yàn)榱苏{(diào)試程序,我們需要運(yùn)行我們需要運(yùn)行debug.exe調(diào)試程序來(lái)觀(guān)察調(diào)試程序來(lái)觀(guān)察cpu的寄存器的運(yùn)行狀態(tài)及數(shù)據(jù)段內(nèi)存的數(shù)據(jù)。的寄存器的運(yùn)行狀態(tài)及數(shù)據(jù)段內(nèi)存的數(shù)據(jù)。在當(dāng)前目錄下輸入在當(dāng)前目錄下輸入debug a.exe進(jìn)入進(jìn)入debug程序,這是程序,這是debug的提的提示符,可以在這個(gè)提示符下直接示符,可以在這個(gè)提示符下直接輸入輸入debug的各項(xiàng)命令的各項(xiàng)命令U 反匯編,可以看源程序反匯編,可以看源程序格式:格式:U 地址地址功能:把指定地址范圍的內(nèi)存塊全部反匯編,功能:把指定地址范圍的內(nèi)存塊全部反匯編,一次最多顯示一次最多顯示32字節(jié)機(jī)器碼。字節(jié)機(jī)器碼。機(jī)器碼機(jī)器碼CS:IP原指令
15、原指令T:?jiǎn)尾竭\(yùn)行程序:?jiǎn)尾竭\(yùn)行程序格式:格式:T =地址地址 功能:從指定地址處,(默認(rèn)為當(dāng)前功能:從指定地址處,(默認(rèn)為當(dāng)前CS:IP地址處運(yùn)行一條指令,并顯示寄存器內(nèi)容、地址處運(yùn)行一條指令,并顯示寄存器內(nèi)容、標(biāo)志寄存器的狀態(tài)和下一條指令。標(biāo)志寄存器的狀態(tài)和下一條指令。t 命令命令CPU各寄存器內(nèi)容各寄存器內(nèi)容標(biāo)志寄存標(biāo)志寄存器狀態(tài)器狀態(tài)下一條指令及地下一條指令及地址、機(jī)器碼址、機(jī)器碼G:執(zhí)行程序,直至程序結(jié)束或斷點(diǎn)處。:執(zhí)行程序,直至程序結(jié)束或斷點(diǎn)處。格式:格式:G =地址地址 斷點(diǎn)地址斷點(diǎn)地址功能:從指定地址或當(dāng)前地址開(kāi)始運(yùn)行,遇功能:從指定地址或當(dāng)前地址開(kāi)始運(yùn)行,遇到斷點(diǎn)則停止,并顯示斷點(diǎn)處的各種狀態(tài)。到斷點(diǎn)則停止,并顯示斷點(diǎn)處的各種狀態(tài)。運(yùn)行到運(yùn)行到0015H0015H處寄存器狀態(tài)處寄存器狀態(tài)下一條指令下一條指令D 顯示內(nèi)存命令顯示內(nèi)存命令格式:格式:D 地址地址 (例如(例如 D DS:0000 )功能:顯示指定范圍的地址內(nèi)容,最多功能:顯示指定范圍的地址內(nèi)容,最多128個(gè)個(gè)字節(jié)。字節(jié)。如如 D DS:0020 L 40 顯示數(shù)據(jù)段從顯示數(shù)據(jù)段從0020H開(kāi)始的開(kāi)始的40個(gè)字節(jié)的內(nèi)容。個(gè)字節(jié)的內(nèi)容。顯示內(nèi)存命令顯示內(nèi)存命令DS:偏移地址偏移地址內(nèi)存內(nèi)容,均內(nèi)存內(nèi)容,均為為16進(jìn)制形式進(jìn)制形式對(duì)應(yīng)內(nèi)容的對(duì)應(yīng)內(nèi)容的ASCII碼碼Q 退出退
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 可降解聚乳酸包膜尿素的制備及其性能研究
- 具有臨界指數(shù)的Kirchhoff型方程解的存在性研究
- 安代舞鍛煉對(duì)中老年人心境狀態(tài)和主觀(guān)幸福感影響的研究
- 全球變暖下BSISO的變化及其對(duì)西北太平洋熱帶氣旋生成的影響研究
- 同行研發(fā)信息披露對(duì)企業(yè)創(chuàng)新的影響研究
- 知識(shí)產(chǎn)權(quán)與創(chuàng)新驅(qū)動(dòng)的產(chǎn)業(yè)升級(jí)研究
- 高三退學(xué)申請(qǐng)書(shū)
- 職業(yè)本科人才培養(yǎng)目標(biāo)定位的邏輯與實(shí)踐路徑研究
- 2019-2025年中國(guó)潔牙設(shè)備行業(yè)發(fā)展趨勢(shì)及投資前景預(yù)測(cè)報(bào)告
- 雕刻沙發(fā)項(xiàng)目可行性研究報(bào)告
- 除銹、油漆檢驗(yàn)批質(zhì)量驗(yàn)收記錄樣表
- pp顧問(wèn)的常見(jiàn)面試問(wèn)題
- 法理學(xué)原理與案例完整版教學(xué)課件全套ppt教程
- 2021年蘇州市職業(yè)大學(xué)職業(yè)適應(yīng)性測(cè)試試題及答案解析
- DBJ∕T 13-253-2016 福建省耐腐蝕混凝土應(yīng)用技術(shù)規(guī)程
- 軟體家具、沙發(fā)質(zhì)量檢驗(yàn)及工藝
- 電鍍廢水中各種重金屬?gòu)U水處理反應(yīng)原理及控制條件
- Q∕GDW 12118.1-2021 人工智能平臺(tái)架構(gòu)及技術(shù)要求 第1部分:總體架構(gòu)與技術(shù)要求
- 數(shù)據(jù)結(jié)構(gòu)英文教學(xué)課件:chapter3 Linked Lists
- 中建一局醫(yī)院直線(xiàn)加速器室專(zhuān)項(xiàng)施工方案
- 會(huì)計(jì)英語(yǔ)專(zhuān)業(yè)詞匯全
評(píng)論
0/150
提交評(píng)論