MIPS-code gebrochen
Arbeite ich auf einige MIPS-code für meinen Computer Organisationen der Klasse, und naja, ich kann einfach nicht scheinen, um die MIPS um korrekt zu arbeiten, und es ist nicht so, dass viele MIPS online-Ressourcen. Ich bin mit den code auf PCSPIM. Der code soll zusätzlich 10 der Inhalt von array2 und speichern Sie Sie in Matrix1 und drucken Sie dann die array-1. Überarbeitet der code funktioniert nun richtig.
.text
main:
la $t0, array1
la $t1, array2
la $s0, valuec
li $s2, 6
add $t6, $zero, 1 #i = 1
Loop:
addi $t6, $t6, 1 #i++
lw $t2, ($t0)
lw $t5, ($t1)
lw $s1, ($s0)
addu $t2, $t5, $s1
sw $t2, ($t0)
add $t0, $t0, 4
add $t1, $t1, 4
li $v0, 1
move $a0, $t2
syscall
blt $t6, $s2, Loop
li $v0, 10
syscall
.data
array1: .space 20
array2: .word 1,2,3,5,9
valuec: .word 10
PCSPIM druckt 0 5 mal und gibt Ausnahme 7 [Bad data Address] aufgetreten und ignoriert
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist Hausaufgaben also ich bin nur gehen, um Ihnen Anhaltspunkte für, und jetzt, um es hinzuzufügen, wie Sie gehen. Ein paar Dinge:
1/Sie müssen uns nur sagen, was es ist soll zu tun. Das ist das wichtigste.
2/speichern Sie array1-Adresse in t0 dann die Wiederverwendung von t0 innerhalb der ersten Schleife.
3/Sie scheinen verwirrt zu sein, über die Adressen und den Inhalt dieser Adressen (
"la $s0, valuec"
und"addu $t0, $t1, $s0"
).UPDATE:
Eigentlich habe ich zu unterzeichnen, für eine Weile, also poste ich meine Lösung, so lassen Sie nicht im Stich.
Die Verwirrung, die ich genannt vorher, war die Tatsache, dass Sie laden, bis Sie zwei Adressen in $t1 und $s0, dann addiert, um eine Adresse - dies ist in der Regel gut über Ihre Daten-Bereich (sollten Sie wirklich das hinzufügen einer Adresse und eine offset).
Das ist im Grunde das problem, das Sie haben mit dem code (die Nullen gedruckt werden und der Absturz). Ihre beste Wette wäre, um das zu beheben und siehe meinen code unten nur als letzten Ausweg zu sehen, wie ich es getan hätte. Das kopieren von code wird nicht helfen, Sie in die langfristige, und Sie wäre klug, davon ausgehen, Ihr Erzieher ist auch die überprüfung aller web-Seiten für Plagiate.
Dies ist der code, den ich mir ausgedacht habe (schnell, also müssen Sie es ausprobieren - es kann Fehler enthalten). Ich schlage vor, Sie Lesen Sie die Kommentare in große detail zu verstehen, was es tut.
Werde ich in ein paar Stunden zurück, um zu sehen, wie du tust. Cheers.
Gibt es eine Reihe von möglichen Fragen, aber die meisten offensichtlich/wahrscheinlich ist, dass Sie nicht Rückkehr aus main-vor dem start Ihrer Daten Abschnitt.