MIPS将float转换为整数

时间:2016-03-14 20:52:18

标签: assembly floating-point integer mips

我尝试了几种不同的方式,其中一种方法是使用二进制来左/右移动,但我只是找不到组合使其适用于除了少数之外的任何东西每次选择的号码。那么如何将浮点数转换为整数呢?

.data
five: .float 10.0

.text

main:
    la  $a1 five 
    l.s $f12 ($a1) 
    #conversion here

    li $v0 2# print float, which will print 10.0 (should print integer)
    syscall

    li $v0 10
    syscall

1 个答案:

答案 0 :(得分:2)

免责声明:我不是 MIPS arch的专家。

正如评论中所建议的,快速查找 MIPS FP参考可提供所需的指令:cvt.w.s

.data
    five: .float 5.0
.text

#Convert five into an integer
la $t1, five
l.s $f12, ($t1)             #f12 = five
cvt.w.s $f0, $f12           #f0 = (int) five


#Print five
li $v0, 2
syscall

#Print (int)five
li $v0, 1
mfc1 $a0, $f0               #a0 = (int)five
syscall

#Exit
li $v0, 10
syscall

这将打印

  

5.05

由于 5.0 5 之间没有空格。

如果您想手动完成,可以从answer开始。

相关问题