抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

实验目的

通过对Win32平台下C语言程序中函数调用的分析,熟练掌握Win32平台下利于栈帧进行函数参数传递的方式,以及函数调用与返回过程。

实验内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#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;
}

实验要求

  1. 在VC2010中,使用release模式编译上述源程序。

  2. 在Win10下使用Ollydbg软件对编译后的执行程序进行动态跟踪调试。

  3. 记录main()函数和add()函数被调用时栈帧的产生,以及调用结束后栈帧的撤销过

实验结果

请在此处绘制本实验的栈帧产生与撤销过程,并且必须以字节为单位,标注OD中的真实地址、地址中相应存放的16进制数,以及标注EBP、ESP的值。

评论