在 x86 和 x86_64 中指定地址时,位移和标量乘数允许的大小是多少?

What are the sizes allowed for the displacement and scalar multiplier when specifying an address in x86 and x86_64?

在以下示例中,使用 AT&T 语法:

movq 8(%rdx, %rcx, 4), %rax

或使用 Intel 语法:

mov rax, [rdx + 8 + rcx * 4]

"displacement" 是 8,"scalar multiplier" 是 4。x86 中这些立即数的大小限制是什么?他们在 x86_64 中是什么?

感谢 Jester,他在评论中回答:

Displacement can be 32 bit and scale factor 1,2,4 or 8.