1 2 .global main 3 .align 4 4.str8: 5 .asciz "hello\n" 6.str9: 7 .asciz "here1\n" 8.str10: 9 .asciz "a is now %d, and x is now %d\n" 10.str11: 11 .asciz "%d " 12.str12: 13 .asciz "\n" 14 15 .align 4 16main: 17 18 save %sp,-200,%sp 19 mov 6,%o0 20 st %o0,[%fp-20] 21 mov 0,%o0 22 st %o0,[%fp-24] 23 set .str8,%o0 24 st %o0,[%fp-28] 25 mov 20,%o0 26 st %o0,[%fp-32] 27 st %o0,[%fp-36] 28 st %o0,[%fp-40] 29 st %o0,[%fp-44] 30 st %o0,[%fp-48] 31 ba endfunc5 32 nop 33func4: 34 save %sp,-200,%sp 35 st %i0,[%fp-20] 36 ld [%fp+180],%o0 37 add %o0,%i0,%o0 38 st %o0,[%fp+180] 39 mov %o0,%i0 40 ret 41 restore 42endfunc5: 43 ld [%fp-28],%o1 44 mov %o1,%l0 45 mov %l0,%o0 46 call printf 47 nop 48 mov 4,%o1 49 mov %o1,%l0 50 mov %l0,%o0 51 call func4 52 nop 53 st %o0,[%fp-24] 54 mov 4,%o1 55 mov %o1,%l0 56 mov %l0,%o0 57 call func4 58 nop 59 st %o0,[%fp-24] 60 set .str9,%o1 61 mov %o1,%l0 62 mov %l0,%o0 63 call printf 64 nop 65 set .str10,%o1 66 mov %o1,%l0 67 ld [%fp-20],%o0 68 mov %o0,%l1 69 ld [%fp-24],%o0 70 mov %o0,%l2 71 mov %l0,%o0 72 mov %l1,%o1 73 mov %l2,%o2 74 call printf 75 nop 76 mov 4,%o1 77 st %o1,[%fp-20] 78 mov 1,%o1 79 mov 0,%o2 80 mov -32,%g7 81 mov %o2,%o3 82 sll %o3,2,%o3 83 sub %g7,%o3,%o3 84 st %o1,[%fp+%o3] 85 mov 2,%o1 86 mov 1,%o2 87 mov -32,%g7 88 mov %o2,%o3 89 sll %o3,2,%o3 90 sub %g7,%o3,%o3 91 st %o1,[%fp+%o3] 92 mov 3,%o1 93 mov 2,%o2 94 mov -32,%g7 95 mov %o2,%o3 96 sll %o3,2,%o3 97 sub %g7,%o3,%o3 98 st %o1,[%fp+%o3] 99 mov 4,%o1 100 mov 3,%o2 101 mov -32,%g7 102 mov %o2,%o3 103 sll %o3,2,%o3 104 sub %g7,%o3,%o3 105 st %o1,[%fp+%o3] 106 mov 5,%o1 107 mov 4,%o2 108 mov -32,%g7 109 mov %o2,%o3 110 sll %o3,2,%o3 111 sub %g7,%o3,%o3 112 st %o1,[%fp+%o3] 113swhile6: 114 ld [%fp-20],%o1 115 mov 0,%o2 116 cmp %o1,%o2 117 mov 1,%o1 118 bge bool7 119 nop 120 mov %g0,%o1 121bool7: 122 cmp %o1,%g0 123 be ewhile6 124 nop 125 set .str11,%o1 126 mov %o1,%l0 127 ld [%fp-20],%o0 128 sll %o0,2,%o0 129 mov -32,%g7 130 sub %g7,%o0,%o0 131 ld [%fp+%o0],%o0 132 mov %o0,%l1 133 mov %l0,%o0 134 mov %l1,%o1 135 call printf 136 nop 137 ld [%fp-20],%o1 138 mov 1,%o2 139 sub %o1,%o2,%o1 140 st %o1,[%fp-20] 141 ba swhile6 142 nop 143ewhile6: 144 set .str12,%o1 145 mov %o1,%l0 146 mov %l0,%o0 147 call printf 148 nop 149 150 mov 1, %g1 151 ta 0 152