宏匯編匯編語言第5章

宏匯編匯編語言第5章

ID:41258594

大?。?90.51 KB

頁數(shù):34頁

時(shí)間:2019-08-20

宏匯編匯編語言第5章_第1頁
宏匯編匯編語言第5章_第2頁
宏匯編匯編語言第5章_第3頁
宏匯編匯編語言第5章_第4頁
宏匯編匯編語言第5章_第5頁
資源描述:

《宏匯編匯編語言第5章》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、第5章 結(jié)構(gòu)化程序設(shè)計(jì)教學(xué)要求:?理解宏匯編的概念和作用。?掌握宏匯編的編程技術(shù)。教學(xué)要求:?理解宏匯編的概念和作用。?掌握宏匯編的編程技術(shù)。教學(xué)要求:?理解宏匯編的概念和作用。?掌握宏匯編的編程技術(shù)。教學(xué)要求:?理解宏匯編的概念和作用。?掌握宏匯編的編程技術(shù)。教學(xué)要求:?理解宏匯編的概念和作用。?掌握宏匯編的編程技術(shù)。5.1子程序的概念5.2子程序的定義、調(diào)用和返回**5.3子程序的現(xiàn)場保護(hù)與參數(shù)傳遞**5.4子程序設(shè)計(jì)*5.5子程序的嵌套與遞歸調(diào)用5.6宏匯編程序設(shè)計(jì)教學(xué)基本內(nèi)容什么是宏?宏是源程序中一段有獨(dú)立功能的程序代碼。它只需在源程序中定義一次就可以

2、多次調(diào)用它,調(diào)用時(shí),只需要用一個宏指令語句就可以了宏(Macro)是匯編語言的一個特點(diǎn),它是與子程序類似又獨(dú)具特色的另一種簡化源程序的方法5.6宏結(jié)構(gòu)程序設(shè)計(jì)宏匯編重復(fù)匯編條件匯編宏結(jié)構(gòu)一、宏匯編內(nèi)容宏定義宏調(diào)用宏展開1、宏定義宏名macro[形參表]┇;宏指令體(宏體)endm(1)宏名(宏指令名):給出該宏定義的名稱(第一個符號必須是字母)。(2)macro/endm系統(tǒng)提供的定義宏的偽指令。(3)形參表:給出宏定義中所用到的形式參數(shù),參數(shù)可以沒   有,或帶有一個或是多個,當(dāng)是多個參數(shù)時(shí),每個形參之間需用逗號隔開。具體參數(shù)可以是常數(shù)、變量、指令或它們的一

3、部分,也可以是表達(dá)式。(4)宏指令體:一組有獨(dú)立功能的匯編程序代碼。其中可以包括指令、偽指令及宏指令等。1、宏定義(續(xù))fillsegmacroDsegname;帶有形參Dsegnamemovax,Dsegname;宏定義中使用參數(shù)movds,axendm;宏定義結(jié)束舉例:思考:此處的形參Dsegname是什么?Dsegname是數(shù)據(jù)段的段名2、宏調(diào)用宏名[實(shí)參表];調(diào)用時(shí),只需使用宏指令名來調(diào)用該宏定義例如:對上面的宏定義的調(diào)用形式為:┆FILLSEGDATA;DATA為數(shù)據(jù)段的段名┆說明:(1)匯編時(shí),匯編程序?qū)γ總€宏調(diào)用作宏展開–––用宏定義體取代源程序

4、中的宏指令名,用實(shí)參代替宏定義中的形參。取代時(shí),實(shí)參和形參是一一對應(yīng)的。若實(shí)參個數(shù)>形參個數(shù),則多余實(shí)參不考慮,若實(shí)參個數(shù)<形參個數(shù),則多余形參作“空”處理。(2)取代后,所得到的語句應(yīng)該是有效的,否則匯編程序?qū)甘境鲥e。(3)每調(diào)用一次就把宏定義體展開一次,因而它占有的存儲空間與調(diào)用次數(shù)有關(guān)。3、宏展開宏調(diào)用的實(shí)質(zhì)是在匯編過程中進(jìn)行宏展開宏展開的具體過程是:當(dāng)匯編程序掃描源程序遇到已有定義的宏調(diào)用時(shí),即用相應(yīng)的宏定義體取代源程序的宏指令,同時(shí)用位置匹配的實(shí)參對形參進(jìn)行取代。1MOV AX,DATA1MOV DS,AX例如:上面的宏調(diào)用,其展開形式為:宏匯編

5、應(yīng)用舉例 例5-9datasegmentbuf1db0dh,0ah,'whatareyourname?$'buf2db0dh,0ah,'mynameisliyang!$'dataendscodesegmentassumeds:data,cs:codestart:movax,datamovds,axdispmacromleadx,mmovah,9int21hendmdispbuf1dispbuf2movah,4chint21hcodeendsendstart宏匯編應(yīng)用舉例 例5-17P148multiplymacroopr1,opr2,result;定義宏pus

6、hdxpushaxmoval,opr1imulopr2movresult,axpopaxpopdxendmdatasegmentadb3bdw?dataendsstacksegmentstackdb200dup(0)stackendscodesegmentassumeds:data,cs:code,ss:stackstart:movax,datamovds,axmovcl,2movbx,0multiplycl,a,b[bx];宏調(diào)用movdx,b[bx]adddl,30hmovah,2int21hmovah,4chint21hcodeendsendstart宏

7、——具有宏名的一段匯編語句序列——宏定義時(shí)書寫宏指令——這段匯編語句序列的縮寫——宏調(diào)用時(shí)書寫宏展開——宏指令處用這段宏代替的過程——宏匯編時(shí)實(shí)現(xiàn)宏的參數(shù)功能強(qiáng)大,頗具特色思考:在匯編語言程序設(shè)計(jì)過程中,可以將具有一定功能,需多次重復(fù)使用,且比較短的程序段定義成一條宏指令。使用宏指令語句可以減少程序書寫錯誤,縮短源程序長度,使源程序編寫像高級語言一樣清晰、簡潔。特別是使用宏庫后,可以提高編程效率。在什么情況下使用宏?為什么要使用宏?比較僅是源程序級的簡化:宏調(diào)用在匯編時(shí)進(jìn)行程序語句的展開,不需要返回;不減小目標(biāo)程序,執(zhí)行速度沒有改變通過形參、實(shí)參結(jié)合實(shí)現(xiàn)參數(shù)傳

8、遞,簡捷直觀、靈活多變還是目標(biāo)程序級的

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時(shí)可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。