设置浮点数组并以MIPS打印它们

时间:2013-04-01 03:20:18

标签: arrays assembly floating-point mips

我无法设置浮点整数数组然后打印它们...... 我需要做一些算术,我可以解决这个问题,然后将其打印到屏幕上。

.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

我不确定我需要做什么来打印数组的某个值。这让我对如何调用某个浮点数以及如何打印它感到困惑。我一直在互联网上环顾几个小时,这让人很沮丧。任何帮助都会很棒。谢谢!

3 个答案:

答案 0 :(得分:1)

要打印浮点数,必须使用syscall 2使用$f12作为要打印的输入浮点数。 E.g:

.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

答案 1 :(得分: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?

答案 2 :(得分:0)

我们总是使用除$f0$f12之外的浮动regester,因为它分别用于读取和写入值。