C++ 在x86程序集中这是一种什么样的调用约定?
我已经知道如何在c/c++中调用约定。 不幸的是,我在反转某些汇编代码时遇到了一个难题C++ 在x86程序集中这是一种什么样的调用约定?,c++,c,assembly,x86,C++,C,Assembly,X86,我已经知道如何在c/c++中调用约定。 不幸的是,我在反转某些汇编代码时遇到了一个难题 ........ mov edx, edi push esi mov ecx, edx call func1 add esp, 4 ...... 这是我的密码。 起初,我猜func1是\uu fastcall函数。 但使用\u fastcall函数,被调用方清理堆栈。 func1不会清理堆栈,而调用者会清理堆栈。它是标准的\u thiscall、ecx中的对象指针和堆栈上传递的参数(只有一个)。没有明显的错
........
mov edx, edi
push esi
mov ecx, edx
call func1
add esp, 4
......
这是我的密码。
起初,我猜func1
是\uu fastcall
函数。
但使用\u fastcall
函数,被调用方
清理堆栈。
func1
不会清理堆栈,而调用者会清理堆栈。它是标准的\u thiscall
、ecx中的对象指针和堆栈上传递的参数(只有一个)。没有明显的错误。此调用是调用方清理,与cdecl相同。C++也支持VARARGS。@微软的文档不共享它的观点。请分享更多的代码,以及序号/结尾的<代码>函数1>代码>。这不是“调用”——它不使用EDX,也不使用这个调用堆栈清除调用,而不是调用。