При просмотре моего разобранного кода я вижу много следующего:
00B442E9 push 4 00B442EB push 3 00B442ED lea ecx,[ebp-24h] 00B442F0 call Foo::Bar (0B41127h)
Я понимаю, что нужно нажать параметры перед вызовом, но что здесь делает lea
lea
В соглашении о вызовах thiscall, используемом Visual C ++ для x86, указатель this передается в регистр ecx.Эта инструкция lea копирует указатель this в регистр ecx перед вызовом функции-члена.
thiscall
this
ecx
Вы можете прочитать все об инструкции lea в вопросе переполнения стека "Что такоецель инструкции LEA? "
Я думаю, что это просто оптимизированная форма
mov ecx, ebp sub ecx, 24h