我正在学习x86,想知道.align指令的作用以及它如何有用。
Oracle参考手册中说:
.align指令使下一个生成的数据对整数字节取模对齐。Integer必须是正整数表达式,且必须是2的幂。如果指定了pad,则pad是用于填充的整数字节值。文本段的pad默认值为0x90(nop);其他段的pad默认值为零(0)。
但我不确定它是什么意思。你能否提供更多关于它的阅读材料或简要说明并举例说明?
我正在学习x86,想知道.align指令的作用以及它如何有用。
Oracle参考手册中说:
.align指令使下一个生成的数据对整数字节取模对齐。Integer必须是正整数表达式,且必须是2的幂。如果指定了pad,则pad是用于填充的整数字节值。文本段的pad默认值为0x90(nop);其他段的pad默认值为零(0)。
但我不确定它是什么意思。你能否提供更多关于它的阅读材料或简要说明并举例说明?
.string "ab\0"
; this next address is 3
对抗
.string "ab\0"
.align 4 # sometimes interpreted as 2**n, so, .align 2
; this next address is 4, and would still be 4 if the string was just "a"