我对 align
属性感到困惑。
我尝试运行以下代码:
section .data
align 4
xs: dw 0xA1A2
ys: db 0xB1, 0xB2, 0xB3, 0xB4
查看每个字节的内容,我预期它应该在内存中是一个连续的块,如下:
for instance: 4 5 6 7 8 9 A B
(addr divisible by 4):[0xA2, 0xA1, 0x0, 0x0, 0xB1, 0xB2, 0xB3, 0xB4]
为了使 ys 的地址能够被 4 整除, 实际操作更像是:
4 5 6 7 8 9
(addr divisible by 4):[0xA2, 0xA1, 0xB1, 0xB2, 0xB3, 0xB4]
显然我对align的工作方式存在误解。 有人能否帮忙澄清一下?
dw
是一个2字节的“词”吗?使用dd 0xa1a2
可以得到你期望的结果,其高2字节为零。 - Peter Cordes