2013-04-01 83 views
0

我無法設置浮點整數數組然後將它們打印出來... 我需要做一些算術運算,打印到屏幕上。設置浮點數組並在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 

林不知道我需要做什麼來打印數組的某個值。這讓我困惑於如何調用某個浮點數,以及如何打印它。我一直在網上四處尋找幾個小時,這讓人感到沮喪。任何幫助都會很棒。謝謝!

+0

什麼是代碼中的問題?你從'$ a1'中的地址加載一個浮點數,用syscall 2打印它,將'$ a1'增加4並重復。 – Michael

回答

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 
+0

因此,如果我想多花一些花車,我將如何返回他們的價值? – DDukesterman

+0

我可以將f1和f2寫入f3。我如何打印f3? – DDukesterman

+0

@Duukesterman:在發出系統調用之前,將'f3'的內容複製到'f12'中。也就是'mov.s $ f12,$ f3' – gusbro

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?

0

我們總是用甚至浮動裏傑斯特除了$f0$f12,因爲它是用於讀取和寫入值respectivly ..