sollte mich eine einzelne verkettete Liste mit MIPS erstellen dann usw. sortiert Hier ist ein Stück von meinem Code:eine einzelne verkettete Liste erstellen
.data
STR_NEWLINE: .asciiz "\n"
STR_ENTER: .asciiz "enter an integer(0 to finish): "
.text
main:
sw $zero,0($sp) # list_head = 0
move $s0,$sp # list_end adress
main_loop:
la $a0,STR_ENTER
li $v0,4
syscall
li $v0,5
syscall
blez $v0,bubble_loop
addi $sp, $sp, -8
sw $v0,0($sp)
sw $t0,4($sp)
move $s0,$sp
addi $t0, $t0, -8
j main_loop
Es funktioniert gut, es Eingaben vom Benutzer erhält, speichert sie auf dem Speicher, sortiert und druckt auch. Aber das Problem (möglicherweise nicht) ist ich bin mir nicht sicher, ob es eine echte verkettete Liste ist, weil, wie ich weiß, verkettete Liste Struktur ist wie folgt:
| Daten | pointerToAnywhere | ... | Daten | pointerToAnywhere |
Aber in meinem Code ist es immer hintereinander, so dass es keinen Sinn hat, Zeiger zu haben, wenn die nächste Eingabe nicht an einem leeren Ort im Speicher gespeichert werden kann.
Zusammenfassend, wie soll ich meinen Code verbessern, um $ sp = (irgendein leerer Platz im Speicher) anstelle von "addi $ sp, $ sp, -8" zu haben?