指令系统
其中 opcode 表示 7 位指令操作码,其作用是区分不同的指令; 0-6位
funct3 表示 3 位 的功能码,funct7 表示 7 位的功能码,它们可以辅助区分不同种类的指令;
rs1 和 rs2表示两个 5 位的源寄存器;
rd 是 5 位的目的寄存器,指令运算的结果就存储 rd 中;
imm 代表不同长度的立即数,可直接作为操作数使用。
操作码
操作码表示指令的属性功能和执行的指令类型。
地址码
地址码的功能是不同于操作码的,地址码的主要功能是用来表明指令操作的对象,获得被操作对象的地址、操作数的存储地址以及寄存设备地址等。地址码的结构比操作码要更复杂的多,主要包括存储源操作数的地址、存储结果的目的操作数地址、以及将要跳转链接的下一条指令的地址。
-
指令中的地址码:用来描述该指令的操作对象
-
或者直接给出操作数
-
或者指出操作数的存储器地址或寄存器地址(即寄存器名)
-
根据指令中操作码的性质,操作数又分为源操作数和目的操作数;
-
例如:在一般的加法指令中又3个操作数,其中加法和被加数为源操作数,计算结果为目的操作数;
RISCV操作数:
32个寄存器 x0-x31 快速定位数据。在RISCV中,只对寄存器中的数据执行算术运算。
1word = 2字节。
2^61存储字 只能被数据传输指令访问。RISCV使用字节寻址,顺序双字访问
相差8,存储器保存数据结构,数组和换出的寄存器的内容。
算术运算: 加、减、立即数加
三寄存器操作数:加 三寄存器操作数:减 立即数加: 用于加常数