简介:
MACRO MEND伪指令可以将一段代码定义为一个整体,称为宏指令;
宏是一段独立的程序代码,它是通过伪指令定义的,在程序中使用宏指令即可调用宏;
当程序被汇编时,汇编程序将对每个调用进行展开,用宏定义取代源程序中的宏指令;
在源程序被编译时,汇编器将宏调用展开,用宏定义中的指令序列代替程序中的宏调用,并将实际参数的值传递给宏定义中的形式参数;
MACRO、MEND伪指令可以嵌套使用;
语法:
MACRO
{$标号} 宏名 {$参数1, $参数2, ... ...}
指令序列
MEND
备注:
- {$标号} 属于可选项
{$标号} 在宏指令被展开时,标号会被替换为用户定义的符号- {$参数1, $参数2, … …} 属于可选项
当宏指令被展开时,这些参数被相应的值替换- 包含在MACRO和MEND之间的指令序列称为宏定义体
优点:
可以在程序中通过宏指令多次调用该段代码;
宏指令的使用方式和功能与子程序有些相似,子程序可以提供模块化的程序设计、节省存储空间并提高运行速度;
缺点:
使用子程序结构时需要保护现场,从而增加了系统的开销;
在代码较短且需要传递的参数较多时,可以使用宏指令代替子程序;
示例:
MACRO
MOV_PC_LR
[ THUMBCODE
bx lr
|
mov pc,lr
]
MEND