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」?