呼び出し規約とは

よびだしきやく

関数を呼ぶとき、引数や戻り値をどのレジスタやスタックで受け渡すか、どのレジスタを誰が保存するかなどを定めた約束。ABIの重要な一部。

この用語の分野: 命令セット・アセンブリ

解説の中の「呼び出し規約」

「呼び出し規約」が出てくる問題(9問)

  1. 呼び出し規約(コーリングコンベンション)が決められている主な目的はどれか。
  2. RISC-Vの標準の呼び出し規約で、整数の引数と戻り値の受け渡しに使うレジスタとして正しいものはどれか。
  3. RISC-Vの標準の呼び出し規約で、整数の引数が10個ある関数を呼ぶとき、9個目と10個目の引数はどこで渡されるか。
  4. RISC-Vの呼び出し規約で、s0〜s11が「呼び出し先保存(callee-saved)」のレジスタとされている意味として正しいものはどれか。
  5. RISC-Vの呼び出し規約で、t0〜t6は「呼び出し元保存(caller-saved)」のレジスタである。ある関数がt0に入れた値を、別の関数を呼んだ後も使いたいとき、正しい対応はどれか。
  6. RISC-Vの標準の呼び出し規約では、関数に入るときのスタックポインタspを16バイトの倍数にそろえることになっている。その理由として最も適切なものはどれか。
  7. RISC-VのRV32I(32ビットの基本整数命令セット)が持つ汎用の整数レジスタとして正しいものはどれか。
  8. RISC-Vの命令「jal ra, func」の動作として正しいものはどれか。
  9. ABI(アプリケーションバイナリインターフェース)の説明として正しいものはどれか。

関連する用語

ABI(アプリケーションバイナリインターフェース) スタックポインタ 疑似命令 システムコール 命令セットアーキテクチャ(ISA) アセンブラ 圧縮命令 アドレッシングモード 条件コード スタックフレーム

用語集の一覧へ