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

Translate C++ code into MIPS assembly language. Clarification: The objective of

ID: 3803988 • Letter: T

Question

Translate C++ code into MIPS assembly language.

Clarification:

The objective of this problem is to translate the merge method written in C++ (which takes an array of two, adjacent sorted arrays i.e. [1,2,3,4,5,12,13,14,15,16] and sorts the array into one sorted array) into MIPS Assembly language. So essentially, a conversion of the code written above into MIPS

int c[100]; //c[100] is a global array

void merge(int a[], int low, int high, int mid){

int i, j, k;

i = low;

k = low;

j = mid + 1;

while (i <= mid && j <= high){

if (a[i] < a[j]) {

c[k] = a[i];

k++;

i++;

}

else {

c[k] = a[j];

k++; j++;

}

}

while (i <= mid){

c[k] = a[i];

k++;

i++;

}

while (j <= high){

c[k] = a[j];

k++;

j++;

}

for (i = low; i < k; i++){

a[i] = c[i];

}

Explanation / Answer

.file 1 "" .section .mdebug.abi32 .previous .gnu_attribute 4, 1 .abicalls .globl c .section .bss,"aw",@nobits .align 2 .type c, @object .size c, 400 c: .space 400 .text .align 2 .globl _Z5mergePiiii $LFB0 = . .set nomips16 .ent _Z5mergePiiii .type _Z5mergePiiii, @function _Z5mergePiiii: .frame $fp,32,$31 # vars= 16, regs= 1/0, args= 0, gp= 8 .mask 0x40000000,-4 .fmask 0x00000000,0 .set noreorder .cpload $25 .set nomacro addiu $sp,$sp,-32 $LCFI0: sw $fp,28($sp) $LCFI1: move $fp,$sp movz $31,$31,$0 $LCFI2: .cprestore 0 sw $4,32($fp) sw $5,36($fp) sw $6,40($fp) sw $7,44($fp) lw $2,36($fp) nop sw $2,16($fp) lw $2,36($fp) nop sw $2,8($fp) lw $2,44($fp) nop addiu $2,$2,1 sw $2,12($fp) b $L2 nop $L6: lw $2,16($fp) nop sll $2,$2,2 lw $3,32($fp) nop addu $2,$3,$2 lw $3,0($2) lw $2,12($fp) nop sll $2,$2,2 lw $4,32($fp) nop addu $2,$4,$2 lw $2,0($2) nop slt $2,$3,$2 beq $2,$0,$L3 nop lw $2,8($fp) lw $3,16($fp) nop sll $3,$3,2 lw $4,32($fp) nop addu $3,$4,$3 lw $3,0($3) lw $4,%got(c)($28) sll $2,$2,2 addu $2,$4,$2 sw $3,0($2) lw $2,8($fp) nop addiu $2,$2,1 sw $2,8($fp) lw $2,16($fp) nop addiu $2,$2,1 sw $2,16($fp) b $L2 nop $L3: lw $2,8($fp) lw $3,12($fp) nop sll $3,$3,2 lw $4,32($fp) nop addu $3,$4,$3 lw $3,0($3) lw $4,%got(c)($28) sll $2,$2,2 addu $2,$4,$2 sw $3,0($2) lw $2,8($fp) nop addiu $2,$2,1 sw $2,8($fp) lw $2,12($fp) nop addiu $2,$2,1 sw $2,12($fp) $L2: lw $3,16($fp) lw $2,44($fp) nop slt $2,$2,$3 bne $2,$0,$L4 nop lw $3,12($fp) lw $2,40($fp) nop slt $2,$2,$3 bne $2,$0,$L4 nop li $2,1 # 0x1 b $L5 nop $L4: move $2,$0 $L5: bne $2,$0,$L6 nop b $L7 nop $L8: lw $2,8($fp) lw $3,16($fp) nop sll $3,$3,2 lw $4,32($fp) nop addu $3,$4,$3 lw $3,0($3) lw $4,%got(c)($28) sll $2,$2,2 addu $2,$4,$2 sw $3,0($2) lw $2,8($fp) nop addiu $2,$2,1 sw $2,8($fp) lw $2,16($fp) nop addiu $2,$2,1 sw $2,16($fp) $L7: lw $3,16($fp) lw $2,44($fp) nop slt $2,$2,$3 xori $2,$2,0x1 andi $2,$2,0x00ff bne $2,$0,$L8 nop b $L9 nop $L10: lw $2,8($fp) lw $3,12($fp) nop sll $3,$3,2 lw $4,32($fp) nop addu $3,$4,$3 lw $3,0($3) lw $4,%got(c)($28) sll $2,$2,2 addu $2,$4,$2 sw $3,0($2) lw $2,8($fp) nop addiu $2,$2,1 sw $2,8($fp) lw $2,12($fp) nop addiu $2,$2,1 sw $2,12($fp) $L9: lw $3,12($fp) lw $2,40($fp) nop slt $2,$2,$3 xori $2,$2,0x1 andi $2,$2,0x00ff bne $2,$0,$L10 nop lw $2,36($fp) nop sw $2,16($fp) b $L11 nop $L12: lw $2,16($fp) nop sll $2,$2,2 lw $3,32($fp) nop addu $2,$3,$2 lw $3,16($fp) lw $4,%got(c)($28) sll $3,$3,2 addu $3,$4,$3 lw $3,0($3) nop sw $3,0($2) lw $2,16($fp) nop addiu $2,$2,1 sw $2,16($fp) $L11: lw $3,16($fp) lw $2,8($fp) nop slt $2,$3,$2 andi $2,$2,0x00ff bne $2,$0,$L12 nop move $sp,$fp lw $fp,28($sp) addiu $sp,$sp,32 j $31 nop .set macro .set reorder .end _Z5mergePiiii $LFE0: .size _Z5mergePiiii, .-_Z5mergePiiii .ident "GCC: (Debian 4.4.5-8) 4.4.5"

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote