指令集與組合語言
下列何者是對ABI(應用程式二進位介面)的正確說明?
- A在原始碼層級,規定函式名稱與引數型別的約定
- B只規定CPU的指令種類與位元排列的約定
- C規定呼叫慣例、資料型別的大小與對齊等,在機器語言層級將程式之間連結起來的約定
查看答案與解析
正確答案:C. 規定呼叫慣例、資料型別的大小與對齊等,在機器語言層級將程式之間連結起來的約定
ABI是讓編譯完成的程式或函式庫能一起運作的機器語言層級的約定,包含呼叫慣例、int、long與指標的大小、結構體的對齊、系統呼叫的呼叫方式等。API是在原始碼層級規定函式使用方式的東西,即使API相同,只要ABI不同,函式庫不重新製作就無法使用。即使是相同的RISC-V ISA,依作業系統或用途不同,ABI也可能不同。
- A. 那是API(應用程式介面)。
- B. 那是ISA,ABI是建立在其上的約定。
- C. 正確。是編譯完成的程式碼之間的約定。