2012-02-06 2 views
1

Я пытаюсь получить хорошее сцепление с инструкцией LEA в x86:x86 инструкция Леа

leal (%edx, %edx, 4), %eax 
leal (%edx, %edx, 2), %eax 

Учитывая эти две строки, я знаю, что:

eax = edx + edx*4

, а затем

eax = edx + edx*2

Два вопроса. Во-первых, если эти инструкции появляются последовательно, как в этом примере, регистр eax перезаписывается после выполнения второй строки? И что именно будет загружено в регистр? Другой адрес? Или это делает арифметику значений, на которые указывают эти регистры?

+2

возможно дубликат [Lea инструкции сборки] (http://stackoverflow.com/questions/9153282/lea-assembly -instruction) – Grizzly

+1

Как насчет загрузки процессоров Intel (AMD) и их чтения? –

+0

Также вы можете много узнать о руководствах по адресу http://www.agner.org/optimize/ – Gigi

ответ

2

Если эти инструкции выглядят последовательно, как в этом примере, регистр eax перезаписывается после выполнения второй строки?

Да (он переписывается после обеих инструкций)

А что именно будет загружен в регистр? Другой адрес?

Адрес памяти описывается EDX + смещение сохраняется как значение в EDX, умноженной на 2

 Смежные вопросы

  • Нет связанных вопросов^_^