指令集與組合語言
關於x86的「add eax, [rbx]」這種運算指令可以直接使用記憶體上的值的方式,下列何者正確?
- A指令數可以減少,但一個指令中包含了記憶體的讀取與運算
- B是稱為載入/儲存架構的方式
- C使用記憶體的值的運算,必定與暫存器之間的運算花費相同的時間
查看答案與解析
正確答案:A. 指令數可以減少,但一個指令中包含了記憶體的讀取與運算
在x86中,一個指令就能「從記憶體讀取並相加」,同樣的處理在RISC-V中寫成lw與add兩個指令。雖然指令數與程式碼容易變小,但每個指令的工作量參差不齊,不易以管線處理。因此現在的x86 CPU,會在內部將這類指令拆分為載入與加法這樣的單純操作(微運算,micro-operation)來執行。
- A. 正確。是CISC的特徵之一。
- B. 載入/儲存方式是將記憶體與運算分開的方式。
- C. 因為多了記憶體讀取,所以會花費較多時間。