From this answer:
lea eax, [eax*4] == shl eax, 2 ; but without setting flags
So, I think lea
loads the value(not address) of eax
here and lea
does the following things:
- access the value stored in
eax
<<2
- load the calculated value into
eax
But this answer says:
LEA
loads a pointer to the item you're addressing
Does the two conflict? If lea
can only Load Effective Address
, how does it shl
the value? Where do I understand wrong?