我正在阅读 Intel x86_64 指南 vol.1 以刷新内存寻址的工作方式。
仍然,
3.7.5 Specifying an Offset
The offset part of a memory address can be specified directly as a static value (called a displacement) or through an address computation made up of one or more of the following components:
• Displacement — An 8-, 16-, or 32-bit value.
我在 Agner Fog 的汇编指南中读到,当与 (r/e)ax 寄存器一起使用时,64 位绝对寻址是可能的。
所以..
是否可以使用带有 64 位地址的绝对寻址来 jmp、mov 和 call(使用所有寄存器),或者我是否必须继续使用 Base + 位移组合 ?
最佳答案
只有进出累加器的移动具有 64 位绝对地址变量。
所有其他移动仅限于 32 位位移方法。
关于assembly - X86_64 - 汇编 - 为什么位移不是 64 位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31853189/