新聞中心

arm中的宏定義

作者: 時(shí)間:2016-11-11 來(lái)源:網(wǎng)絡(luò) 收藏
語(yǔ)法格式如下:

MACRO
[$ label] macroname{ $ parameter1, $ parameter,……}
其他指令
MEND
MACRO偽操作標(biāo)識(shí)宏定義的開(kāi)始,MEND標(biāo)識(shí)宏定義的結(jié)束。用MACRO及MEND定義一段代碼,稱(chēng)為宏定義體,這樣在程序中就可以通過(guò)宏指令多次調(diào)用該代碼段。
其中, $ label在宏指令被展開(kāi)時(shí),label會(huì)被替換成相應(yīng)的符號(hào),通常是一個(gè)標(biāo)號(hào)。宏定義中的$label是一個(gè)可選參數(shù),在一個(gè)符號(hào)前使用$表示程序被匯編時(shí)將使用相應(yīng)的值來(lái)替代$后的符號(hào)。
macroname為所定義的宏的名稱(chēng)。
$parameter為宏指令的參數(shù)。當(dāng)宏指令被展開(kāi)時(shí)將被替換成相應(yīng)的值,類(lèi)似于函數(shù)中的形式參數(shù),可以在宏定義時(shí)為參數(shù)指定相應(yīng)的默認(rèn)值。

本文引用地址:http://m.butianyuan.cn/article/201611/316749.htm

例如:

定義宏如下:

MACRO

$label TestBranch$dest, $reg, $cc

$label

CMP $reg,#0

B$cc $dest

MEND

調(diào)用宏的過(guò)程如下:

testTestBranch Nonzero,r0, NE

Nonzero

............

程序匯編后,宏展開(kāi)如下:

test

CMP R0, #0

BNE Nonzero

Nonzero

............



關(guān)鍵詞: arm宏定

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉