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
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