add
, sub
, addi
and
, or
, xor
, andi
, ori
, xori
sll
(Shift Left Logical) 左移srl
(Shift Right Logical) 右移sra
(Shift Right Arithmetic) 算術右移slli
, srli
, srai
:對應的 immediate 操作版本slt
, sltu
, slti
, sltiu
slt
和 sltu
用於符號和無符號數的比較。slti
和 sltiu
則是 immediate 版本。slt x5, x6, x7
的意思是:
x6 < x7
,那麼 x5
被設置為 1;否則,設為 0。slt
:操作數被視為有符號數。sltu
:操作數被視為無符號數。slti
和 sltiu
,用於 immediate 比較。0b1111 1111 1111 1101
。slli x11, x12, 2
x12
中的數值向左移動 2 位,結果存入 register x11
。0b0000 0000 0000 0000 0000 0000 0000 0010
(表示數值 2)0b0000 0000 0000 0000 0000 0000 0000 1000
(表示數值 8)<<
操作符。srai x10, x10, 4
x10
中的值是 0b1111 1111 1111 1111 1111 1111 1110 0111
(表示 -25)。srai x10, x10, 4
的結果是 0b1111 1111 1111 1111 1111 1111 1111 1110
(表示 -2)。lw x5,12(x7)
:將 x7 解釋為地址並加上 12,從該位置讀取下一個 4 字節的數據,將結果儲存於 x5。sw x5,12(x7)
:將 x7 解釋為地址並加上 12,用 x5 中的值覆蓋該位置的 4 字節數據。g = h + A[3]
。
lw x10,12(x15)
和 add x11,x12,x10
,x15 是指向 A[0] 的指標,偏移量是 12。A[10] = h + A[3]
。
lw x10,12(x15)
, add x10,x12,x10
, sw x10,40(x15)
。lw
, sw
),RISC-V 還支持位元組傳輸:
load byte: lb
store byte: sb
load/store half-word: lh, sh
lb x10,3(x11)
,從 x11 為地址的地方加上 3,讀取下一個位元組數據,並將結果儲存在 x10。lbu
, lhu
),使用零擴展來填充 register。