2016-11-30 4 views
1

Ich versuche, eine verknüpfte Liste in MIPS zu implementieren, und ich muss auch Speicher für es reservieren. In jedem Beispiel, das ich sehe, nehmen sie an, dass das erste Element in der Liste auf einem bestimmten Register steht, aber sie erklären nicht wirklich, wie man es realistisch macht.Verwenden von syscall 9 mit verknüpfter Liste in MIPS

Ich versuchte dies, aber es sagt

Ich habe zwei Fragen „Speicheradresse auf Wortgrenze 0x10040319 nicht ausgerichtet“
# Allocate memory with syscall 9 
li $v0, 9 
addi $a0, $zero, 8 # Reserve 8 bytes, 4 for int data, 4 for pointer to next 
syscall 
# Make $t0 point to the beginning of the reserved memory? 
add $t0, $v0, $zero 
# Create linked list node 
addi $t1, $zero, 10 # $t1 has the int data 
sw $t1, 0($t0)  # $t1 is now node->data 
sw $zero, 4($t0)  # node->next is NULL 

Also hier, aber sie sind miteinander verwandt. Einer ist, wie man Speicher mit syscall 9 richtig zuweist, und der andere ist, wie man ihn referenziert, so dass er in einer verketteten Liste verwendet werden kann (ich muss tatsächlich einen Sortieralgorithmus mithilfe von verketteten Listen implementieren, weil ich in der Lage sein muss zu sortieren eine beliebige Anzahl von Elementen (keine feste Zahl) und das ist Schritt -1 haha). Vielen Dank.

Antwort

2

Oh Gott, anscheinend war es der Simulator, den sie für die Aufgabe hochgeladen haben. Ich habe die neueste Version von Mars MIPS von der offiziellen Website heruntergeladen und es hat funktioniert. Also das ist jetzt peinlich.