堆栈指针作为索引寄存器

时间:2015-09-12 12:18:32

标签: assembly x86 cpu-registers machine-code addressing-mode

为什么不能将堆栈指针(esp / rsp)用作索引寄存器,如 <enterprise_catalog> <rewrite> <product_url>Mypackage_Mymodule_Model_Catalog_Product_Url</product_url> </rewrite> </enterprise_catalog>

1 个答案:

答案 0 :(得分:3)

这就是指令集的制作方式。 ESP的SIB编码(100b)已用于表示none而不是 1 。通常ESP是堆栈指针,因此用作基址寄存器,它具有有效的编码。用任何因子来缩放它通常没有意义,所以牺牲这种编码通常不是问题。

  1. 表2-3。 Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 2: Instruction Set Reference, A-Z
  2. 中带有SIB字节的32位寻址表