2017-10-18 103 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,但我仍然有相同的错误 –