我给出了以下代码:
#include <stdio.h>
#include <stdlib.h>
int A(int x, int y);
int B(int x, int y);
int *FP;
int main(int argc, char *argv[], char *env[]){
int a, b, c;
printf("enter main\n");
A(a,b);
printf("exit main\n");
return 0;
}
int A(int x, int y)
{
int d, e, f;
printf("enter A\n");
d = 4; e = 5; f = 6;
B(d,e);
printf("exit A\n");
}
int B(int x, int y)
{
int u, v, w;
printf("enter B\n");
u = 7; v = 8; w = 9;
asm("movl %ebp, FP"); // set FP = CPU's %ebp register
//Write C code to question here
printf("exit B\n");
}
我要求:
我不知道如何开始,并想知道我是否可以得到一些建议/提示。由于FP已经指向堆栈帧,它会是printf("%p", &FP)
吗?非常感谢所有帮助。