2
我应该创建与MIPS单链表在排序等等。这里是一块我的代码:创建单链表
.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
它运作良好,它得到来自用户的输入,将它们存储在内存中,进行分类和打印。但问题(可能不是)我不确定它是否是一个真正的链表,因为据我所知,链表结构是这样的:
|数据| pointerToAnywhere | ... |数据| pointerToAnywhere |
但是在我的代码中,它总是像一个接一个,因此如果下一个输入不能存储在内存中的任何空位上,就没有意义。总结一下,我应该如何改进我的代码以使$ sp =(内存中的任何空位)而不是“addi $ sp,$ sp,-8”?