Answer:

use temp 
use zero 
lim zero 0 
label loop 
lim jump_target done 
jeq jump_target rest zero	// stop if at end of list 
load temp rest			// load next list value 
add sum sum temp		// add value to sum 
aim rest +1			// get address part of cell 
load rest rest			// load pointer to next cell 
lim jump_target loop		// go back for more 
junc jump_target 
label done