スタックフレーム
読み:スタックフレーム
外語:stack frame

 関数呼び出しの際、スタック上に積まれるデータのまとまり。
目次

概要
 Cで関数を呼び出す場合、スタックにはまず関数への引数が積まれる(レジスター渡し以外のもの)。
 次に、リターンアドレスが積まれる。
 必要なら次に、元のスタックフレームの頭を表わすベースポインター(BP)を積む。
 この上に、ローカル変数が積まれる。

特徴
 例えばARMアーキテクチャの場合で、スタックフレーム内に4ワードの作業領域を作る場合、次のようになる。
 レジスターは0から7までを保存する場合の例。
STMFD   SP!,{R0-R7,LR}
SUB     SP,SP,#4*4
.......
LDR     R1,[SP,#0]       ; 1番目のワードを参照
LDR     R2,[SP,#4]       ; 2番目のワードを参照
LDR     R3,[SP,#8]       ; 3番目のワードを参照
LDR     R4,[SP,#16]      ; 4番目のワードを参照
.........
ADD     SP,SP,#4*4
LDMFD   SP!,{R0-R7,PC}

再検索