スタックフレーム

読み:スタックフレーム
外語: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}
関連する用語
スタック

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club