例如LEA RAX、[RBX+off]中允许的偏移范围是多少



现在我很确定这是一个基本问题,但我找不到答案。最多可以偏移多少位?

有六种寻址模式支持这种格式。汇编程序将自动选择位移适合的最短寻址模式。这些寻址模式中的三种相关模式是:

  • 寄存器间接,无位移(位移必须为零(
  • 寄存器间接,8位位移(位移必须在−128和127之间(
  • 寄存器间接,32位位移(位移必须在−2147483648和2147483647之间(

编码的位移不可能大于这些寻址模式所支持的位移。如果你需要一个更大的位移,执行算术加载它。例如,做

mov rax, 123456789abcdef0h
lea rax, [rbx+rax]

最新更新