This makes it easy for functions to know where their activation record is — they are simply defined in terms of the stack pointer.
这对函数了解自己的活动记录在什么地方提供了方便——它们可以使用堆栈指针的形式简单地进行定义。
All subsequent arguments are accessed by adding the size of a dword variable to the stack pointer (that is, esp + 12, esp + 16, and so on).
在堆栈指针上加上双字变量的大小(即esp +12、esp +16等等),就可以访问所有后续参数。
Dedicated registers are registers that have a predefined, permanent function, like the stack pointer (register 1) and the TOC pointer (register 2).
专用寄存器是那些有预定义的永久功能的寄存器,例如堆栈指针(寄存器1)和TOC指针(寄存器2)。
Since pushing a variable essentially moves the stack pointer by a dword, the stack pointer is adjusted by adding 4 (the size of a dword) to it (line 32).
因为在堆栈中压入一个变量会让堆栈指针移动一个双字,所以给堆栈指针加4(双字的大小)(第32行)。
If a function is executing, then the stack pointer is pointing to the top of the whole stack, which is also the top of that function's activation record.
如果一个函数正在执行,那么堆栈指针就会指向整个堆栈的顶部,这也是该函数活动记录的顶部。
Besides the stack pointer (ESP), what other register points to variables on the stack?
除了栈指针(ESP),还有哪个寄存器指向栈上的变量?
The stack is coordinated with a stack pointer that keeps track of storage and retrieval of each byte or word of information in the stack.
栈和一个栈指针配合工作,栈指针随时指示要存取的每个字或字节信息在栈中的位置。
Therefore, functions using the simplified ABI actually can save, use, and restore non-volatile registers by using negative offsets from the stack pointer.
因此,使用简化ABI 的函数实际上可以通过从堆栈指针开始的负偏移量来保存、使用和恢复非易失性寄存器。
The stack is used during a function call to store local arguments. But in the function, the stack pointer may change because values are stored on the stack.
堆栈常常在函数调用中用于存储本地参数,但在函数中,由于存储在堆栈中的值使得堆栈指针的值常常会发生变化。
堆栈指针损坏。
堆栈指针损坏。
应用推荐