🔍
RISC-V 快速查询手册
涵盖 RV32I/RV64I/M/A/F/Zicsr 指令集及完整 CSR 列表 · Based on RISC-V ISA Specification v20260120
47
RV32I 基础指令
12
RV64I 扩展指令
13
M 乘除法指令
22
A 原子操作指令
26
F 浮点指令
6
CSR 操作指令
7
特权指令
60+
CSR 寄存器
扩展名称说明状态
RV32IBase Integer (32-bit)32位整数基础指令集,包含 47 条指令 Ratified
RV64IBase Integer (64-bit)64位整数扩展,在 RV32I 基础上增加 12 条指令 Ratified
MInteger Multiply/Divide整数乘除法:MUL/DIV/REM 及变体 Ratified
AAtomic Instructions原子操作:LR/SC/AMO 系列 Ratified
FSingle-Precision Float单精度浮点,需要 f0–f31 浮点寄存器 Ratified
ZicsrCSR Instructions控制状态寄存器读写指令 Ratified
PrivPrivileged Instructions特权指令:MRET/SRET/WFI/SFENCE.VMA Ratified
PseudoPseudo Instructions汇编器伪指令,由真实指令展开 Assembler
指令集参考
点击扩展标签过滤 · Click extension tabs to filter
全部 All
RV32I
RV64I
M
A
F
Zicsr
Priv
Pseudo
助记符 Mnemonic 扩展 格式 语法 Syntax 说明 Description 操作 Operation
CSR 寄存器参考
Control and Status Registers · RISC-V 最多支持 4096 个 CSR
全部 All
U Unprivileged
S Supervisor
M Machine
D Debug
地址 Address 名称 Name 权限 类别 说明 Description
指令编码格式
RISC-V 32位固定长度指令,共 6 种基础格式

R-type · 寄存器-寄存器运算 (ADD, SUB, AND, OR, XOR, SLL, SRL, SRA, SLT, SLTU...)

31:25
funct7
24:20
rs2
19:15
rs1
14:12
f3
11:7
rd
6:0
opcode

rd = rs1 OP rs2 · funct7[5]=0 (正常), funct7[5]=1 (SUB/SRA)

I-type · 立即数运算/加载/JALR (ADDI, LW, JALR, CSRRW...)

31:20
imm[11:0]
19:15
rs1
14:12
f3
11:7
rd
6:0
opcode

rd = rs1 OP sext(imm[11:0]) · 立即数符号扩展至 XLEN 位

S-type · 存储指令 (SB, SH, SW, SD)

31:25
imm[11:5]
24:20
rs2
19:15
rs1
14:12
f3
11:7
imm[4:0]
6:0
opcode

M[rs1 + sext(imm)] = rs2 · 立即数分两段编码

B-type · 条件分支 (BEQ, BNE, BLT, BGE, BLTU, BGEU)

31:25
imm[12|10:5]
24:20
rs2
19:15
rs1
14:12
f3
11:7
imm[4:1|11]
6:0
opcode

if (rs1 CMP rs2) PC += sext(imm<<1) · 偏移量为 2 字节倍数,±4KiB 范围

U-type · 上位立即数 (LUI, AUIPC)

31:12
imm[31:12]
11:7
rd
6:0
opcode

rd = imm[31:12] << 12 · 20位立即数放入寄存器高位

J-type · 无条件跳转 (JAL)

31:12
imm[20|10:1|11|19:12]
11:7
rd
6:0
opcode

rd = PC+4; PC += sext(imm<<1) · ±1MiB 跳转范围

Opcode 编码表

opcode[6:0]指令类型代表指令
0110111U-typeLUI
0010111U-typeAUIPC
1101111J-typeJAL
1100111I-typeJALR
1100011B-typeBEQ BNE BLT BGE BLTU BGEU
0000011I-typeLB LH LW LBU LHU LD LWU
0100011S-typeSB SH SW SD
0010011I-typeADDI SLTI SLTIU XORI ORI ANDI SLLI SRLI SRAI
0110011R-typeADD SUB SLL SLT SLTU XOR SRL SRA OR AND
0001111I-typeFENCE FENCE.I
1110011I-typeECALL EBREAK CSRRW CSRRS CSRRC CSRRWI CSRRSI CSRRCI
0011011I/R-typeADDIW SLLIW SRLIW SRAIW (RV64I)
0111011R-typeADDW SUBW SLLW SRLW SRAW (RV64I)
0101111R-typeLR.W SC.W AMOSWAP.W AMOADD.W... (A ext)
0000111I-typeFLW FLD (F/D ext)
0100111S-typeFSW FSD (F/D ext)
1000011R4-typeFMADD.S (F ext)
1000111R4-typeFMSUB.S (F ext)
1001011R4-typeFNMSUB.S (F ext)
1001111R4-typeFNMADD.S (F ext)
1010011R-typeFADD.S FSUB.S FMUL.S FDIV.S FSQRT.S FMIN.S FMAX.S...
整数寄存器约定
RISC-V ABI 调用约定 · x0–x31 共 32 个通用寄存器

浮点寄存器 (F/D 扩展)

寄存器ABI名称说明保存者
f0–f7ft0–ft7浮点临时寄存器 Temporary调用者 Caller
f8–f9fs0–fs1浮点保存寄存器 Saved被调用者 Callee
f10–f11fa0–fa1函数参数/返回值 Argument/Return调用者 Caller
f12–f17fa2–fa7函数参数 Argument调用者 Caller
f18–f27fs2–fs11浮点保存寄存器 Saved被调用者 Callee
f28–f31ft8–ft11浮点临时寄存器 Temporary调用者 Caller

舍入模式 (frm/fcsr)

编码缩写舍入方式
000RNERound to Nearest, ties to Even · 就近舍入(偶数优先)
001RTZRound towards Zero · 向零舍入(截断)
010RDNRound Down (towards −∞) · 向下舍入
011RUPRound Up (towards +∞) · 向上舍入
100RMMRound to Nearest, ties to Max Magnitude · 就近舍入(绝对值大者)
111DYNDynamic (use frm register) · 动态(使用 frm 寄存器)