### A good answer might be:

    main:
            # 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 first node
            li      $t0,1             # store 1
            sw      $t0,0($s1)        # at displacement 0

# Second Node

Now look at the second node. Rather than use a second register for the second node `$s1` is used again:

            # create the second node
            li      $v0,9             # allocate memory
            li      $a0,8             # 8 bytes
            syscall                   # $v0 <-- address

            # link the second node to the first
            sw      ___,4($s1)        # copy address of second node
                                      # into the first node

            # make the new node the current node
            move    $s1,___           # $s1 = second node

            # initialize the second node
            li      $t0,2             # store 2
            sw      $t0,0($s1)        # at displacement 0

### QUESTION 8:

Fill in the blanks.