调用约定

1、C语言调用约定

函数声明使用 __cdecl 修饰符。
void __cdecl Foo(int a, int b);
将参数从右至左压入堆栈,执行结束后,以 ret 返回,由“调用者”恢复堆栈。
push 2
push 1
call _Foo
add esp,8

2、标准调用约定

函数声明使用 __stdcall 修饰符。
void __stdcall Foo(int a, int b);
将参数从右至左压入堆栈,执行结束后,以 ret 8 返回,Foo 函数自身恢复堆栈。
push 2
push 1
call _Foo@8

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注