108|0

125

帖子

1

TA的资源

一粒金砂(高级)

楼主
 

【读书】《RISC-V开放架构设计之道》3.乘法和除法指令集RV32M [复制链接]

这一篇帖子简单说下RV中的乘除法,RV32M是RISC-V架构中的一个标准扩展指令集,它为RV32I基础整数指令集添加了乘法和除法操作。RV32M扩展包含了一系列用于执行乘法、除法和相关运算的指令,这些指令对于执行算术密集型任务非常有用。乘法和除法指令集(RV32M)作为RV32I的扩展指令集,指令相对较少,如图:

 

指令格式

RV32M指令通常使用R型(Register)格式,该格式包含三个寄存器操作数(rs1、rs2和rd),以及一个操作码,用于指示要执行的具体乘法或除法操作。

这个用法我推荐看老狼的帖子:https://www.cnblogs.com/mikewolf2002/p/9872287.html写的更详细,我这里不再赘述

指令列表

乘法指令

mul rd, rs1, rs2  ,用法是寄存器 [rs2]乘以寄存器 [rs1],乘积写入寄存器x[rd]中。

乘法指令有:

mul

:无符号乘法,结果为32位。

mulh

:无符号乘法,结果的高32位。

mulhsu

:一个操作数为无符号,另一个为有符号的乘法,结果的高32位。

mulhu

:两个操作数均为无符号的乘法,结果的高32位。

mulhusu

:32位有符号-无符号乘法,结果为32位。这个比较特殊: x[rs2]为无符号数,其他和mulhu相同

 

除法指令

div rd, rs1, rs2 ,用法是寄存器 x[rs1]除以寄存器 x[rs2],向零舍入,将这些数视为二进制补码,把商写入 x[rd]。

除法指令有:

div

:无符号除法,结果为32位。

divu

:有符号除法,结果为32位。

rem

:无符号除法的余数,结果为32位。

remu

:有符号除法的余数,结果为32位。

 

结语

和ARM不同的是,ARM长久以来只有乘法指令,除法指令到2005年才被添加。乘法指令用于执行快速的硬件乘法操作,这对于数字信号处理、图形处理和其他需要大量乘法的应用至关重要。况且RV32M作为一个扩展指令,可以选择性的添加到RV32I中,这意味着它可以在不需要乘除法操作的场景中省略,以节省硬件资源。

 

 

此帖出自编程基础论坛
点赞 关注
个人签名

没用比没有强

 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表