nobody wrote on Friday, June 24, 2005:
Can anyone tell me the difference between frame pointers and stack pointers??
thanks in advance
nobody wrote on Friday, June 24, 2005:
Can anyone tell me the difference between frame pointers and stack pointers??
thanks in advance
nobody wrote on Friday, June 24, 2005:
As an example, assume you are running an 8bit system and you call a function that declares four 8 bit local variables. Also assume your target processor has a stack pointer (SP) and another register X.
A compiler that uses frame pointers (not all do) might behave as follows:
When the function is entered the first thing that is done is to set X equal to SP. Next SP is decremented by 4 (assumes stack grows down). The space between X and SP is used for the four local variables.
Now X is the function frame pointer. It is used to access the four local variables as X+1, X+2, X+3 and X+4.
SP is the stack pointer (obviously still). The function is free to use the stack. If the function allocates more data on the stack then SP will change but X will remain the same - so the four variables can still be access as offsets from X no matter what value SP holds.