指令集與組合語言
RISC-V的指令「slli t0, a0, 3」的結果,t0會是a0之值的幾倍?(不考慮溢位)
- A8倍
- B3倍
- C6倍
查看答案與解析
正確答案:A. 8倍
slli(shift left logical immediate)將暫存器的值向左移動指定的位元數,並以0填補空出的低位。在二進位中向左移1位元會變成2倍,所以3位元就是2的3次方=8倍。由於常比乘法指令更快,編譯器會將2的冪次的乘法替換為位移。在計算陣列元素的位址時也經常使用。
- A. 正確。向左移3位元就是2的3次方倍。
- B. 3是位移的位元數,不是倍率。
- C. 每移1位元就變2倍,請以乘法來思考。