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
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.