在MIPS中将整数转换为双精度

时间:2013-05-18 19:06:40

标签: integer double mips

我想分割$tn个寄存器中的两个值。

我必须将这两个值除以得到一个双重结果,但函数div只返回该分区的整数部分,任何人都可以帮忙吗?

我是否需要将$t1$t2转换为$f0$f2

我该怎么做?

li $t1,2 
li $t2,5 

div $f0,$t2,$t1

这给了我一个错误,因为它希望$tn值不是$fn值......

1 个答案:

答案 0 :(得分:10)

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

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

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

要将其转换为单精度浮点数($f12),您需要:

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