Assembly ';AS';align plus incbin未生成预期的对齐方式

Assembly ';AS';align plus incbin未生成预期的对齐方式,assembly,memory-alignment,binutils,Assembly,Memory Alignment,Binutils,由于数据对齐问题,我无法在实际硬件上工作;由于硬件的工作方式,图像必须按16位对齐 我已尝试通过“.align”指令指定对齐方式: .text .align 2 .globl _vg_lecturehall .globl _vg_sylvie_giggle .globl _vg_club _vg_lecturehall: .align 2 .incbin "build/lecturehall.apg" _vg_sylvie_giggle: .align 2 .incbin "build/s

由于数据对齐问题,我无法在实际硬件上工作;由于硬件的工作方式,图像必须按16位对齐

我已尝试通过“.align”指令指定对齐方式:

.text
.align 2

.globl _vg_lecturehall
.globl _vg_sylvie_giggle
.globl _vg_club

_vg_lecturehall:
.align 2
.incbin "build/lecturehall.apg"

_vg_sylvie_giggle:
.align 2
.incbin "build/sylvie_giggle.apg"

_vg_club:
.align 2
.incbin "build/club.apg"
但是,正如内存映射所示,数据仍然放在奇数地址:

 .text          0x000000000200aa00    0x12aac build/generated_images.o
                0x000000000200aa00                _vg_lecturehall
                0x0000000002012d11                _vg_sylvie_giggle
                0x0000000002014f2b                _vg_club
有人知道哪里做错了吗?
是否有办法确保包含的二进制文件位于偶数地址?

您将标签放在
.align
指令之前。在这一点上,实际上没有特定的对齐-这将取决于前面的
.incbin
生成的字节数是奇数还是偶数。将标签下移一行,以便实际标记包含的数据。

将标签放置在
.align
指令之前。在这一点上,实际上没有特定的对齐-这将取决于前面的
.incbin
生成的字节数是奇数还是偶数。将标签向下移动一行,以便实际标记包含的数据。

问题是将标签放在
.align
指令之前,当然应该将其放在
.align
.incbin
之间。问题是将标签放在
.align
指令之前,当然,您应该将它放在
.align
.incbin
之间。