#NO_APP .file "lab3b.c" .text .even .globl avg avg: link.w %a6,#-4 move.l 8(%a6),%d0 add.l 12(%a6),%d0 lsr.l #1,%d0 move.l %d0,-4(%a6) move.l -4(%a6),%d0 unlk %a6 rts .even .globl caller caller: link.w %a6,#-8 moveq #5,%d0 move.l %d0,-4(%a6) moveq #3,%d0 move.l %d0,-8(%a6) move.l -8(%a6),-(%sp) move.l -4(%a6),-(%sp) jbsr avg addq.l #8,%sp move.l %d0,-4(%a6) unlk %a6 rts .LC0: .ascii "00-09:\0" .LC1: .ascii "10-19:\0" .LC2: .ascii "20-29:\0" .LC3: .ascii "30-39:\0" .LC4: .ascii "40-49:\0" .LC5: .ascii "50-59:\0" .LC6: .ascii "60-69:\0" .LC7: .ascii "70-79:\0" .LC8: .ascii "80-89:\0" .LC9: .ascii "90-99:\0" .LC10: .ascii "100:\0" .LC11: .ascii "Enter score %2d: \0" .LC12: .ascii "%d\0" .LC13: .ascii "%s%d \0" .LC14: .ascii "\12\0" .even .globl main main: link.w %a6,#-96 jbsr __main lea (-44,%a6),%a0 clr.l (%a0) addq.l #4,%a0 clr.l (%a0) addq.l #4,%a0 clr.l (%a0) addq.l #4,%a0 clr.l (%a0) addq.l #4,%a0 clr.l (%a0) addq.l #4,%a0 clr.l (%a0) addq.l #4,%a0 clr.l (%a0) addq.l #4,%a0 clr.l (%a0) addq.l #4,%a0 clr.l (%a0) addq.l #4,%a0 clr.l (%a0) addq.l #4,%a0 clr.l (%a0) move.l #.LC0,-88(%a6) move.l #.LC1,-84(%a6) move.l #.LC2,-80(%a6) move.l #.LC3,-76(%a6) move.l #.LC4,-72(%a6) move.l #.LC5,-68(%a6) move.l #.LC6,-64(%a6) move.l #.LC7,-60(%a6) move.l #.LC8,-56(%a6) move.l #.LC9,-52(%a6) move.l #.LC10,-48(%a6) clr.l -96(%a6) .L4: moveq #4,%d0 cmp.l -96(%a6),%d0 jblt .L5 move.l -96(%a6),-(%sp) pea .LC11 jbsr printf addq.l #8,%sp lea (-92,%a6),%a0 move.l %a0,-(%sp) pea .LC12 jbsr scanf addq.l #8,%sp tst.l -92(%a6) jbge .L7 jbra .L6 .even .L7: moveq #9,%d0 cmp.l -92(%a6),%d0 jblt .L9 addq.l #1,-44(%a6) jbra .L6 .even .L9: moveq #19,%d0 cmp.l -92(%a6),%d0 jblt .L11 addq.l #1,-40(%a6) jbra .L6 .even .L11: moveq #29,%d0 cmp.l -92(%a6),%d0 jblt .L13 addq.l #1,-36(%a6) jbra .L6 .even .L13: moveq #39,%d0 cmp.l -92(%a6),%d0 jblt .L15 addq.l #1,-32(%a6) jbra .L6 .even .L15: moveq #49,%d0 cmp.l -92(%a6),%d0 jblt .L17 addq.l #1,-28(%a6) jbra .L6 .even .L17: moveq #59,%d0 cmp.l -92(%a6),%d0 jblt .L19 addq.l #1,-24(%a6) jbra .L6 .even .L19: moveq #69,%d0 cmp.l -92(%a6),%d0 jblt .L21 addq.l #1,-20(%a6) jbra .L6 .even .L21: moveq #79,%d0 cmp.l -92(%a6),%d0 jblt .L23 addq.l #1,-16(%a6) jbra .L6 .even .L23: moveq #89,%d0 cmp.l -92(%a6),%d0 jblt .L25 addq.l #1,-12(%a6) jbra .L6 .even .L25: moveq #99,%d0 cmp.l -92(%a6),%d0 jblt .L27 addq.l #1,-8(%a6) jbra .L6 .even .L27: moveq #100,%d0 cmp.l -92(%a6),%d0 jbne .L6 addq.l #1,-4(%a6) .L6: addq.l #1,-96(%a6) jbra .L4 .even .L5: clr.l -96(%a6) .L30: moveq #10,%d0 cmp.l -96(%a6),%d0 jblt .L31 move.l -96(%a6),%d0 move.l -44(%a6,%d0.l*4),-(%sp) move.l -96(%a6),%d0 move.l -88(%a6,%d0.l*4),-(%sp) pea .LC13 jbsr printf lea (12,%sp),%sp moveq #4,%d0 cmp.l -96(%a6),%d0 jbeq .L34 moveq #9,%d0 cmp.l -96(%a6),%d0 jbeq .L34 jbra .L32 .even .L34: pea .LC14 jbsr printf addq.l #4,%sp .L32: addq.l #1,-96(%a6) jbra .L30 .even .L31: unlk %a6 rts