【问题标题】:Convert Integer to Double in MIPS在 MIPS 中将整数转换为双精度
【发布时间】:2013-05-13 17:43:39
【问题描述】:

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

我必须将这两个值相除才能得到双倍结果,但函数div 只返回该除法的整数部分,谁能帮忙?

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

我该怎么做?

li $t1,2 
li $t2,5 

div $f0,$t2,$t1

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

【问题讨论】:

    标签: assembly floating-point integer double mips


    【解决方案1】:

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

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

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

    要将其转换为单精度浮点数 ($f12),您可以这样做:

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

    那么就可以使用div.d或者div.s进行浮点除法,得到浮点结果。

    【讨论】:

    猜你喜欢
    • 2016-01-01
    • 2014-04-18
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 2014-11-10
    • 2015-09-13
    相关资源
    最近更新 更多