Почему инструкции по сборке могут содержать умножения в инструкции «lea»?

Я работаю над частью приложения очень низкого уровня, в которой производительность является критической.

Исследуя сгенерированную сборку, я заметил следующую инструкцию:

<code>lea eax,[edx*8+8]
</code>

Я привык видеть дополнения при использовании ссылок на память (например, [edx + 4]), но это первый раз, когда я вижу умножение.

Does this mean that the x86 processor can perform simple multiplications in the lea instruction? Does this multiplication have an impact on the number of cycles needed to execute the instruction? Is the multiplication limited to powers of 2 (I would assume this is the case)?

Заранее спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос