It starts by setting up a stack frame.
它首先设置一个堆栈框架。
Then you restore the stack frame and return.
之后再恢复堆栈框架并返回。
The prologue sets up the stack frame for the function.
序言为函数设置堆栈框架。
For right now, just know that it sets up the stack frame.
就目前而言,只需知道它将设置堆栈框架就可以了。
It optionally takes a stack frame address as an argument.
它可以有选择地将堆栈帧地址作为参数。
Moves the active stack frame up.
上移活动堆栈帧。
The current stack frame is empty.
目前的堆叠框架是空的。
Moves the active stack frame down.
下移活动堆栈帧。
Gets the module name for this stack frame.
获取此堆栈帧的模块名。
Gets the register set for this stack frame.
获取此堆栈帧的寄存器集。
Evaluates an expression based on the current stack frame.
根据当前的堆栈帧计算表达式。
It never calls another function, so it doesn't need a stack frame.
它不会调用另一个函数,所以不需要堆栈框架。
LR_OFFSET is the offset into the stack frame of the return address.
LR_OFFSET是返回地址的堆栈框架的偏移量。
Calling a method or function pushes a new stack frame onto the stack.
当调用方法或者函数时,会有一个新的元素进栈。
A function that requires a stack frame is called a frame function.
需要堆栈帧的函数称为帧函数。
The stack pointer tells you where the end of your current stack frame is.
堆栈指针给出的是当前堆栈框架的结束位置。
The first part of the stack frame is the non-volatile register save area.
堆栈帧的第一个部分是非易失性寄存器保存区。
All that is left to do is to restore the previous stack frame and return.
剩下要做的只是恢复先前的堆栈框架并返回。
However, it is a good example of how to set up and tear down a stack frame.
不过它却是如何建立和销毁堆栈帧的一个很好的例子。
A function that does not require a stack frame is called a leaf function.
不需要堆栈帧的函数称为叶函数。
If the stack frame is active, this address is the next instruction to execute.
如果堆栈帧处于活动状态,则此地址是要执行的下一条指令。
Most often. the caller knows the location of the called procedure's stack frame.
调用方一般知道被调用方的堆栈帧的位置。
Then the current stack frame is set to that frame (in this case, the second frame).
则当前堆栈帧设置为该帧(在此种情况下,为第二个帧)。
Then the current stack frame is set to that frame (in this case, the second frame).
则当前堆栈帧设置为该帧(在此种情况下,为第二个帧)。
应用推荐