ZHCU875Z August 2001 – October 2023 SM320F28335-EP
符号常数是指值为绝对常数表达式的符号(请参阅节 4.9)。通过使用符号常数,您可以为常数表达式分配有意义的名称。.set 和 .struct/.tag/.endstruct 指令让您可以设置符号常数(请参阅“Define 汇编时常数”)。定义后,符号常数便无法重新定义。
如果您使用 .set 指令来为符号分配值,该符号便会成为符号常数,并可以在需要使用常数表达式的地方使用。例如:
shift3 .set 3
MOV AR1, #shift3
您还可以使用 .set 指令来为寄存器名称等其他符号分配符号常数。在这种情况下,符号常数会成为对应寄存器的同义词:
myReg .set AR1
MOV myReg, #3
下面的例子显示了 .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
array .usect ".ebss", i_len*K ; declare an array of K "items"
.text
MOV array.delta, AR1 ; access array .delta
汇编器还包含很多预定义的符号常数;节 4.8.6中讨论了这些符号常数。