Указатель стека как индексный регистр
Почему указатель стека (esp / rsp) не может быть использован в качестве регистра индекса, например [esi + esp*4]
?
1 ответ
Вот как был сделан набор инструкций. Кодировка SIB для ESP
(который 100b
) использовался для обозначения none
вместо 1. Обычно ESP
является указателем стека и, как таковой, используется в качестве базового регистра, который имеет действительную кодировку. Обычно не имеет смысла масштабировать его с учетом какого-либо фактора, поэтому жертвовать этим кодированием, как правило, не проблема.
- Смотрите таблицу 2-3. 32-разрядные формы адресации с байтом SIB в Руководстве разработчика программного обеспечения для архитектур Intel® 64 и IA-32, том 2: Справочник по набору инструкций, AZ