标签
标签需要从一行的第一个字符开始。如果该行没有标签,则需要使用空格或制表符分隔符来开始该行。如果有标签,汇编器认为该标签等于相应指令的目标文件中的地址。标签可以用作分支或装载和存储的目标。如果当前行只有标签,汇编器认为标签所表示的地址等于当前段内下一行指令的地址。
在下面的例子中,.Ltmp0_std是一个标签,块头指令BSTART.STD的汇编方式使其指令编码中的偏移指向标签.Ltmp0_std的位置,即表示下一个块指令的起始。
块头:
...
...
.text
BSTART.STD COND, .Ltmp0_std
addi zero,32, ->t /* 当前块指令的第一条微指令 */
sll t#1, a0, ->t
sra t#1,t#2, ->t
addi zero,32, ->t
sll t#2, t#1, ->t
srli t#1,30, ->t
add a1,t#1, ->a3
...
.Ltmp0_std
BSTART.STD FALL
...
BSTOP
...
...
标签分为两种:仅在文件内部使用的标签和在文件外部使用的标签
- 仅在文件内部使用的标签:这个标签仅在当前文件内生效,其他文件可以使用同名的标签。约定文件内部使用的标签是以’. L‘开头的字符串
- 在文件外部使用的标签:可以是不与汇编器关键字重合的任何字符串,名字不能重复。