0

我在设置浮点整数数组然后打印它们时遇到问题...我需要做一些算术,我可以弄清楚,然后将其打印到屏幕上。

.data
    time:       .float 310, 393, 422, 494, 514 
miles:      .float 0.0, 42.2, 78.8, 129.4, 133.0
.text  

la $a1, time         # put address of list into $a1
l.s $f1 ($a1)

l.s $f1, ($t3)       # get the value from the array cell

li $v0, 2           
l.s $a0, $f1            
syscall

我不确定我需要做什么才能打印数组的某个值。这让我对如何调用某个浮点数以及如何打印它感到困惑。我已经在互联网上四处寻找了几个小时,这越来越令人沮丧。任何帮助都会很棒。谢谢!

4

3 回答 3

1

要打印浮点数,您必须使用syscall2$f12作为输入浮点数来打印。例如:

.data
    time:       .float 310, 393, 422, 494, 514 
    miles:      .float 0.0, 42.2, 78.8, 129.4, 133.0
.text  

    la $a1, time         # put address of list into $a1
    l.s $f12 ($a1)       
    li $v0, 2           
    syscall              # This will print 310.0

    l.s $f12 4($a1)
    syscall              # And this will print 393.0
于 2013-04-01T12:48:41.683 回答
0
li $t0, 13      #terminating value
li $t1, 4       #byte shifting 
li $t2, 1       #i increments by 1  
la $a1, time            # put address of time into $a1
la $a2, miles       # put address of miles into $a2 

add $a1, $a1, $t1
add $a2, $a2, $t1
l.s $f1, ($a1)
l.s $f2, ($a2)
mul.s $f3, $f1, $f2
s.s $f3, ($a3)

li $v0, 2           
l.s $f12, ($a3)         
syscall

当我将 f1 和 f2 相乘并将它们放入 f3 时,我如何打印 f3?

于 2013-04-01T18:01:50.057 回答
0

我们总是使用浮动寄存器,除了$f0and $f12,因为它分别用于读取和写入值..

于 2013-05-19T05:29:38.970 回答