Not too much: end the current output line, perhaps write a final message, and return to the OS.
Here
is the complete program.
The head of a linked list is the
first node of the list.
The complete program uses head
as an alternate name for the address of the
first node.
## linked.asm --- hard-coded linked list ## .text .globl main main: la $s0,head # get pointer to head loop: beqz $s0,done # while not null lw $a0,0($s0) # get the data li $v0,1 # print it syscall # la $a0,sep # print separator li $v0,4 syscall lw $s0,4($s0) # get next b loop done: la $a0,linef # print end of line li $v0,4 syscall # print ending message la $a0,endmess li $v0,4 syscall li $v0,10 # return to OS syscall .data head: 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 " " linef: .asciiz "\n" endmess: .asciiz "done\n"
If $s0
is pointing at the first node,
is it possible to jump immediately to the fourth node?