常见的 宏定义 格式如下:
macro 格式:
.macro 宏名 参数名列表 @伪指令.macro定义一个宏
指令序列
.endm @.endm表示宏结束
如果宏使用参数,那么在指令序列中使用该参数时,需要添加前缀“\”。
宏定义时的参数还可以使用默认值。
可以使用.exitm伪指令来退出宏。
例:
.macro SHIFTLEFT a, b
.if \b < 0
MOV \a, \a, ASR #-\b
.exitm
.endif
MOV \a, \a, LSL #\b
.endm
define 格式:
#define 标识符 值
例 1:
#define UND_Stack_Size 0x00000020
#define SVC_Stack_Size 0x00000020
#define ABT_Stack_Size 0x00000020
#define FIQ_Stack_Size 0x00000020
#define IRQ_Stack_Size 0x00040000
#define USR_Stack_Size 0x00200000
例 2:
//如果值比较长,可以使用 \ 来分行写
#define ISR_Stack_Size (UND_Stack_Size + SVC_Stack_Size + \
ABT_Stack_Size + FIQ_Stack_Size + \
IRQ_Stack_Size)