标签

标签需要从一行的第一个字符开始。如果该行没有标签,则需要使用空格或制表符分隔符来开始该行。如果有标签,汇编器认为该标签等于相应指令的目标文件中的地址。标签可以用作分支或装载和存储的目标。如果当前行只有标签,汇编器认为标签所表示的地址等于当前段内下一行指令的地址。

在下面的例子中,.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‘开头的字符串
  • 在文件外部使用的标签:可以是不与汇编器关键字重合的任何字符串,名字不能重复。