在Linux - x86平台上的堆栈指针可以实现为。
如果一个函数正在执行,那么堆栈指针就会指向整个堆栈的顶部,这也是该函数活动记录的顶部。
因为在堆栈中压入一个变量会让堆栈指针移动一个双字,所以给堆栈指针加4(双字的大小)(第32行)。
因为在堆栈中压入一个变量会让堆栈指针移动一个双字,所以给堆栈指针加4(双字的大小)(第32行)。
现在是凌晨5:50……你知道你的栈指针在哪儿么?——无名氏。
在堆栈指针上加上双字变量的大小(即esp +12、esp +16等等),就可以访问所有后续参数。
函数可以自由使用288字节的内存,对于不调用其他函数的函数来说,这段内存物理上在堆栈指针之下。
这对函数了解自己的活动记录在什么地方提供了方便——它们可以使用堆栈指针的形式简单地进行定义。