创建单个链接列表

时间:2017-05-06 03:48:55

标签: assembly linked-list mips singly-linked-list

我应该使用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"?

0 个答案:

没有答案