Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在x86程序集中这是一种什么样的调用约定?_C++_C_Assembly_X86 - Fatal编程技术网

C++ 在x86程序集中这是一种什么样的调用约定?

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中的对象指针和堆栈上传递的参数(只有一个)。没有明显的错

我已经知道如何在c/c++中调用约定。 不幸的是,我在反转某些汇编代码时遇到了一个难题

........
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,也不使用这个调用堆栈清除调用,而不是调用。