猿问

下面是关于函数调用的详细过程,求解释!

#include <windows.h>void Test(char* str)
{
char szTitle[30] = "lazycat";
MessageBox(NULL, str, szTitle, 0);
}void main()
{
__asm int 3;
Test("JustTest");
}我主要想知道堆栈中的东西,如ebp、局部变量、函数参数等这些的入栈顺序

动漫人物
浏览 232回答 2
2回答

繁华开满天机

函数调用的过程:1。PUSH 参数2。Push 当前指令地址3。保存原来的ESP4。如果函数又变量那就用ESP-N来为局部变量在堆栈中腾出空间======================此时EBP指向该函数帖的栈底 ,ESP指向函数帖的栈顶而不是整个堆栈的顶和底

波斯汪

当然是函数参数先入栈,然后函数返回地址,然后是bp, 局部变量
随时随地看视频慕课网APP

相关分类

Java
Python
我要回答