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:
LEAloads 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?