ZHCU947E June 2015 – January 2023
初始化32 位整数
.intvalue1[, ..., valuen ]
.uintvalue1[, ..., valuen ]
.long value1[, ...,valuen ]
.ulong value1[, ...,valuen ]
.wordvalue1[, ..., valuen ]
.uwordvalue1[, ..., valuen ]
.int、.unint、.long、.ulong、.word 和 .uword 指令将一个或多个值置于当前段的连续字中。每个值单独置于一个 32 位字中,并在字边界上对齐。值 可以是以下任一项:
值可以是绝对表达式或可重定位表达式。如果某个表达式可重定位,则汇编器会生成引用适当符号的重定位条目;然后链接器可以正确修补(重定位)引用。这可使用户使用指向变量或标签的指针来初始化存储器。
如果在这些指令中使用标签,则它会指向初始化的第一个字。
当用户在 .struct/.endstruct 序列中使用这些指令时,它们会定义成员的大小,但不会初始化存储器。请参阅 .struct/.endstruct/.tag 主题。
此示例使用 .int 指令来初始化字。请注意,符号 SYMPTR 将符号的地址置于目标代码中,并生成可重定位的引用(通过在目标字后面附加 - 字符来表示)。
1 00000000 .space 73h
2 00000000 .bss PAGE, 128
3 00000080 .bss SYMPTR, 3
4 00000074 003C12E4 INST: LDW.D2 *++B15[0],A0
5 00000078 0000000A .int 10, SYMPTR, -1, 35 + 'a', INST
0000007c 00000080-
00000080 FFFFFFFF
00000084 00000084
00000088 00000074'
此示例初始化两个 32 位字段并定义 DAT1 以指向第一个位置。生成的 32 位字段的内容为 FFFABCDh 和 141h。
1 00000000 FFFFABCD DAT1: .long 0FFFFABCDh,'A'+100h
00000004 00000141
此示例初始化五个字。符号 WordX 指向第一个字。
1 00000000 00000C80 ;WordX .word 3200,1+'AB',-'AF',0F410h,'A'
00000004 00004242
00000008 FFFFB9BF
0000000c 0000F410
00000010 00000041