已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第四章 匯編語(yǔ)言程序格式1教學(xué)目的:掌握微型匯編語(yǔ)言格式和程序設(shè)計(jì)方法2教學(xué)要求: 熟悉匯編語(yǔ)言程序的結(jié)構(gòu)、語(yǔ)句類型和格式。 熟悉數(shù)據(jù)項(xiàng)及表達(dá)式,要求能明確區(qū)分標(biāo)號(hào)和變量。 熟悉各類偽指令,要求掌握常用偽指令格式和應(yīng)用。 熟悉匯編語(yǔ)言上機(jī)過(guò)程和DEBUG調(diào)試3教學(xué)重點(diǎn):指令語(yǔ)句格式和偽指令語(yǔ)句格式匯編語(yǔ)言程序格式。4掌握難點(diǎn):偽指令偽指令存儲(chǔ)器分配技術(shù)5教學(xué)進(jìn)程安排:P1021336教學(xué)方法:課堂講授7教學(xué)內(nèi)容摘要:4.1 匯編語(yǔ)言語(yǔ)句格式4.1.1 語(yǔ)句種類【例4-1】先給出一個(gè)完整的匯編語(yǔ)言源程序,該程序的功能是完成兩個(gè)字節(jié)數(shù)據(jù)相加。DATASEGMENT;段定義開(kāi)始(DATA段)BUF1DB34H;第1個(gè)加數(shù);BUF2DB2AH;第2個(gè)加數(shù)SUMDB?;準(zhǔn)備用來(lái)存放和數(shù)的單元DATAENDS;段定義結(jié)束(DATA段)CODESEGMENT;段定義開(kāi)始(CODE段)ASSUMECS:CODE,DS:DATA;規(guī)定DATA、CODE分別為數(shù)據(jù)段和代碼段START:MOVAX,DATAMOVDS,AX;給數(shù)據(jù)段寄存器DS賦值MOVAL,BUF1;取第1個(gè)加數(shù)ADDAL,BUF2;和第2個(gè)加數(shù)相加MOVSUM,AL;存放結(jié)果MOVAH,4CH;INT21H;返回DOS狀態(tài)CODEENDS;段定義結(jié)束(CODE段)ENDSTART;整個(gè)源程序結(jié)束從上面這個(gè)例子可以看出,匯編語(yǔ)言源程序由若干個(gè)語(yǔ)句組成,語(yǔ)句分為如下2類。1指令語(yǔ)句2偽指令語(yǔ)句4.1.2 語(yǔ)句格式指令語(yǔ)句和偽指令語(yǔ)句的格式是類似的,格式如下:名字 操作碼 操作數(shù) ;注釋1名字名字的標(biāo)識(shí)符名字的定義規(guī)則名字的2種主要形式標(biāo)號(hào)變量2.操作碼3.操作數(shù)常數(shù)表達(dá)式算術(shù)運(yùn)算符邏輯運(yùn)算符關(guān)系運(yùn)算符4.注釋項(xiàng)4.2 偽指令與偽操作4.2.1 定義符號(hào)的偽指令1. 等值偽指令EQU0A041064000001FBFF3C000000FDFF0000DATA_BYTEDATA_WORDDATA_DW10d410h100d60d0FFFDh-5100h格式: EQU 2. 等號(hào)偽指令 =EMP=7EMP=EMP+13. 解除定義偽指令PURGE格式:PURGE 4.2.2 定義數(shù)據(jù)的偽指令變量 助記符 操作數(shù),操作數(shù) ;注釋功能:為操作數(shù)分配存儲(chǔ)單元,并用變量與存儲(chǔ)單元建立聯(lián)系。DB、DW、DD、DQ、DT【例4-2】操作數(shù)可以是常數(shù),或者是表達(dá)式(根據(jù)該表達(dá)式可以求得一個(gè)常數(shù)),如DATA_BYTEDB10,4,10HDATA_WORDDW100,100H,-5圖4.1 例4-2的匯編結(jié)果DATA_DWDD3C,OFFFDH匯編程序可以在匯編期間在存儲(chǔ)器中存入數(shù)據(jù),匯編后的內(nèi)存分布如圖4.1所示。【例4-3】操作數(shù)也可以是字符串,如:MESSAGEDBHELLO則存儲(chǔ)器存儲(chǔ)情況如圖4.2所示,而DB AB和DW AB的存儲(chǔ)情況則分別如圖4.2和所示?!纠?-4】操作數(shù)?可以保留存儲(chǔ)空間,但不存入數(shù)據(jù)。 如:ABCDB0,?,?,0 DEFDW?,52,?經(jīng)匯編后的存儲(chǔ)情況如圖4.3所示。MESSAGE48454C4C4F41424241HELLOABBA字符串的存儲(chǔ) DB AB DW AB圖4.2 例4-3的匯編結(jié)果【例4-5】 使用DUP實(shí)現(xiàn)重復(fù)定義ARRAY1DB2DUP(0,1,2,?)ARRAY2DB100DUP( ? )匯編后的存儲(chǔ)情況如圖4.4所示。由圖可見(jiàn),例4-5中的第一個(gè)語(yǔ)句和語(yǔ)句ARRAY1 DB 0,1,2,?,0,1,2,?是100個(gè)字節(jié)00-00-3400-ABCDEF52d000102-000102-ARRAY1ARRAY2等價(jià)的。圖4.3 例4-4的匯編結(jié)果 圖4.4 例4-5的匯編結(jié)果4.2.3 定義程序開(kāi)始和結(jié)束的偽指令NAMEMODULE_NAMETITLETEXTENDLABEL4.2.4 指令集選擇偽指令A(yù)RRAY010002007C000300040082000074.8086 選擇8086指令系統(tǒng).286 選擇80286指令系統(tǒng).286P 選擇保護(hù)方式下的80286指令系統(tǒng)4.2.5 地址計(jì)數(shù)器與對(duì)準(zhǔn)偽操作1. 地址計(jì)數(shù)器$JNE $+6【例4-6】$ 用法示例ARRAYDW1,2,$+4,3,4,$+4如匯編時(shí)ARRAY分配的偏移地址為0074,則匯編后的存儲(chǔ)區(qū)將如圖4.5所示。注意:ARRAY數(shù)組中的兩個(gè) $+4 得到的結(jié)果是不同的,這是 圖4.5 例4-6的匯編結(jié)果由于$的值是在不斷變化的緣故。當(dāng)在指令中用到$ 時(shí),它只代表該指令的首地址,而與$本身所在的字節(jié)無(wú)關(guān)。2. ORG偽操作 ORG偽操作用來(lái)設(shè)置當(dāng)前地址計(jì)數(shù)器的值,其格式為:ORGCONSTANTEXPRESSION3. EVEN偽操作4. ALIGN偽操作ALIGN偽操作為保證雙字類型數(shù)組邊界從4的倍數(shù)開(kāi)始創(chuàng)造了條件,其格式為:ALIGNBOUNDARY其中BOUNDARY必須是2的冪,例如:.DATAALIGN4ARRAYDB100DUP(?)就可保證ARRAY的值為4的倍數(shù)。當(dāng)然,ALIGN2和EVEN是等價(jià)的。4.2.6 基數(shù)控制偽指令.RADIXEXPRESSION4.2.7 過(guò)程定義偽指令可把具有獨(dú)立功能的程序段定義為過(guò)程,供其它程序調(diào)用。過(guò)程定義的語(yǔ)法格式為: PROCNEAR/FARRET ENDP4.3 匯編語(yǔ)言源程序結(jié)構(gòu)4.3.1完整段定義的程序結(jié)構(gòu)SEGMENT_NAMESEGMENT SEGMENT_NAMEENDSASSUME :段名,:段名,ASSUME :NOTHING SEGMENT 定位類型組合類型使用類型類別 ENDS1. 定位類型(ALIGN_TYPE)PARA指定段的起始地址必須從小段邊界開(kāi)始,即段起始地址最低位必須為0。這樣,偏移地址可以從0開(kāi)始。BYTE該段可以從任何地址開(kāi)始。這樣,起始偏移地址可能不是0。WORD該段必須從字的邊界開(kāi)始,即段起始地址必須為偶數(shù)。DWORD該段必須從雙字邊界開(kāi)始,即段起始地址的最低位必須為4的倍數(shù)。PAGE該段必須從負(fù)的邊界開(kāi)始,即段起始地址的最低兩個(gè)十六進(jìn)制數(shù)位必須為0(該地址能被256整除)。定位類型的默認(rèn)項(xiàng)是PARA,即若未指定定位類型時(shí),則匯編程序默認(rèn)為PARA。2. 組合類型(COMBINE_TYPE)組合類型的默認(rèn)項(xiàng)是PRIVATE。3. 使用類型(USE_TYPE)USE16使用16位尋址方式。USE32使用32位尋址方式。使用類型的默認(rèn)項(xiàng)是USE16。4. 類別名(CLASS)在引號(hào)中給出連接時(shí)組成段組的類型名。類別說(shuō)明并不能把相同類別的段合并起來(lái),但在連接后形成的裝入模塊中,可以把它們的位置靠在一起。4.3.2 簡(jiǎn)化段定義的程序結(jié)構(gòu)較新版本的匯編程序(MASM5.0與MASM6.0)除支持“完整的段定義偽操作”中所討論的SEGMENT偽操作外,還提供了一種新的較簡(jiǎn)單的段定義方法。1MODEL偽操作MODEL偽操作的格式如下:.MODEL MEMORY_MODEL , MODEL OPTIONS 2簡(jiǎn)化的段定義偽操作3與簡(jiǎn)化段定義有關(guān)的預(yù)定義符號(hào)4用MODEL定義存儲(chǔ)模型時(shí)的段默認(rèn)屬性4.3.3 段組定義的程序結(jié)構(gòu)其格式如下:GRPNAMEGROUPSEGNAME,SEGNAME其中GRPNAME為段組名,SEGNAME則為段名。4.4 匯編語(yǔ)言程序的上機(jī)過(guò)程在計(jì)算機(jī)上運(yùn)行匯編語(yǔ)言程序的步驟是:1用編輯程序建立ASM源文件;2用MASM程序把ASM文件轉(zhuǎn)匯編成OBJ文件;3用LINK程序把OBJ文件轉(zhuǎn)連接成EXE文件;4用DOS命令直接鍵入文件名就可執(zhí)行該程序。圖4.7 匯編語(yǔ)言程序的建立及匯編過(guò)程4.4.1建立匯編語(yǔ)言的工作環(huán)境為運(yùn)行匯編語(yǔ)言程序至少要在磁盤(pán)上提供以下文件:1編輯程序,如EDIT.EXE2匯編程序,如MASM.EXE3連接程序,如LINK.EXE4調(diào)試程序,如DEBUG.COM4.4.2 匯編語(yǔ)言源程序上機(jī)過(guò)程1.建立匯編源程序ASM文件2.匯編產(chǎn)生OBJ文件3. 鏈接產(chǎn)生EXE文件4. 程序的調(diào)試和執(zhí)行5. 生成COM文件4.5 動(dòng)態(tài)調(diào)試程序DEBUG4.5.1 DEBUG的啟動(dòng)與退出1.DEBUG的啟動(dòng)DEBUG2.退出DEBUG格式 -Q4.5.2 匯編、執(zhí)行、跟蹤與反匯編1. A命令(匯編)格式:A 2. G命令(執(zhí)行)格式:G=3. T命令(跟蹤執(zhí)行)格式:T=地址4. U命令(反匯編)格式:U4.5.3 顯示、修改內(nèi)存和寄存器命令1.D命令(顯示內(nèi)存)格式:D或D2. E命令(將內(nèi)容寫(xiě)入內(nèi)存)格式:E3.R命令(修改寄存器)格式:R(顯示所有寄存器和標(biāo)志)R寄存器(顯示指定寄存器)RF(顯示所有標(biāo)志)4.5.4 磁盤(pán)文件操作1N命令(命名)格式:N2W命令(寫(xiě)盤(pán))格式:W3L命令(讀盤(pán)) 格式:L4.5.5 查找、比較、填充和移動(dòng)內(nèi)存
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合伙養(yǎng)豬合作合同范本
- 軟件代理經(jīng)營(yíng)合同范本
- 多人合伙買(mǎi)車(chē)合同范本
- 施工降水合同范本
- 多人股權(quán)合同范本
- 魚(yú)塘護(hù)欄施工合同范本
- 買(mǎi)房定金收款合同范本
- 商鋪轉(zhuǎn)讓合同范本
- 清潔外包公合同范本
- 噴砂加工合同范本
- 護(hù)理部主任年終匯報(bào)
- 《電力市場(chǎng)概論》 課件 第七章 發(fā)電投資分析
- 2024年新蘇教版四年級(jí)上冊(cè)科學(xué)全冊(cè)知識(shí)點(diǎn)(復(fù)習(xí)資料)
- 題庫(kù)二附有答案
- 市場(chǎng)拓展與銷(xiāo)售渠道拓展方案
- 工地大門(mén)施工協(xié)議書(shū)
- 文史哲與藝術(shù)中的數(shù)學(xué)智慧樹(shù)知到期末考試答案章節(jié)答案2024年吉林師范大學(xué)
- 鐵血將軍、建軍元?jiǎng)?葉挺 (1)講解
- 2023年西門(mén)子PLC知識(shí)考試題(附含答案)
- 鼻鼽(變應(yīng)性鼻炎)診療方案
- 消防應(yīng)急疏散和滅火演習(xí)技能培訓(xùn)
評(píng)論
0/150
提交評(píng)論