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

Convert C to mips. I\'ve been lost for days please give me a hand. The first ima

ID: 3917856 • Letter: C

Question

Convert C to mips. I've been lost for days please give me a hand. The first image is the C code that needs to be converted, the second image is the format I should follow. Thanks.

#define ARRAYSIZE 16 int intarrayCl-1, 5, -3, 6, 12, 21, 18, 44, 32, 9, 23, 10, 11, 99, 100, 24; void swap (int little) int swapvalue; svapvalue - intarray[little]: intarray [little] - intarray CARRAYSIZE-11; intarray CARRAYSIZE-1] - swapvalue; main) int i; int littleindex = ARRAYSIZE-1; (i=ARRAYSIZE-1; -1; i--) { î > if (intarray[i]

Explanation / Answer

.file 1 ""

.section .mdebug.abi32

.previous

.nan legacy

.module fp=32

.module nooddspreg

.abicalls

.globl intarray

.data

.align 2

.type intarray, @object

.size intarray, 64

intarray:

.word 1

.word 5

.word -3

.word 6

.word 12

.word 21

.word 18

.word 44

.word 32

.word 9

.word 23

.word 10

.word 11

.word 99

.word 100

.word 24

.text

.align 2

.globl swap

.set nomips16

.set nomicromips

.ent swap

.type swap, @function

swap:

.frame $fp,24,$31 # vars= 8, regs= 1/0, args= 0, gp= 8

.mask 0x40000000,-4

.fmask 0x00000000,0

.set noreorder

.cpload $25

.set nomacro

addiu $sp,$sp,-24

sw $fp,20($sp)

move $fp,$sp

.cprestore 0

sw $4,24($fp)

movz $31,$31,$0

lw $3,%got(intarray)($28)

lw $2,24($fp)

nop

sll $2,$2,2

addu $2,$3,$2

lw $2,0($2)

nop

sw $2,8($fp)

lw $2,%got(intarray)($28)

nop

lw $3,60($2)

lw $4,%got(intarray)($28)

lw $2,24($fp)

nop

sll $2,$2,2

addu $2,$4,$2

sw $3,0($2)

lw $2,%got(intarray)($28)

lw $3,8($fp)

nop

sw $3,60($2)

nop

move $sp,$fp

lw $fp,20($sp)

addiu $sp,$sp,24

j $31

nop

.set macro

.set reorder

.end swap

.size swap, .-swap

.align 2

.globl main

.set nomips16

.set nomicromips

.ent main

.type main, @function

main:

.frame $fp,40,$31 # vars= 8, regs= 2/0, args= 16, gp= 8

.mask 0xc0000000,-4

.fmask 0x00000000,0

.set noreorder

.cpload $25

.set nomacro

addiu $sp,$sp,-40

sw $31,36($sp)

sw $fp,32($sp)

move $fp,$sp

.cprestore 16

movz $31,$31,$0

li $2,15 # 0xf

sw $2,28($fp)

li $2,15 # 0xf

sw $2,24($fp)

b $L3

nop

$L5:

lw $3,%got(intarray)($28)

lw $2,24($fp)

nop

sll $2,$2,2

addu $2,$3,$2

lw $3,0($2)

lw $4,%got(intarray)($28)

lw $2,28($fp)

nop

sll $2,$2,2

addu $2,$4,$2

lw $2,0($2)

nop

slt $2,$3,$2

beq $2,$0,$L4

nop

li $2,1 # 0x1

sw $2,28($fp)

$L4:

lw $2,24($fp)

nop

addiu $2,$2,-1

sw $2,24($fp)

$L3:

lw $2,24($fp)

nop

bgez $2,$L5

nop

lw $4,28($fp)

lw $2,%got(swap)($28)

nop

move $25,$2

.reloc 1f,R_MIPS_JALR,swap

1: jalr $25

nop

lw $28,16($fp)

move $2,$0

move $sp,$fp

lw $31,36($sp)

lw $fp,32($sp)

addiu $sp,$sp,40

j $31

nop

.set macro

.set reorder

.end main

.size main, .-main