实验目的
通过对Win32平台下C语言程序中函数调用的分析,熟练掌握Win32平台下利于栈帧进行函数参数传递的方式,以及函数调用与返回过程。
实验内容
#include "stdio.h"
long add(long *a, long *b)
{
long *x, *y;
x= a, y = b;
return (*x + *y);
}
int main(int argc, char* argv[])
{
long a = 1, b = 2;
printf("%d\n", add(&a, &b));
return 0;
}
实验要求
在VC2010中,使用release模式编译上述源程序。
在Win10下使用Ollydbg软件对编译后的执行程序进行动态跟踪调试。
记录main()函数和add()函数被调用时栈帧的产生,以及调用结束后栈帧的撤销过
实验结果
请在此处绘制本实验的栈帧产生与撤销过程,并且必须以字节为单位,标注OD中的真实地址、地址中相应存放的16进制数,以及标注EBP、ESP的值。