ZHCU947E June 2015 – January 2023
汇编语言程序中的所有标签都必须是唯一的。其中也包括宏中的标签。如果宏会扩展多次,其标签也要多次定义。多次定义一个标签是非法的。宏语言提供一种在宏中定义标签的方法,可使标签唯一化。只需在每个标签后跟一个问号,汇编器会将问号替换为一个句点,后跟一个唯一的数字。扩展宏时,您不会在列表文件中看到这些数字。您的标签显示时带有问号,与宏定义中的相同。您无法将些标签声明为全局标签。请参阅GUID-B02DF0C9-DB3B-401C-B1DE-E3857FBD1F97.html#GUID-B02DF0C9-DB3B-401C-B1DE-E3857FBD1F97进一步了解标签。
唯一标签的语法为:
label ? |
宏中的独特标签展示了了如何在宏中生成唯一标签。标签长度上限缩短,为唯一后缀留出空间。例如,如果宏的扩展次数少于 10 次,标签长度上限为 126 个字符。如果宏的扩展次数在 10 次到 99 次之间,标签长度上限为 125 个字符。具有唯一后缀的标签显示在交叉列表文件中。要获得交叉列表文件,请在调用汇编器时使用 --asm_cross_reference_listing 选项(请参阅GUID-6D232F5B-6D0B-49D3-8A5F-D7BCBC588AC0.html)。
1 min .macro x,y,z
2
3 MV y,z
4 || CMPLT x,y,y
5 [y] B l?
6 NOP 5
7 MV x,z
8 l?
9 .endm
10
11
12 00000000 MIN A0,A1,A2
1
1 00000000 010401A1 MV A1,A2
1 00000004 00840AF8 || CMPLT A0,A1,A1
1 00000008 80000292 [A1] B l?
1 0000000c 00008000 NOP 5
1 00000010 010001A0 MV A0,A2
1 00000014 l?
LABEL VALUE DEFN REF
.TMS320C60 00000001 0
.tms320C60 00000001 0
l$1$ 00000014' 12 12