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