【问题标题】:convert int to float in MIPS assembly在 MIPS 程序集中将 int 转换为 float
【发布时间】:2012-05-22 06:03:40
【问题描述】:

我的方法是将int寄存器溢出并加载到float寄存器中然后转换

li $t0, 2       
sw $t0, -88($fp)    
l.s $f4, -88($fp)
cvt.d.s $f6, $f4

我正在尝试翻译类似的表达式

float a = 3.0;
float b = a / 2;

但是上面的方法并没有给我正确的答案(打印出inf)。

那么我哪里做错了?有什么建议吗?

附: 2 不知道 lhs 操作数是浮点类型,所以我无法加载 2.0

【问题讨论】:

    标签: assembly mips


    【解决方案1】:

    您使用了不正确的后缀; .d 将对双字(64 位)进行操作。这就是你想要的:

    li   $t0, 2
    sw   $t0, -88($fp)
    lwc1 $f4, -88($fp)
    cvt.s.w $f6, $f4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-13
      • 2014-01-24
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      • 2014-07-24
      相关资源
      最近更新 更多