Why can assembly instructions contain multiplications in the “lea” instruction?
I am working on a very low level part of the application in which performance is critical. While investigating the generated assembly, I noticed the following instruction: lea eax,[edx*8+8] I am used to seeing additions when using memory references (e.g. [edx+4]), but this is the first time I see a multiplication. 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)? Thanks