2017-10-18 128 views
-1

所以我使用QtSpim來爲我的學校運行我的mips程序。我基本上做了一個工作程序,但現在我不斷收到異常錯誤。我試着減少我的代碼,所以這裏是錯誤現在開始的地方。MIPS商店異常錯誤

.text 
.globl main 
main: 
.data 
    message1: .asciiz "The maximum is " 
    message2: .asciiz "The summation is " 
    myArray: .space 32 
.text 
    addi $s0, $zero, 11 
    addi $s1, $zero, 12 
    addi $s2, $zero, -10 
    addi $s3, $zero, 13 
    addi $s4, $zero, 9 
    #addi $s5, $zero, 12 not needed 
    addi $s5, $zero, 14 
    addi $s6, $zero, 15 
    addi $s7, $zero, -20 

    addi $t0, $zero, 0 

    sw $s0, myArray($t0) 
    addi $t0, $t0, 4 

    li $v0,10 
    syscall 

的錯誤是SW $ S0,myArray的($ T0)

+0

此外,如果有人可以告訴我爲什麼這是downvoted,我很想解決我的問題,在未來 –

+0

@ZalmanStern這個評論是更直接的人誰會知道爲什麼這是downvoted,以便我可以提出更好的問題未來 –

+0

是的,我正在解釋標題是一個改進的候選人。 –

回答

0

您可能需要確保myArray的對齊到32位邊界。我建議在聲明之前嘗試使用.align指令。

+0

我改變了代碼\t myArray的: \t \t .align僞32 \t \t。空間32 但我仍然得到同樣的錯誤 –

+0

很肯定的.align僞需要在標籤前走。也許看到:https://stackoverflow.com/questions/19608845/understanding-assembly-mips-align-and-memory-addressing –

+0

我把它作爲.align 32然後我的Array:.space 32,但我仍然有相同的錯誤 –