2017-10-18 2 views
-1

So verwende ich QtSpim, um mein MIPS-Programm für die Schule zu laufen. Ich habe im Grunde ein Arbeitsprogramm gemacht, aber jetzt bekomme ich einen Ausnahmefehler. Ich habe versucht, meinen Code zu reduzieren. Hier beginnt nun der Fehler.MIPS speichern Ausnahmefehler

.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 

Der Fehler ist sw $ s0, arr ($ t0)

+0

Auch wenn mir jemand sagen könnte, warum das abgelehnt wurde, würde ich gerne meine Fragen in der Zukunft beheben –

+0

@ZalmanStern Dieser Kommentar war mehr auf jemanden gerichtet, der wissen würde, warum das so downvolotiert wurde, damit ich bessere Fragen stellen kann Zukunft –

+0

Ja, und ich erklärte, dass der Titel ein Kandidat für Verbesserungen war. –

Antwort

0

Sie müssen wahrscheinlich sicher myArray machen ausgerichtet ist auf eine 32-Bit-Grenze. Ich schlage vor, vor der Erklärung eine .align-Anweisung zu versuchen.

+0

änderte ich den Code \t myArray: \t \t .align 32 \t \t .space 32 Aber ich immer noch die gleichen Fehler –

+0

Ziemlich sicher, dass die .align vor dem Etikett gehen muss. Vielleicht sehen: https://stackoverflow.com/questions/19608845/understanding-assembly-mips-align-and-memory-addressing –

+0

Ich habe es als .align 32 dann mein Array: .space 32, aber ich habe immer noch das gleiche Fehler –