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

Assembly language. Can you do this problem by using MIPS and SPIM simulator. 1.

ID: 3886647 • Letter: A

Question

Assembly language.

Can you do this problem by using MIPS and SPIM simulator.

1. Write a program that output the following string and integers. (you need to use the header for your other programs too) Program Description: Output Author: Your name Creation Date: 09/08/2008 Here is the Report of Top 5 employees in Erickson Company: Last Name First Name Position Salary Smith Hadden Simpson Williams Amer Adam Mary Mike Andrea Al Director Director Manager Designer Designer 99010 95220 80000 70000 55000

Explanation / Answer

.file 1 "" .section .mdebug.abi32 .previous .nan legacy .module fp=32 .module nooddspreg .abicalls .rdata .align 2 $LC3: .ascii "Here is the report of the top 5 employees in Erickson Co" .ascii "mpany " .align 2 $LC4: .ascii "========================================================" .ascii "========" .align 2 $LC5: .ascii "Last Name First Name Position Salary " .align 2 $LC6: .ascii "%s %s %s %d" .align 2 $LC0: .ascii "Smith" .space 14 .ascii "Hadden" .space 13 .ascii "Simpson" .space 12 .ascii "Williams" .space 11 .ascii "Amer" .space 15 .align 2 $LC1: .ascii "Adam" .space 15 .ascii "Mary" .space 15 .ascii "Mike" .space 15 .ascii "Andrea" .space 13 .ascii "Ali" .space 16 .align 2 $LC2: .ascii "Director" .space 11 .ascii "Director" .space 11 .ascii "Manager" .space 12 .ascii "Designer" .space 11 .ascii "Designer" .space 11 .text .align 2 .globl main .set nomips16 .set nomicromips .ent main .type main, @function main: .frame $fp,368,$31 # vars= 328, regs= 2/0, args= 24, gp= 8 .mask 0xc0000000,-4 .fmask 0x00000000,0 .set noreorder .cpload $25 .set nomacro addiu $sp,$sp,-368 sw $31,364($sp) sw $fp,360($sp) move $fp,$sp .cprestore 24 movz $31,$31,$0 lw $2,%got($LC0)($28) addiu $3,$fp,36 addiu $2,$2,%lo($LC0) li $4,100 # 0x64 move $6,$4 move $5,$2 move $4,$3 lw $2,%call16(memcpy)($28) nop move $25,$2 .reloc 1f,R_MIPS_JALR,memcpy 1: jalr $25 nop lw $28,24($fp) nop lw $2,%got($LC1)($28) addiu $3,$fp,136 addiu $2,$2,%lo($LC1) li $4,100 # 0x64 move $6,$4 move $5,$2 move $4,$3 lw $2,%call16(memcpy)($28) nop move $25,$2 .reloc 1f,R_MIPS_JALR,memcpy 1: jalr $25 nop lw $28,24($fp) nop lw $2,%got($LC2)($28) addiu $3,$fp,236 addiu $2,$2,%lo($LC2) li $4,100 # 0x64 move $6,$4 move $5,$2 move $4,$3 lw $2,%call16(memcpy)($28) nop move $25,$2 .reloc 1f,R_MIPS_JALR,memcpy 1: jalr $25 nop lw $28,24($fp) li $2,65536 # 0x10000 ori $2,$2,0x82c2 sw $2,336($fp) li $2,65536 # 0x10000 ori $2,$2,0x73f4 sw $2,340($fp) li $2,65536 # 0x10000 ori $2,$2,0x3880 sw $2,344($fp) li $2,65536 # 0x10000 ori $2,$2,0x1170 sw $2,348($fp) li $2,55000 # 0xd6d8 sw $2,352($fp) lw $2,%got($LC3)($28) nop addiu $4,$2,%lo($LC3) lw $2,%call16(puts)($28) nop move $25,$2 .reloc 1f,R_MIPS_JALR,puts 1: jalr $25 nop lw $28,24($fp) nop lw $2,%got($LC4)($28) nop addiu $4,$2,%lo($LC4) lw $2,%call16(puts)($28) nop move $25,$2 .reloc 1f,R_MIPS_JALR,puts 1: jalr $25 nop lw $28,24($fp) nop lw $2,%got($LC5)($28) nop addiu $4,$2,%lo($LC5) lw $2,%call16(puts)($28) nop move $25,$2 .reloc 1f,R_MIPS_JALR,puts 1: jalr $25 nop lw $28,24($fp) sw $0,32($fp) b $L2 nop $L3: addiu $3,$fp,36 lw $2,32($fp) nop sll $2,$2,2 sll $4,$2,2 addu $2,$2,$4 addu $5,$3,$2 addiu $3,$fp,136 lw $2,32($fp) nop sll $2,$2,2 sll $4,$2,2 addu $2,$2,$4 addu $6,$3,$2 addiu $3,$fp,236 lw $2,32($fp) nop sll $2,$2,2 sll $4,$2,2 addu $2,$2,$4 addu $4,$3,$2 lw $2,32($fp) nop sll $2,$2,2 addiu $3,$fp,32 addu $2,$3,$2 lw $2,304($2) nop sw $2,16($sp) move $7,$4 lw $2,%got($LC6)($28) nop addiu $4,$2,%lo($LC6) lw $2,%call16(printf)($28) nop move $25,$2 .reloc 1f,R_MIPS_JALR,printf 1: jalr $25 nop lw $28,24($fp) li $4,10 # 0xa lw $2,%call16(putchar)($28) nop move $25,$2 .reloc 1f,R_MIPS_JALR,putchar 1: jalr $25 nop lw $28,24($fp) lw $2,32($fp) nop addiu $2,$2,1 sw $2,32($fp) $L2: lw $2,32($fp) nop slt $2,$2,5 bne $2,$0,$L3 nop move $2,$0 move $sp,$fp lw $31,364($sp) lw $fp,360($sp) addiu $sp,$sp,368 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"