0

为什么堆栈指针(esp / rsp)不能用作索引寄存器,例如[esi + esp*4]

4

1 回答 1

3

这就是指令集的制作方式。ESP(即) 的SIB编码100b已被用来表示1。通常是堆栈指针,因此用作基址寄存器,它确实具有有效的编码。用任何因素对其进行缩放通常没有意义,因此牺牲编码通常不是问题。noneESP


  1. 见表2-3。英特尔® 64 位和 IA-32 架构软件开发人员手册第 2 卷:指令集参考中的32 位寻址形式与 SIB 字节,AZ
于 2015-09-12T12:55:08.940 回答