以一个简单的函数调用过程为例分析栈帧变化过程
#include<stdio.h>
#include<stdlib.h>
int add(int a, int b)
{
int c = a + b;
return c;
}
int main()
{
int a = 10;
int b = 10;
add(a, b);
system("pause");
return 0;
}
注:
此例中add函数的返回值存在通用寄存器eax中
遇到return c;时先执行
mov eax,dword ptr [c]
再进行第N+1步