En mirando mi código desensamblado veo un montón de los siguientes:¿Cuál es la instrucción lea antes de hacer una llamada a un método?
00B442E9 push 4
00B442EB push 3
00B442ED lea ecx,[ebp-24h]
00B442F0 call Foo::Bar (0B41127h)
entiendo empujando los parámetros antes de la llamada, pero lo que es la lea
haciendo aquí?
¿Hay una razón por la que no sólo se inserta en la pila así? –
No lo sé. g ++ 'thiscall' simplemente empuja' this' en la pila después del último argumento. Si tuviera que adivinar, alguien probablemente realizó un análisis de rendimiento y decidió que el registro preventivo de 'this' arrojó un mejor rendimiento en casos de uso común. –