2011-08-04 11 views

Odpowiedz

11

W thiscall wywołującego konwencją stosowaną przez Visual C++ dla platformy x86, wskaźnik this jest przekazywana w rejestrze ecx. Ta instrukcja lea kopiuje wskaźnik this do rejestru ecx przed wywołaniem funkcji składowej.

Można przeczytać o instrukcji w kwestii przepełnienie stosu "What's the purpose of the LEA instruction?"

+0

lea Czy istnieje powód nie jest po prostu odkładany na stos, jak również? –

+1

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. –

2

myślę, że to właśnie zoptymalizowana forma

mov ecx, ebp 
sub ecx, 24h 
Powiązane problemy