1 指令集分类
RISC-V的指令集由两部分构成:基础指令与拓展指令,如下图所示
根据寄存器位宽和地址的不同,分为32,64,128三种不同的指令集,字母I表示整数指令集,E表示嵌入式指令集。拓展指令包括:
M:乘除法、取模求余指令
F:单精度浮点指令
D:双精度浮点指令
Q:四倍浮点指令
A:原子操作指令,例如常见的cas(compare and swap)指令
C:压缩指令,主要用于改善程序大小
G:= I+M+A+D+F,表示通用处理器所包含的指令集
2 指令格式
RISC-V指令根据格式可以分为下面6类
用于寄存器-寄存器操作的R类型指令(register)
用于短立即数和访存load操作的I指令(immediate)
用于访存store操作的S型指令(store)
用于条件跳转操作的B类型指令(branch)
用于长立即数的U型指令(unsigned)
用于无条件跳转的J型指令(jump)
指令格式如下图所示:
举例说明:add,表示两个源寄存器相加,addi表示立即数与源寄存器相加