RV32C RISC-Vマシン語表 (asm15r、抜粋)
※RdはR0以外、R0=0固定
※n18の下位12ビットは0固定
※Rd' = R(d+8) (3bitでR8-R15を指定)
※ >> : 符号なし右シフト、>>> : 符号付き右シフト
※mul/div/remにC命令なし
※MULH:乗算結果の上位, MULHSU:符号付きRm×符号なしRsの上位, MULHU:符号なし乗算結果の上位
※DIVU:符号なし除算, REU:符号なし剰余
※[]後の記号でメモリサイズと符号を表す(W:2byte、L:4byte、C:符号付き1byte、S:符号付き2byte)
※u7:1byte単位のオフセット (4の倍数でなければならない)
※n9/n12:飛び先とのハーフワード(2byte)数の差分
※PUSH: [SP + 4*u8]L = Rs, POP: Rd = [SP + 4*u8]L (スタックポインタは変化しない)
※u8/u10:4byte単位のオフセット
※SP+=n10: n10は16byte単位
※SP = R2
※NOP:なにもしない(no operation) R0+=0
※n32の下位12ビットは0固定
※n32:4096byte単位
※ >> : 符号なし右シフト、>>> : 符号付き右シフト
※[]後の記号でメモリサイズと符号を表す(W:2byte、L:4byte、C:符号付き1byte、S:符号付き2byte)
※オフセットはサイズにかかわらず1byte単位
※Rmの方が小さければ1、そうでなければ0となる
※LTU:符号なし比較
※n21,n13(IF系):飛び先とのハーフワード(2byte)数の差分
※n12(JALR):1byte単位
※CPSID:割り込み禁止 CSRRCI R0, #300, 8
※CPSIE:割り込み許可 CSRRSI R0, #300, 8
比べてみよう、RISC-VとArm、RISC-V対応かんたんマシン語「asm15r」
Cortex-M0 Armマシン語表(asm15)
DATA: Specifications - RISC-V Foundation
Original Text: CC BY ichigojam.net
Modified By みけCAT
Modification: CC BY 4.0 by みけCAT