指令集與組合語言

下列何者是對ABI(應用程式二進位介面)的正確說明?

  1. A在原始碼層級,規定函式名稱與引數型別的約定
  2. B只規定CPU的指令種類與位元排列的約定
  3. C規定呼叫慣例、資料型別的大小與對齊等,在機器語言層級將程式之間連結起來的約定
查看答案與解析

正確答案:C. 規定呼叫慣例、資料型別的大小與對齊等,在機器語言層級將程式之間連結起來的約定

ABI是讓編譯完成的程式或函式庫能一起運作的機器語言層級的約定,包含呼叫慣例、int、long與指標的大小、結構體的對齊、系統呼叫的呼叫方式等。API是在原始碼層級規定函式使用方式的東西,即使API相同,只要ABI不同,函式庫不重新製作就無法使用。即使是相同的RISC-V ISA,依作業系統或用途不同,ABI也可能不同。

  • A. 那是API(應用程式介面)。
  • B. 那是ISA,ABI是建立在其上的約定。
  • C. 正確。是編譯完成的程式碼之間的約定。
練習這個領域 前往領域頁面

指令集與組合語言的其他題目

  1. 使用C語言函式指標的呼叫「(*fp)(x)」,在RISC-V中一般是以下列哪個指令進行?
  2. 關於採用相同指令集架構(ISA)的兩顆CPU,下列何者正確?
  3. 下列何者是RISC-V這類載入/儲存架構(load-store architecture)的特徵?
  4. 下列何者是RISC-V暫存器x0(zero)的性質?
  5. 下列何者是RISC-V的RV32I(32位元基本整數指令集)所具備的通用整數暫存器?