W patrząc na mój zdemontowanym kodu widzę wiele z następujących czynności:Co to jest instrukcja lea przed wywołaniem metody?
00B442E9 push 4
00B442EB push 3
00B442ED lea ecx,[ebp-24h]
00B442F0 call Foo::Bar (0B41127h)
rozumiem popychanie parametrów przed wywołaniem, ale co to za lea
tu robi?
lea
Czy istnieje powód nie jest po prostu odkładany na stos, jak również? –Nie wiem. g ++ 'thiscall' po prostu przesuwa' this' na stos po ostatnim argumencie. Gdybym miał zgadywać, ktoś prawdopodobnie wykonał analizę wydajności i zdecydował, że zapobiegawcze rejestrowanie tego "przyniosło lepszą wydajność w typowych przypadkach użycia. –