### A good answer might be:

No

# Printing Each Element

The list is a sentinel controlled loop. It keeps going until it hits the special value that signals the end. Here is the code with some new lines that print the data of each element:

    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
              li     $v0,1          #   print it
              syscall               #
              la     $a0,sep        #   print separator
              li     $v0,4          #
              syscall               #

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

    done:     . . .

              .data
    elmnt01:  .word  1
              .word  elmnt02

    elmnt02:  .word  2
              .word elmnt03

    elmnt03:  .word  3
              .word elmnt04

    elmnt04:  .word  5
              .word  elmnt05

    elmnt05:  .word  7
              .word  0

    sep:      .asciiz "  "

The code that traverses the list is in black; the code that processes the data at each element is in blue.

### QUESTION 15:

What needs to be done after the loop is done?