RISC-V 指令格式和6种基本整数指令

B-typed的指令操作由7位opcode和3位funct3决定,指令中具有两个源寄存器和一个12位的立即数,该立即数构成是指令的第32位是imm[12]、第7位是imm[11]、25到30是imm[105]、8到11位是imm[41],同样的,在执行运算时需要把12位立即数扩展到32位,然后再进行运算。例如空操作、停机等指令。地址码的功能是不同于操作码的,地址码的主要功能是用来表明指令操作的对象,获得被操作对象的地址、操作数的存储地址以及寄存设备地址等。...
摘要由CSDN通过智能技术生成

指令格式是指令使用二进制编码表示的结构形式,一般一条指令分为操作码和地址码两部分:

在这里插入图片描述

一、操作码

操作码表示指令的属性功能和执行的指令类型。操作数对应的二进制位数决定了计算机能够实现的最大指令数目。例如,操作码是 7 位的二进制码,计算机能够实现的最大指令数目是 128(2^7)。操作码根据二进制位数是否具有可变性将其细分为固定长度和可变长度两种。

  • 固定长度操作码就是保持二进制位数不变,所有指令的操作码长度都等于某一固定值,并且它们必须在一个字段中。它的优点主要有:规整的指令格式,简化的底层硬件设计,非常短的指令译码时间,提高了计算机系统的整体性能。但是指令的编码效率低,具有很大的信息的冗余度,使代码的总长度大大增加,可扩展性差。RISC- V 采用的方案就是固定长度操作码。

  • 可变长度操作码,也被称作扩展操作码,它是对相关操作码的扩展,可以对操作码的二进制长度进行改变和重新设置,并且可同时存在于多个字段中。可变长度的操作码通常会将特定的字段作为对应的操作码,而剩余的指令部分,会使用扩展的方式对应到地址码。

二、地址码

地址码的功能是不同于操作码的,地址码的主要功能是用来表明指令操作的对象,获得被操作对象的地址、操作数的存储地址以及寄存设备地址等。地址码的结构比操作码要更复杂的多,主要包括存储源操作数的地址、存储结果的目的操作数地址、以及将要跳转链接的下一条指令的地址。下一条指令的地址一般都是隐式存在的,必须通过计算分析才能够得到。根据一条指令中操作数地址数量,将地址码划分成以下几种类型。

1、零地址码

零地址码的指令,仅仅只有一个操作码而没有地址码,其指令格式如下图所示,op代表操作码。零地址码指令无须先设置对应的操作数,这有可能是事先已经设置好了操作数。例如空操作、停机等指令。

在这里插入图片描述

2、一地址码

一地址码的指令,只有一个存储操作数的地址,也是最终处理结果的保存地址, 它也被称作单操作数指令。其指令格式如下图所示,op 代表操作码,rs1 代表操作数地址。例如自增运算,在处理完该地址的操作数之后,将最终处理结果存回原来的地址中。

在这里插入图片描述

3、二地址码

二地址码的指令,也被称作双操作数指令,是当前阶段计算机系统中应用最广泛的。其指令格式如下图所示,op 是操作码,rs1 表示源操作数地址和最终处理结果的存储目的地址,rs2 表示另外一个源操作数地址。

在这里插入图片描述

4、三地址码

三地址码的指令,具有三个地址存放操作数。指令格式如下图所示,op 代表操作码,rs1 代表源操作数地址,rs2 代表另外一个源操作数地址,rd 代表目的操作数地址即存放处理结果的地址。

在这里插入图片描述

三、RISC-V六种基本指令格式

RISC-V 指令格式是一个典型的三操作数,7 位操作码的指令格式。RISC-V 指令集具有六种基本指令格式(R/I/S/B/U/J),如下图所示&#

  • 11
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值