go to previous page   go to home page   go to next page hear noise

Answer:

        # create the first node 
        li      $v0,9             # allocate memory
        li      $a0,8             # 8 bytes
        syscall                   # $v0 <-- address
        move    $s1,$v0           # $s1 = &(first node)
        
        # copy the pointer to first
        sw      $s1,first 
        
        # initialize the node
        li      $t0,1             # store 1
        sw      $t0,0($s1)        # at displacement 0
        
        # create the second node 
        . . . .    
        
        .data
first:  .word  0    # address of the first node

Three Node List

Three Node List being built

Now let us build a linked list with three nodes. This will be done with an eye to generalizing the procedure so that lists with any number of nodes can be built. The picture shows this.


QUESTION 7:

Why do we want to use $s1 for all nodes? Why not use a different pointer register for each node of the linked list?