1 2 .global main 3 .align 4 4.str9: 5 .asciz "in g: %d\n" 6.str10: 7 .asciz "in f: %d\n" 8 9 .align 4 10main: 11 12 save %sp,-200,%sp 13 mov 10,%o0 14 st %o0,[%fp-20] 15 ba endfunc3 16 nop 17func1: 18 save %sp,-200,%sp 19 st %i0,[%fp-20] 20 set .str9,%o0 21 mov %i0,%o1 22 call printf 23 nop 24 mov 0,%o0 25 cmp %i0,%o0 26 mov 1,%o0 27 bg bool4 28 nop 29 mov %g0,%o0 30bool4: 31 cmp %o0,1 32 bne else5 33 nop 34 mov 1,%o0 35 sub %i0,%o0,%o0 36 call func2 37 nop 38 ba endif5 39 nop 40else5: 41endif5: 42 mov %o0,%i0 43 ret 44 restore 45endfunc3: 46 ba endfunc6 47 nop 48func2: 49 save %sp,-200,%sp 50 st %i0,[%fp-20] 51 set .str10,%o0 52 mov %i0,%o1 53 call printf 54 nop 55 mov 0,%o0 56 cmp %i0,%o0 57 mov 1,%o0 58 bg bool7 59 nop 60 mov %g0,%o0 61bool7: 62 cmp %o0,1 63 bne else8 64 nop 65 mov 1,%o0 66 sub %i0,%o0,%o0 67 call func1 68 nop 69 ba endif8 70 nop 71else8: 72endif8: 73 mov %o0,%i0 74 ret 75 restore 76endfunc6: 77 ld [%fp-20],%o0 78 call func1 79 nop 80 81 mov 1, %g1 82 ta 0 83