.global main .align 4 .str14: .asciz "%d\n" .str15: .asciz "class c2, x=%d\n" .str16: .asciz "My balance is %d\n" .str17: .asciz "Your balance is %d\n" .align 4 main: save %sp,-200,%sp ba endfunc7 nop class6make: save %sp,-200,%sp st %i0,[%fp-20] st %i1,[%fp-24] st %i0,[%i5-4] st %i1,[%i5] set .str14,%o0 ld [%i5],%o1 call printf nop mov %o0,%i0 ret restore endfunc7: ba endfunc8 nop class6withdraw: save %sp,-200,%sp st %i0,[%fp-20] ld [%i5-4],%o0 sub %o0,%i0,%o0 st %o0,[%i5-4] mov %o0,%i0 ret restore endfunc8: ba endfunc9 nop class6deposit: save %sp,-200,%sp st %i0,[%fp-20] ld [%i5-4],%o0 add %o0,%i0,%o0 st %o0,[%i5-4] mov %o0,%i0 ret restore endfunc9: ba endfunc10 nop class6inquiry: save %sp,-200,%sp ld [%i5-4],%o0 mov %o0,%i0 ret restore endfunc10: ba endfunc12 nop class11make: save %sp,-200,%sp st %i0,[%fp-20] st %i0,[%i5] set .str15,%o0 ld [%i5],%o1 call printf nop mov %o0,%i0 ret restore endfunc12: mov 0,%o0 mov %o0,%g7 mov 8,%o0 call malloc nop st %o0,[%fp-20] mov %g7,%o0 mov 0,%o1 mov %o0,%g7 mov 8,%o0 call malloc nop st %o0,[%fp-24] mov %g7,%o0 mov 0,%o2 mov %o0,%g7 mov 4,%o0 call malloc nop st %o0,[%fp-28] mov %g7,%o0 ba endfunc13 nop func5: save %sp,-200,%sp mov 4,%o0 mov %o0,%i0 ret restore endfunc13: mov 6,%o3 mov %o0,%l0 mov %o3,%o0 ld [%fp-28],%o5 call class11make nop mov 100,%o3 mov %o0,%l0 mov 3421,%o0 mov %o1,%l1 mov %o0,%l2 mov %o3,%o0 mov %l2,%o1 ld [%fp-20],%o5 call class6make nop mov 200,%o3 mov %o0,%l0 mov 1234,%o0 mov %o1,%l1 mov %o0,%l2 mov %o3,%o0 mov %l2,%o1 ld [%fp-24],%o5 call class6make nop mov 40,%o3 mov %o0,%l0 mov %o3,%o0 ld [%fp-20],%o5 call class6withdraw nop mov 50,%o3 mov %o0,%l0 mov %o3,%o0 ld [%fp-24],%o5 call class6deposit nop set .str16,%o3 mov %o0,%l0 ld [%fp-20],%o5 call class6inquiry nop mov %o0,%l1 mov %o3,%o0 mov %l1,%o1 call printf nop set .str17,%o3 mov %o0,%l0 ld [%fp-24],%o5 call class6inquiry nop mov %o0,%l1 mov %o3,%o0 mov %l1,%o1 call printf nop mov 1, %g1 ta 0