Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

USING PEP/9 ASSEMBLY CODE (NOT C) At an ice-skating competition, skaters are ass

ID: 3596304 • Letter: U

Question

USING PEP/9 ASSEMBLY CODE (NOT C)

At an ice-skating competition, skaters are assessed by a panel of 6 judges each of whom gives a performance an integer score from 0 to 10. The overall score is computed by discarding the highest and lowest of the 6 scores and averaging the remaining 4. Write and test a Pep/9 assembly code program that input the scores for two skaters A and B and then determines the winner. There may be a tie Examples Scores for A: 10 10 9 5 8 10 scores for B: 8 10 8 9 10 5 A wins! Scores for A: 99 8 10 7 9 Scores for B: 10 7 10 8 8 9 It is a tie!

Explanation / Answer

.file 1 "" .section .mdebug.abi32 .previous .nan legacy .module fp=32 .module nooddspreg .abicalls .rdata .align 2 $LC0: .ascii "A wins" .align 2 $LC1: .ascii "B wins" .align 2 $LC2: .ascii "A avg: %f and B avg: %f" .text .align 2 .globl main .set nomips16 .set nomicromips .ent main .type main, @function main: .frame $fp,136,$31 # vars= 96, regs= 2/0, args= 24, gp= 8 .mask 0xc0000000,-4 .fmask 0x00000000,0 .set noreorder .cpload $25 .set nomacro addiu $sp,$sp,-136 sw $31,132($sp) sw $fp,128($sp) move $fp,$sp .cprestore 24 movz $31,$31,$0 li $2,10 # 0xa sw $2,72($fp) li $2,9 # 0x9 sw $2,76($fp) li $2,8 # 0x8 sw $2,80($fp) li $2,5 # 0x5 sw $2,84($fp) li $2,10 # 0xa sw $2,88($fp) li $2,10 # 0xa sw $2,92($fp) li $2,10 # 0xa sw $2,96($fp) li $2,9 # 0x9 sw $2,100($fp) li $2,8 # 0x8 sw $2,104($fp) li $2,5 # 0x5 sw $2,108($fp) li $2,10 # 0xa sw $2,112($fp) li $2,8 # 0x8 sw $2,116($fp) lw $2,72($fp) nop sw $2,44($fp) lw $2,72($fp) nop sw $2,48($fp) sw $0,32($fp) b $L2 nop $L7: li $2,1 # 0x1 sw $2,36($fp) b $L3 nop $L6: lw $2,32($fp) nop move $3,$2 sll $2,$3,1 move $3,$2 sll $2,$3,2 subu $2,$2,$3 lw $3,36($fp) nop addu $2,$2,$3 sll $2,$2,2 addiu $3,$fp,32 addu $2,$3,$2 lw $3,40($2) lw $2,44($fp) nop slt $2,$2,$3 beq $2,$0,$L4 nop lw $2,32($fp) nop move $3,$2 sll $2,$3,1 move $3,$2 sll $2,$3,2 subu $2,$2,$3 lw $3,36($fp) nop addu $2,$2,$3 sll $2,$2,2 addiu $3,$fp,32 addu $2,$3,$2 lw $2,40($2) nop sw $2,44($fp) lw $2,32($fp) nop sw $2,52($fp) lw $2,36($fp) nop sw $2,56($fp) $L4: lw $2,32($fp) nop move $3,$2 sll $2,$3,1 move $3,$2 sll $2,$3,2 subu $2,$2,$3 lw $3,36($fp) nop addu $2,$2,$3 sll $2,$2,2 addiu $3,$fp,32 addu $2,$3,$2 lw $3,40($2) lw $2,48($fp) nop slt $2,$3,$2 beq $2,$0,$L5 nop lw $2,32($fp) nop move $3,$2 sll $2,$3,1 move $3,$2 sll $2,$3,2 subu $2,$2,$3 lw $3,36($fp) nop addu $2,$2,$3 sll $2,$2,2 addiu $3,$fp,32 addu $2,$3,$2 lw $2,40($2) nop sw $2,48($fp) lw $2,32($fp) nop sw $2,60($fp) lw $2,36($fp) nop sw $2,64($fp) $L5: lw $2,36($fp) nop addiu $2,$2,1 sw $2,36($fp) $L3: lw $2,36($fp) nop slt $2,$2,6 bne $2,$0,$L6 nop lw $2,32($fp) nop addiu $2,$2,1 sw $2,32($fp) $L2: lw $2,32($fp) nop slt $2,$2,2 bne $2,$0,$L7 nop lw $2,52($fp) nop move $3,$2 sll $2,$3,1 move $3,$2 sll $2,$3,2 subu $2,$2,$3 lw $3,56($fp) nop addu $2,$2,$3 sll $2,$2,2 addiu $3,$fp,32 addu $2,$3,$2 sw $0,40($2) lw $2,60($fp) nop move $3,$2 sll $2,$3,1 move $3,$2 sll $2,$3,2 subu $2,$2,$3 lw $3,64($fp) nop addu $2,$2,$3 sll $2,$2,2 addiu $3,$fp,32 addu $2,$3,$2 sw $0,40($2) sw $0,32($fp) b $L8 nop $L12: sw $0,68($fp) sw $0,36($fp) b $L9 nop $L11: lw $2,32($fp) nop move $3,$2 sll $2,$3,1 move $3,$2 sll $2,$3,2 subu $2,$2,$3 lw $3,36($fp) nop addu $2,$2,$3 sll $2,$2,2 addiu $3,$fp,32 addu $2,$3,$2 lw $2,40($2) lw $3,40($fp) nop addu $2,$3,$2 sw $2,40($fp) lw $2,40($fp) nop bgez $2,$L10 nop addiu $2,$2,3 $L10: sra $2,$2,2 mtc1 $2,$f0 nop cvt.s.w $f0,$f0 lw $2,68($fp) nop sll $2,$2,2 addiu $3,$fp,32 addu $2,$3,$2 swc1 $f0,88($2) lw $2,36($fp) nop addiu $2,$2,1 sw $2,36($fp) $L9: lw $2,36($fp) nop slt $2,$2,6 bne $2,$0,$L11 nop lw $2,68($fp) nop addiu $2,$2,1 sw $2,68($fp) lw $2,32($fp) nop addiu $2,$2,1 sw $2,32($fp) $L8: lw $2,32($fp) nop slt $2,$2,2 bne $2,$0,$L12 nop lwc1 $f2,120($fp) lwc1 $f0,124($fp) nop c.lt.s $f0,$f2 nop bc1f $L18 nop lw $2,%got($LC0)($28) nop addiu $4,$2,%lo($LC0) lw $2,%call16(printf)($28) nop move $25,$2 .reloc 1f,R_MIPS_JALR,printf 1: jalr $25 nop lw $28,24($fp) b $L15 nop $L18: lw $2,%got($LC1)($28) nop addiu $4,$2,%lo($LC1) lw $2,%call16(printf)($28) nop move $25,$2 .reloc 1f,R_MIPS_JALR,printf 1: jalr $25 nop lw $28,24($fp) $L15: lwc1 $f0,120($fp) nop cvt.d.s $f2,$f0 lwc1 $f0,124($fp) nop cvt.d.s $f0,$f0 swc1 $f0,20($sp) swc1 $f1,16($sp) mfc1 $7,$f2 mfc1 $6,$f3 lw $2,%got($LC2)($28) nop addiu $4,$2,%lo($LC2) lw $2,%call16(printf)($28) nop move $25,$2 .reloc 1f,R_MIPS_JALR,printf 1: jalr $25 nop lw $28,24($fp) move $2,$0 move $sp,$fp lw $31,132($sp) lw $fp,128($sp) addiu $sp,$sp,136 j $31 nop .set macro .set reorder .end main .size main, .-main .ident "GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.1) 5.4.0 20160609" B wins A avg: 8198.000000 and B avg: 8203.500000