ZHCU875Z August 2001 – October 2023 SM320F28335-EP
可在程序中的任何位置定义宏,但必须先定义宏,然后才能使用宏。宏可以在源文件的开头定义,或在 .copy/.include 文件(请参阅复制源文件)中定义;也可以在宏库中定义。有关宏库的更多信息,请参阅节 6.4。
宏定义可以被嵌套,也可以调用其他宏,但宏的所有元素必须在同一个文件中定义。节 6.9中讨论了嵌套宏。
宏定义是一系列采用以下格式的源语句:
macname | .macro [parameter1] [, ...,parametern ] |
model statements or macro directives | |
[.mexit] | |
.endm |
macname | 指定宏的名称。必须将名称放在源语句的标签字段中。只有宏名称的前 128 个字符有意义。汇编器会将宏名称放在内部操作码表中,并会替换同名的任何指令或先前的宏定义。 |
.macro | 是将源语句标识为宏定义第一行的指令。必须将 .macro 放在操作码字段中。 |
parameter1, parametern |
是作为 .macro 指令操作数出现的可选替代符号。节 6.3中讨论了参数。 |
model statements | 是每次调用宏时执行的指令或汇编器指令。 |
macro directives | 用于控制宏扩展。 |
.mexit | 是一个用作 goto .endm 的指令。当错误测试确认宏扩展失败并且不需要完成宏的其余部分时,.mexit 指令会很有用。 |
.endm | 是终止宏定义的指令。 |
如果要在宏定义中添加注释但不希望 这些注释显示在宏扩展中,请在注释前使用感叹号。如果希望 注释显示在宏扩展中,请使用星号或分号。有关宏注释的更多信息,请参阅节 6.7。
以下示例展示了宏的定义、调用和扩展。