Convert Integer to Double in MIPS

2020-03-02 08:01发布

I want to divide two values that are in $tn registers.

I have to divide these two values to get a double result but the function div only returns the integer part of that division can anyone help out?

Do i need to convert $t1 and $t2 to $f0 and $f2?

How do i do that?

li $t1,2 
li $t2,5 

div $f0,$t2,$t1

This gives me an error because it expects a $tn value not a $fn value...

1条回答
Ridiculous、
2楼-- · 2020-03-02 08:29

You have to move and convert the integer stored in a general purpose register to floating point or double register.

Assuming your number is stored in $a1, To convert to a double pair ($f12, $f13) you have to issue:

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

And to convert it to a single precision float ($f12) you'd do:

  mtc1 $a1, $f12
  cvt.s.w $f12, $f12
查看更多
登录 后发表回答