Assembly ';AS';align plus incbin未生成预期的对齐方式
由于数据对齐问题,我无法在实际硬件上工作;由于硬件的工作方式,图像必须按16位对齐 我已尝试通过“.align”指令指定对齐方式: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
.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
之间。