ARM Cortex汇编宏定义
在ARM架构(尤其是Cortex-M系列MCU)的汇编中,**宏定义(Macro)**用于复用代码片段,支持参数化编程,简化重复逻辑(如寄存器操作、循环、条件判断等)。以下是ARM汇编宏定义的核心语法、用法及示例:
一、宏定义的基本语法
使用 MACRO
和 MEND
伪指令包裹宏体,通过 参数列表 传递输入值(可选)。
GNU AS(GNU汇编器,如ARM GCC)语法:
.macro 宏名 [参数1, 参数2, ...] ; 定义宏(参数可选,用逗号分隔); 宏体(可包含指令、伪指令、表达式); 引用参数:%1, %2, ...(%0表示宏名本身).endm ; 宏结束
ARM汇编器(如Keil MDK、ADS)语法:
MACRO ; 开始定义宏$宏名 $参数1, $参数2, ... ; 参数前加$,无参数时省略; 宏体,参数用$参数名引用MEND ; 宏结束
二、宏的核心要素
1. 无参数宏(简单代码模板)
; GNU AS示例:定义一个空操作宏(等效NOP)
.macro NOPmov r0, r0 ; 生成1条指令(Cortex-M中NOP实际是MOV自身)
.endm; 调用&