指令集與組合語言
下列何者是RISC-V的「add」指令與「addi」指令的差異?
- Aadd是加整數,addi是加浮點數
- Badd是加記憶體上的值,addi是加暫存器的值
- Cadd是將暫存器之間相加,addi是將暫存器與寫在指令中的常數(立即值)相加
查看答案與解析
正確答案:C. add是將暫存器之間相加,addi是將暫存器與寫在指令中的常數(立即值)相加
「add rd, rs1, rs2」將兩個暫存器的和放入rd,「addi rd, rs1, imm」則是將暫存器與嵌入指令中的12位元常數(立即值)相加。使用立即值,就不必先將常數準備到暫存器中。RISC-V沒有減法的立即值指令,要做減法時,是像「addi t0, t0, -1」這樣加上負的立即值。
- A. 浮點數的加法是fadd.s等其他指令。
- B. RISC-V的運算指令不直接處理記憶體。
- C. 正確。i是立即值(immediate)的意思。