命令セット・アセンブリ

ABI(アプリケーションバイナリインターフェース)の説明として正しいものはどれか。

  1. Aソースコードのレベルで、関数の名前と引数の型を定めた約束
  2. BCPUの命令の種類とビットの並びだけを定めた約束
  3. C呼び出し規約やデータ型の大きさ・整列など、機械語のレベルでプログラム同士を結びつけるための約束
答えと解説を見る

正解:C. 呼び出し規約やデータ型の大きさ・整列など、機械語のレベルでプログラム同士を結びつけるための約束

ABIは、コンパイル済みのプログラムやライブラリが一緒に動くための機械語レベルの約束で、呼び出し規約、intやlongやポインタの大きさ、構造体の整列、システムコールの呼び方などを含みます。APIはソースコードで関数の使い方を決めるもので、APIが同じでもABIが違えば、作り直さないとライブラリは使えません。同じRISC-VのISAでも、OSや用途によってABIが違うことがあります。

  • A. それはAPI(アプリケーションプログラミングインターフェース)です。
  • B. それはISAで、ABIはその上の約束です。
  • C. 正しい。コンパイル済みのコード同士の約束です。
この分野を解く 分野ページへ

命令セット・アセンブリのほかの問題

  1. C言語の関数ポインタを使った呼び出し「(*fp)(x)」は、RISC-Vでは一般にどの命令で行われるか。
  2. 同じ命令セットアーキテクチャ(ISA)を採用した2つのCPUについて正しいものはどれか。
  3. RISC-Vのようなロード・ストア・アーキテクチャの特徴として正しいものはどれか。
  4. RISC-Vのレジスタx0(zero)の性質として正しいものはどれか。
  5. RISC-VのRV32I(32ビットの基本整数命令セット)が持つ汎用の整数レジスタとして正しいものはどれか。