7

我想将$tn寄存器中的两个值相除。

我必须将这两个值相除以获得双倍结果,但该函数div仅返回该除法的整数部分,有人可以帮忙吗?

我需要将$t1and转换$t2$f0and$f2吗?

我怎么做?

li $t1,2 
li $t2,5 

div $f0,$t2,$t1

这给了我一个错误,因为它需要一个$tn值而不是一个$fn值......

4

1 回答 1

17

您必须将存储在通用寄存器中的整数移动并转换为浮点或双精度寄存器。

假设您的号码存储在 中$a1,要转换为双对 ( $f12, $f13),您必须发出:

  mtc1.d $a1, $f12
  cvt.d.w $f12, $f12

并将其转换为单精度浮点 ( $f12) 你会这样做:

  mtc1 $a1, $f12
  cvt.s.w $f12, $f12

然后可以使用div.dordiv.s进行浮点除法,得到浮点结果。

于 2013-05-20T16:56:21.280 回答