! Illustrate immediate addressing mode in SPARC ! - How to move constants into a register..... .section ".text" ! Start instruction section .align 4 ! Align to word boundary .global main ! Equivalent to M68000's xdef .global Stop, End .global mylabel main: save %sp,-96,%sp ! Pull down window and save space ! on stack - ignore this for now ! Move small constant (between -2^12 and 2^12-1) into register l0 add %g0, 2, %l0 ! l0 = 2000 add %g0, 3, %l0 ! l0 = 2000 ba L add %g0, 4, %l0 ! l0 = 2000 add %g0, 14, %l0 ! l0 = 2000 add %g0, 15, %l0 ! l0 = 2000 add %g0, 15, %l0 ! l0 = 2000 add %g0, 4, %l0 ! l0 = 2000 add %g0, 5, %l0 ! l0 = 2000 L: add %g0, 7, %l1 ! l1 = 7 add %g0, 8, %l1 ! l1 = 7 add %g0, 9, %l1 ! l1 = 7 Stop: ! ------------------------------------- main done - return to OS ret restore End: ! ---------------------- Variables section .section ".data" .align 4 mylabel: .word 8