ZHCU947E June 2015 – January 2023
标签必须是放置在第 1 列中的合法标识符(请参阅GUID-2C32AACA-34D4-4CF8-9B66-0591D010769D.html#GUID-2C32AACA-34D4-4CF8-9B66-0591D010769D)。每条指令都可以选择性地设置一个标签。许多指令允许使用标签,有些指令必须使用标签。
标签后面可以跟一个冒号 (:)。冒号不属于标签名称的一部分。如果不使用标签,则第一个字符位置必须包含空格、分号或星号。不能对与前一条指令并行的指令使用标签。
对汇编指令或数据指令使用标签时,会创建一个同名的汇编器符号(GUID-F4717647-3E05-43A5-BF36-B0E2A1AC369F.html#GUID-F4717647-3E05-43A5-BF36-B0E2A1AC369F)。此符号的值是段程序计数器(SPC,请参阅GUID-A827C961-258C-47A1-BA98-895C94036720.html#GUID-A827C961-258C-47A1-BA98-895C94036720)的当前值。此符号表示该指令的地址。在以下示例中,.word 指令用于创建一个包含 3 个字的数组。由于使用了标签,汇编符号 Start 指的是第一个字,且该符号的值将为 40h。
. . . .
. . . .
9 * Assume some code was assembled
10 00000040 0000000A Start: .word 0Ah,3,7
00000044 00000003
00000048 00000007
当一个标签单独出现在一行中时,它指向下一行上的指令(SPC 不递增):
1 00000000 Here:
2 00000000 00000003 .word 3
一行中的标签本身相当于以下写法:
Here: .equ $ ; $ provides the current value of the SPC
如果不使用标签,则第 1 列中的字符必须是空白、星号或分号。