ZHCUAV7Z september 1995 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
初始化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 指令来初始化字。
1 00000000 .space 73h
2 00000000 .bss PAGE, 128
3 00000080 .bss SYMPTR, 4
4 00000074 E3A00056 INST: MOV R0, #056h
5 00000078 0000000A .int 10, SYMPTR, -1, 35 + 'a', INST, "abc"
0000007c 00000080-
00000080 FFFFFFFF
00000084 00000084
00000088 00000074'
0000008c 00000061
00000090 00000062
00000094 00000063
此示例展示了 .long 指令如何初始化字。符号 DAT1 指向保留的第一个字。
1 00000000 0000ABCD DAT1: .long 0ABCDh, 'A' + 100h, 'g', 'o'
00000004 00000141
00000008 00000067
0000000c 0000006F
2 00000010 00000000' .long DAT1, 0AABBCCDDh
00000014 AABBCCDD
3 00000018 DAT2:
在这个示例中,使用 .word 指令来初始化字。符号 WORDX 指向保留的第一个字。
1 00000000 00000C80 WORDX: .word 3200, 1 + 'AB', -0AFh, 'X'
00000004 00004242
00000008 FFFFFF51
0000000c 00000058