当前位置: 首页 > news >正文

免费的推广网站有哪些百度人气榜排名

免费的推广网站有哪些,百度人气榜排名,合肥房产网官网,网站建设主管RISC-V体系结构定义了可选的浮点扩展#xff0c;分别称为RVF、RVD和RVQ#xff0c;用于操作单精度、双精度和四倍精度的浮点数。RVF/D/Q定义了32个浮点寄存器#xff0c;f0到f31#xff0c;它们的宽度分别为32位、64位或128位。当一个处理器实现了多个浮点扩展时#xff0…RISC-V体系结构定义了可选的浮点扩展分别称为RVF、RVD和RVQ用于操作单精度、双精度和四倍精度的浮点数。RVF/D/Q定义了32个浮点寄存器f0到f31它们的宽度分别为32位、64位或128位。当一个处理器实现了多个浮点扩展时它使用浮点寄存器的低位部分来执行低精度的指令。f0到f31与程序也称为整数寄存器x0到x31是分开的。与程序寄存器一样浮点寄存器也按照约定用于某些特定的目的 RISC-V的浮点指令分为以下几类 - 浮点加载和存储指令用来在内存和浮点寄存器之间传输浮点数。例如FLW指令从内存加载一个单精度浮点数到浮点寄存器FSW指令将一个单精度浮点数从浮点寄存器存储到内存。 - 浮点计算指令用来在浮点寄存器之间进行浮点数的加、减、乘、除、平方根等运算。例如FADD.S指令将两个单精度浮点数相加FDIV.D指令将两个双精度浮点数相除。 - 浮点转换指令用来在不同的浮点数格式或整数格式之间转换浮点数。例如FCVT.S.D指令将一个双精度浮点数转换为一个单精度浮点数FCVT.W.S指令将一个单精度浮点数转换为一个32位整数。 - 浮点比较指令用来在浮点寄存器之间进行浮点数的相等、小于、小于等于等比较并将布尔结果记录在整数寄存器中。例如FEQ.S指令判断两个单精度浮点数是否相等FLT.D指令判断两个双精度浮点数是否小于。 - 浮点移动指令用来在整数寄存器和浮点寄存器之间传输数据不改变数据的位模式。例如FMV.X.W指令将一个单精度浮点数从浮点寄存器移动到整数寄存器FMV.W.X指令将一个32位整数从整数寄存器移动到浮点寄存器。 - 浮点类别化指令用来判断一个浮点数是否属于某个特定的类别如正无穷、负无穷、非数字NaN等并将布尔结果记录在整数寄存器中。例如FCLASS.S指令将一个单精度浮点数的类别编码为一个12位的位向量并放入整数寄存器。 riscv # RISC-V floating-point program to calculate pi # using the Gregory-Leibniz series # pi/4  1 - 1/3  1/5 - 1/7  ... # f0: the result (pi) # f1: the current term # f2: the denominator # f3: the sign (-1 or 1) # f4: the constant 4.0 # f5: the constant 1.0 # f6: the constant -1.0 # t0: the loop counter.datan: .word 1000000 # number of terms to compute.text# initialize registersflw f4, 4.0 # f4  4.0flw f5, 1.0 # f5  1.0flw f6, -1.0 # f6  -1.0fmv.s f0, f5 # f0  1.0 (result)fmv.s f1, f5 # f1  1.0 (term)fmv.s f2, f5 # f2  1.0 (denominator)fmv.s f3, f5 # f3  1.0 (sign)lw t0, n # t0  n (loop counter)loop:# update the resultfsub.s f0, f0, f1 # f0  f0 - f1# update the termfadd.s f2, f2, f4 # f2  f2  4.0fdiv.s f1, f3, f2 # f1  f3 / f2# update the signfneg.s f3, f3 # f3  -f3# update the loop counteraddi t0, t0, -1 # t0  t0 - 1# check the loop conditionbnez t0, loop # if t0 ! 0, go to loop# multiply the result by 4fmul.s f0, f0, f4 # f0  f0 * 4.0# return the result in a0fcvt.w.s a0, f0 # a0  (int)f0 这个程序示例是用RISC-V的单精度和双精度浮点指令来计算圆周率近似值的。它使用了Gregory-Leibniz级数这一般项是(-1)^n / (2n1)它的和等于pi/4。也就是说pi/4 1 - 1/3 1/5 - 1/7 …。这个程序使用了递归函数来计算这个级数的前n项的和其中n是一个全局变量可以在程序中修改。 它的功能是将数组中的每个元素加上10并将结果存回数组中。它的主要步骤如下 首先代码在s0寄存器中存放了数组scores的基地址这个数组有200个元素每个元素占4个字节。代码还在s1寄存器中初始化了一个循环计数器i为0在t2寄存器中存放了一个循环终止条件200在t3寄存器中存放了一个常数10在ft0浮点寄存器中存放了一个单精度浮点数10.0。然后代码进入一个for循环每次循环都对数组中的一个元素进行操作。循环的条件是i 200如果不满足就跳转到done标签处结束程序。在循环体中代码首先计算数组中第i个元素的地址方法是将i左移2位相当于乘以4然后加上s0基地址。这个地址被保存在t3寄存器中。然后代码使用flw指令从t3寄存器指向的内存地址加载一个单精度浮点数到ft1浮点寄存器中这个浮点数就是scores[i]。接着代码使用fadd.s指令将ft1和ft0两个浮点寄存器中的值相加并将结果保存在ft1中。这相当于执行了scores[i] scores[i] 10.0。然后代码使用fsw指令将ft1寄存器中的值存储到t3寄存器指向的内存地址中这相当于将修改后的scores[i]写回数组中。最后代码使用addi指令将s1寄存器循环计数器i加上1并跳转到for标签处继续下一次循环。
http://www.zqtcl.cn/news/945435/

相关文章:

  • 上海专业的网站吕梁做网站公司
  • 网站视频链接国际物流网站模板
  • 用asp.net和access做的关于校园二手网站的论文网站环境搭建好后怎么做网站
  • 如何查网站的外链哈尔滨微信网站开发
  • 洛阳设计网站公司建设银行网站 购买外汇
  • 做视频网站的备案要求吗给工厂做代加工
  • 网站建设技术外包西安推荐企业网站制作平台
  • 建立一个做笔记的网站石家庄网站优化
  • 服务器创建多个网站吗中铁雄安建设有限公司网站
  • 建湖建网站的公司网站建设人工费
  • 沈阳公司网站设计公司怎么投放广告
  • 上海哪家做网站关键词排名如何做简洁网站设计
  • 网站维护的内容seo网站关键词优化哪家好
  • 东阳市网站建设西安做网站选哪家公司
  • 宁津网站开发万能应用商店下载
  • 专业制作标书网站地图优化
  • 广州建网站兴田德润团队什么是网络营销详细点
  • win7建网站教程wordpress chrome插件开发
  • 免费行情软件网站下载视频公司介绍ppt制作模板
  • wordpress快速建站wordpress短代码可视化
  • 餐饮型网站开发比较好看的网页设计
  • 网站管理包括潍坊网站建设优化
  • 南开集团网站建设网站服务器搭建
  • 网络的最基本定义泰安seo网络公司
  • 国外比较好的资源网站请人做外贸网站应注意什么问题
  • 人网站设计与制作什么是销售型网站
  • 最简单网站开发软件有哪些企业电子商务网站建设问题
  • 玉林网站制作简单的网站制作代码
  • 滨州建设厅网站长沙好的做网站品牌
  • 教务系统网站建设模板下载为网站开发