命令セット・アセンブリ
RISC-Vの標準の呼び出し規約で、整数の引数と戻り値の受け渡しに使うレジスタとして正しいものはどれか。
- A引数はs0〜s7、戻り値はra
- B引数はa0〜a7、戻り値はa0(とa1)
- C引数はすべてスタック、戻り値はsp
答えと解説を見る
正解:B. 引数はa0〜a7、戻り値はa0(とa1)
RISC-Vの標準の呼び出し規約では、整数の引数を最大8個までa0〜a7(x10〜x17)に入れて渡し、戻り値はa0に、64ビットの値などはa0とa1の2つに入れて返します。メモリより速いレジスタで受け渡すので、関数呼び出しの手間が小さくなります。8個を超える引数はスタックに置きます。浮動小数点の引数はfa0〜fa7を使います。
- A. s0〜は保存用のレジスタ、raは戻り先です。
- B. 正しい。aはargumentの意味です。
- C. 8個まではレジスタで渡します。spはスタックの位置です。