編譯器
關於中介表示之一的三位址碼(three-address code)的特徵,下列何者正確?
- A一個指令中可以含有任意多個運算或括號
- B一個指令最多由3個位址與1個運算構成
- C位址一定要寫記憶體的實體位址
查看答案與解析
正確答案:B. 一個指令最多由3個位址與1個運算構成
三位址碼會把複雜的運算式,分解成每個只有一個運算的簡單指令序列。例如 x = (a + b) * c 會變成 t1 = a + b 與 x = t1 * c 兩條,一條指令中出現的是結果與兩個運算元,最多3個位址。中間的值會給予暫時的名稱(t1等)。如此一來,計算的順序變得明確,也容易進行最佳化及轉換為CPU的指令。位址是變數或暫時的名稱,不是實體位址。
- A. 一條指令中只有一個運算。
- B. 正確。是由最多3個位址與1個運算構成的指令序列。
- C. 位址是變數或暫時的名稱,不是實體位址。