2.宏指令
在匯編語言程序中,有的程序段有時(shí)要多次使用,為了使在源程序中不重復(fù)書寫這個(gè)程序段,可以用一條宏指令來代替,在匯編時(shí)由匯編程序產(chǎn)生所需的代碼。宏指令的使用過程是宏定義、宏調(diào)用和宏擴(kuò)展。
(1)宏定義
宏指令的定義格式:
宏指令名 MACRO[形式參數(shù)]┆(宏體) ENDM說明:
●宏指令名是給宏指令起的名字,MACRO是宏定義的定義符,ENDM是宏定義的結(jié)束符,兩者必須成對出現(xiàn)。
●MACRO和ENDM之間的指令序列稱為宏體,即用宏指令要代替的程序段。宏指令具有接受參數(shù)的能力,宏體中使用的形式參數(shù)必須在MACRO語句中出現(xiàn)。當(dāng)有兩個(gè)以上參數(shù)時(shí),需用逗號隔開。
●在宏指令被調(diào)用時(shí),這些參數(shù)被給出的一些名字或數(shù)值所取代。
(2)宏調(diào)用經(jīng)過宏定義后,在源程序中的任何位置可以直接使用宏指令名,實(shí)現(xiàn)宏指令的調(diào)用,稱為宏調(diào)用。宏調(diào)用的結(jié)果是將匯編程序翻譯成該宏定義的程序段,而產(chǎn)生的目標(biāo)代碼拷貝到調(diào)用點(diǎn)。宏調(diào)用的格式:
宏調(diào)令名(參數(shù),……)
(3)宏擴(kuò)展
在匯編宏指令時(shí),宏匯編程序?qū)⒑牦w的指令插入到宏指令所在的位置上,并用實(shí)在參數(shù)代替形式參數(shù),同時(shí)在插入的每一條指令前加一個(gè)“+”號,這個(gè)過程稱為宏擴(kuò)展。
(4)常用宏指令
80x86宏匯編中常用宏指令的格式及功能如下表所示。
常用宏指令
名稱 格式 功能
MACRO 宏定義偽指令
PURGE PURGE宏指令名[…]
其功能是取消宏指令名的定義。一個(gè)PURGE指令可同時(shí)取消多個(gè)宏定義
REPT REPT<表達(dá)式> ┆(指令體)ENDM 其功能是重復(fù)執(zhí)行指令體所包含的話句,重復(fù)次數(shù)由表達(dá)式的值確定
IRP IRP形式參量,(參數(shù)表) …(指令體)ENDM 重復(fù)執(zhí)行指令體內(nèi)所包含的語句。重復(fù)次數(shù)由參數(shù)表中參數(shù)的個(gè)數(shù)決定。參數(shù)表中參數(shù)必須用<>括起來,參數(shù)間用逗號分隔。每重復(fù)一次,依次用參數(shù)表中的參數(shù)代替形式參數(shù)
IRPC IRPC形式參數(shù),字符串 ┆(指令體)ENDM 功能與IRP相同,只是用字符串代替IRP中指令中的參數(shù)表
3.重復(fù)匯編偽指令
這是重復(fù)匯編某一語句序列的偽指令,它可以出現(xiàn)在宏定義中,也可以單獨(dú)出現(xiàn)在源程序中,注意,重復(fù)匯編是在程序匯編期間對某些語句進(jìn)行重復(fù)匯編,而不是在程序運(yùn)行期執(zhí)行重復(fù)操作。重復(fù)匯編偽指令有以下3種形式:
(1)格式1
REPT<表達(dá)式>
┆ ;需重復(fù)的語句組
ENDM
這種宏指令用于重復(fù)塊次數(shù)確定的偽操作,它表示按表達(dá)式所指定的次數(shù),重復(fù)REPT和ENDM之間的語句塊,表達(dá)式的取值范圍是0~65535。
相關(guān)推薦:
2014年計(jì)算機(jī)等級考試過關(guān)技巧
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |