スタックフレームとは
すたっくふれーむ
関数が呼ばれるたびにスタック上に確保する領域。戻り先、保存したレジスタ、局所変数などを置き、関数から戻るときに解放する。
この用語の分野: 命令セット・アセンブリ
すたっくふれーむ
関数が呼ばれるたびにスタック上に確保する領域。戻り先、保存したレジスタ、局所変数などを置き、関数から戻るときに解放する。
この用語の分野: 命令セット・アセンブリ
さらに呼び出し先保存のレジスタも使わなければ、スタックフレームを作る必要すらありません。
ほかの関数を呼ばない関数(葉関数、リーフ関数)では、raをスタックに保存しなくてよい場合が多い。その理由として正しいも…spを16減らすと、新しいspから元のspまでの16バイトが、この関数のスタックフレームになり、戻り先や保存したレジスタ、局所変数を置けます。
RISC-Vの関数の先頭で「addi sp, sp, -16」を実行する目的として正しいものはどれか。1行目でspを16減らしてスタックフレームを確保し、2行目で戻り先のraを、3行目で呼び出し先保存のs0をフレームに書き込んでいます。
上のコードは、ある関数の先頭(プロローグ)である。この部分が行っていることとして正しいものはどれか。葉関数 命令セットアーキテクチャ(ISA) スタックポインタ アセンブラ 圧縮命令 アドレッシングモード ABI(アプリケーションバイナリインターフェース) 疑似命令 条件コード 即値