ZHCU875Z August 2001 – October 2023 SM320F28335-EP
汇编语言程序中的所有标签都必须是唯一的。其中也包括宏中的标签。如果宏会扩展多次,其标签也要多次定义。多次定义一个标签是非法的。宏语言提供一种在宏中定义标签的方法,可使标签唯一化。只需在每个标签后跟一个问号,汇编器会将问号替换为一个句点,后跟一个唯一的数字。扩展宏时,您不会在列表文件中看到这些数字。您的标签显示时带有问号,与宏定义中的相同。您无法将些标签声明为全局标签。请参阅节 4.8.3进一步了解标签。
唯一标签的语法为:
label ? |
宏中的独特标签展示了了如何在宏中生成唯一标签。标签长度上限缩短,为唯一后缀留出空间。例如,如果宏的扩展次数少于 10 次,标签长度上限为 126 个字符。如果宏的扩展次数在 10 次到 99 次之间,标签长度上限为 125 个字符。具有唯一后缀的标签显示在交叉列表文件中。要获得交叉列表文件,请在调用汇编器时使用 --asm_cross_reference_listing 选项(请参阅节 4.14)。
1
2 min .macro x, y, z
3
4 MOV z, y
5 CMP x, y
6 B l?,GT
7 MOV z, x
8 l?
9 .endm
10
11 00000000 min AH, AL, PH
1
1 00000000 2FA9 MOV PH, AL
1 00000001 55A9 CMP AH, AL
1 00000002 6202 B l?,GT
1 00000003 2FA8 MOV PH, AH
1 l?
12
LABEL VALUE DEFN REF
.TMS320C2800 000001 0
.TMS320C2800_FPU32 000000 0
__TI_ASSEMBLER_VERSION_QUAL_ID__ 001c52 0
__TI_ASSEMBLER_VERSION_QUAL__ 000049 0
__TI_ASSEMBLER_VERSION__ 4c4f28 0
l$1$ 000004' 12 11