/******************************************************* * File: one2ten.m * Dir: cis235/Examples * Date: Sept 5, 2002 * Author: DSS * Computer: KUNET suns * Assembler: as under the gcc compiler * Compile: sa one2ten * Execute: one2ten * Purpose: print integers 1 thru 10 * *******************************************************/ .data .align 4 format: .asciz "%d\n" .global main main: save %sp,-96,%sp mov 0, %l5 !put value in reg l5 loop: add %l5,1,%l5 !inc value ! printf(format,nextValue); ! Put format string in o0 register, variable corresponding to %d in 01 ! then call printf function set format,%o0 !put format string in %o0 !mov %l5,%o1 !put value in o1 for output;do it below call printf,0 !print it mov %l5,%o1 !put value in o1 for output in delay slot mov 10,%l4 !put const 10 into register for comparison cmp %l5,%l4 !compare register values bne loop !if reg values were unequal (ctr!=10), iterate !cmp %l5,%l4 !compare register values in delay slot? Nope! nop !delay slot done: call exit, 0 !exit routine mov 0, %o0 !move return code into position during delay