只探究_cdecl调用方式,即默认的调用方式。
下面图说明了参数传递过程
| 。。。。。 |
| 参数n-1 |
| 参数n |
| 返回地址 |
0040D490 push ebp
0040D491 mov ebp,esp
0040D493 sub esp,40h
0040D496 push ebx
0040D497 push esi
0040D498 push edi
0040D499 lea edi,[ebp-40h]
0040D49C mov ecx,10h
0040D4A1 mov eax,0CCCCCCCCh
0040D4A6 rep stos dword ptr [edi]这个过程包括预分配堆栈空间,初始化(Release可能不会初始化,初始化的原因一般是为了调试明了)。
再说说main函数,main函数由
本文探讨了_cdecl调用约定的工作原理及其在函数调用过程中的角色。通过具体实例,展示了参数如何被压入堆栈及堆栈清理的过程,并解释了main函数开始时常见的汇编指令意义。

被折叠的 条评论
为什么被折叠?



