方法调用之前的lea指令是什么?

J C*_*per 7 c++ assembly visual-c++

在查看我的反汇编代码时,我看到了很多以下内容:

00B442E9  push        4  
00B442EB  push        3  
00B442ED  lea         ecx,[ebp-24h]  
00B442F0  call        Foo::Bar (0B41127h)  
Run Code Online (Sandbox Code Playgroud)

我理解在通话之前推送参数,但是lea这里做了什么?

Jam*_*lis 12

thiscallVisual C++ for x86使用的调用约定中,this指针在ecx寄存器中传递.该lea指令在调用成员函数之前将this指针复制到ecx寄存器中.

您可以阅读leaStack Overflow问题中的所有指令"LEA指令的用途是什么?"