ZHCU947E June 2015 – January 2023
符号常数是指值为绝对常数表达式的符号(请参阅GUID-613179DF-4A19-4DBD-8339-941354CDFE7D.html#GUID-613179DF-4A19-4DBD-8339-941354CDFE7D)。通过使用符号常数,您可以为常数表达式分配有意义的名称。.set 和 .struct/.tag/.endstruct 指令让您可以设置符号常数(请参阅“Define 汇编时常数”)。定义后,符号常数便无法重新定义。
如果您使用 .set 指令来为符号分配值,该符号便会成为符号常数,并可以在需要使用常数表达式的地方使用。例如:
sym .set 3
MVK sym,B1
您还可以使用 .set 指令来为寄存器名称等其他符号分配符号常数。在这种情况下,符号常数会成为对应寄存器的同义词:
sym .set B1
MVK 10,sym
下面的例子显示了 .set 指令可以如何与 .struct、.tag 和 .endstruct 指令搭配使用。它会创建符号常数 K、maxbuf、item、value、delta 和 i_len。
K .set 1024 ; constant definitions
maxbuf .set 2*K
item .struct ; item structure definition
value .int ; value offset = 0
delta .int ; delta offset = 4
i_len .endstruct ; item size = 8
array .tag item
.bss array, i_len*K ; declare an array of K "items"
.text
LDW *+B14(array.delta + 2*i_len),A1
; access array [2].delta
汇编器还包含很多预定义的符号常数;GUID-F412EB68-5F15-48C1-8C88-4CD468E6B79F.html#GUID-F412EB68-5F15-48C1-8C88-4CD468E6B79F中讨论了这些符号常数。