指令集與組合語言

下列何者是RISC-V指令「lw t0, 8(sp)」的動作?

  1. A將t0的值寫入sp加8之位址的4個位元組
  2. B從sp的值加8之位址讀取4個位元組,放入t0
  3. 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. 位移是相加,不是相乘。
練習這個領域 前往領域頁面

指令集與組合語言的其他題目

  1. 在RISC-V的條件分支指令「beq a0, a1, label」中,分支目標label的位址是如何表示的?
  2. 下列何者是分支或跳躍使用PC相對定址的優點?
  3. 關於RISC-V的基本指令與x86指令的長度,下列何者正確?
  4. 下列何者最適合作為指令採用固定長度的優點?
  5. 在RISC-V的指令中,指定暫存器的欄位(rd、rs1、rs2)各為5位元。下列何者是其理由?