RV32I

RV32I registers

The user-visible architectural state is:

  • Value of x0/zero is always 0; writes do not change it.
  • 31 read/write data registers x1 .. x31;
  • pc: the program counter register pointing to the start of the current instruction

Instructions must be stored naturally aligned in little-endian byte order.

Instruction classes

RV32I specification describes 47 instructions:

Major opcodes for classes

op[1:0]=11 for all instructions in RV32I.

op[4:2]=000001010011100101110
op[6:5]=00LoadsF-extFencesArithmAUIPCRV64I
op[6:5]=01StoresF-extA-extArithmLUIRV64I
op[6:5]=10F-extF-extF-extF-extF-extRV128I
op[6:5]=11BranchesJALRJALSystemRV128I

Least significant byte of an instruction by class

Byte_3_7_B_F
0_/8_LoadsF-extFences
1_/9_Arithm. (I)AUIPCRV64I
2_/A_StoresF-extA-ext
3_/B_Arithm. (R)LUIRV64I
4_/C_F-extF-extF-ext
5_/D_F-extRV128I
6_/E_BranchesJALRJAL
7_/F_SystemRV128I