Инструкция LEA или ADD?

Когда я пишу ассемблер, я обычно выбираю форму

lea eax, [eax+4]

Вместо формы ..

add eax, 4

Я слышал, что lea - это инструкция "0-такта" (например, NOP), а «добавить» - нет. Однако, когда я смотрю на сборку, созданную компилятором, я часто вижу, что последняя форма используется вместо первой. Я достаточно умен, чтобы доверять компилятору, так может ли кто-нибудь пролить свет на то, какой из них лучше? Какой из них быстрее? Почему компилятор выбирает последнюю форму, а не первую?

46
задан Michael Petch 17 April 2018 в 01:55
поделиться