指令集與組合語言
下列何者是RISC-V指令「lw t0, 8(sp)」的動作?
- A將t0的值寫入sp加8之位址的4個位元組
- B從sp的值加8之位址讀取4個位元組,放入t0
- C從sp的值乘以8之位址讀取4個位元組,放入t0
查看答案與解析
正確答案:B. 從sp的值加8之位址讀取4個位元組,放入t0
lw是load word的縮寫,是從記憶體載入32位元(4個位元組)的指令。「8(sp)」表示以sp的值為基底再加8的位址,這種位址指定方式稱為基底相對(暫存器間接加位移)。對於堆疊上的變數或結構成員,要以距離基底固定的偏移量進行存取時相當方便。反過來將暫存器的值寫入記憶體的是sw(store word)。
- A. 寫入是sw指令。
- B. 正確。從基底暫存器加位移的位址讀取。
- C. 位移是相加,不是相乘。