A good answer might be:

$s1

Following a Link

Here is more of the program:

## linked.asm --- hard-coded linked list
##
          .text
          .globl main
          
main:
          la     $s0,elmnt01    # get a pointer to the first element
          
loop:     beqz   $s0,done       # while the pointer is not null
          lw     $a0,0($s0)     #   get the data of this element

          . . .                 #   do something with the element

          lw     $s0,4($s0)     #   get the pointer to the next element
          b      loop
          
done:    
          .data

elmnt01:  .word  1              # displacement 0 off the pointer
          .word  elmnt02        # displacement 4 off the pointer
        
          . . .

The program starts with the first element. Then (after doing something with the first element) it moves on to the second element by loading the address contained in the link field of the element.

In this case, you want to load data from an address into a register. So the lw instruction is the correct one to use.

QUESTION 13:

What does it mean if the link field (the pointer) of an element contains a null ?