arm中的宏定義
MACRO
其中, $ 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)值。
例如:
定義宏如下:
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
............
評(píng)論