asm align 对齐数据

最大成员dword

data:
  dd 1
  db 2
  align 4
  dw 3
000E0010 - 01 00 00 00                
000E0014 - 02 00 00 00                
000E0018 - 03 00                

align 的宽度超过最大成员宽度,取最大成员宽度,结果和上面的一样

data:
  dd 1
  db 2
  align 8
  dw 3

align的宽度小于等于上一个数据的宽度,则align无效

data:
  dd 1
  dw 2
  align 1
  dw 3
000E0010 - 01 00 00 00                
000E0014 - 02 00                
000E0016 - 03 00                

如果数据已经对齐,则align无效

data:
  dd 1
  dw 2
  dw 3
  align 4
  dw 3
000E0010 - 01 00 00 00                
000E0014 - 02 00                
000E0016 - 03 00                
000E0018 - 03 00                

See also:

  • NASM align
  • 除了你的手动对齐外,编译器还可能做其他优化
原文地址:https://www.cnblogs.com/ajanuw/p/14291766.html