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.