Указатель стека как индексный регистр

Почему указатель стека (esp / rsp) не может быть использован в качестве регистра индекса, например [esi + esp*4]?

1 ответ

Вот как был сделан набор инструкций. Кодировка SIB для ESP (который 100b) использовался для обозначения none вместо 1. Обычно ESP является указателем стека и, как таковой, используется в качестве базового регистра, который имеет действительную кодировку. Обычно не имеет смысла масштабировать его с учетом какого-либо фактора, поэтому жертвовать этим кодированием, как правило, не проблема.


  1. Смотрите таблицу 2-3. 32-разрядные формы адресации с байтом SIB в Руководстве разработчика программного обеспечения для архитектур Intel® 64 и IA-32, том 2: Справочник по набору инструкций, AZ
Другие вопросы по тегам