ZHCUAQ1F july 2015 – april 2023
声明符号寄存器
.reg symbol1 [, symbol2 , …]
.reg 指令允许您对存储在寄存器中的值使用描述性名称。汇编优化器为您选择一个寄存器,这样它的使用就与为对值进行操作的指令选择的功能单元一致。
.reg 指令仅在过程中有效,即在出现 .proc 和.endproc 指令对或 .cproc 和 .endproc 指令对时有效。
明确声明寄存器对(或 C6600 的四倍字寄存器)是可选的。只有当寄存器应作为一对分配时,才有必要这样做,但它们不是这样使用的。最好使用对/四倍字语法声明寄存器对和四倍字寄存器。下面是一个声明寄存器对的例子:
.regA7:A6
此示例使用与 .proc/.endproc 所示的块移动示例相同的代码,但使用了 .reg 指令:
move .cproc dst, src, cnt
.reg tmp1, tmp2
loop:
LDW *src++, tmp1
MV tmp1, tmp2
STW tmp2, *dst++
ADD -4, cnt, cnt
[cnt] B loop
请注意该示例与 .proc 示例不同:使用 .reg 声明的符号寄存器被分配为机器寄存器。
以下示例中的代码无效,因为 .reg 指令定义的变量不能在定义的过程之外使用:
move .proc A4
.reg tmp
LDW *A4++, top
MV top, B5
.endproc
MV top, B6 ; WRONG: top is invalid outside of the procedure