windlx 双精度一维向量相乘 代码

;定义两个双精度浮点数一维向量,然后进行乘法运算。
.data
Vector1: .double 1.2,3.1,3.8,8.5,2.5,1.3,2.4,6.8,7.9,1.8,1.0,4.5,5.2,5.6,8.3,10.4
Vector2: .double 2.4,4.1,5.7,6.8,3.7,7.3,4.4,1.8,5.9,1.9,1.4,4.6,5.7,5.2,8.7,10.9
;结果的输出格式
PrintfFormat: .asciiz "\n\n%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\n\n"
			.align 2
PrintfPar: .word PrintfFormat 
;保存相加结果的空间
Result:    .space 200
.text
.global main
main:
addi r1,r0,0 ;r1作为计数器
addui r2,r0,8 ;r2是常量8
loop:
multu r4,r1,r2 ;r4是当前的偏移位置
subi r3,r1,16 ;判断r1到没到16次
ld f0,Vector1(r4) ;取数组1的值,偶数编号的float寄存器可以保存双精度
ld f2,Vector2(r4) ;取数组2的值
multd f4,f0,f2 ;相乘放到f4中
beqz r3,finish ;如果到了16次那么进行跳转
sd Result(r4),f4 ;f4放到r中
addi r1,r1,1 ;计数器r1++
j loop ;跳转到loop继续循环
finish:
addi r14,r0,PrintfPar ;将结果打印出来
trap 0

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值