Translate the following into MIPS assembly language: #include <iostream> using n
ID: 3605780 • Letter: T
Question
Translate the following into MIPS assembly language:
#include <iostream>
using namespace std;
int a1[12],
a2[12],
a3[12];
char einStr[] = "Enter integer #";
char moStr[] = "Max of ";
char ieStr[] = " ints entered...";
char emiStr[] = "Enter more ints? (n or N = no, others = yes) ";
char begA1Str[] = "beginning a1: ";
char am1dA1Str[] = "a1 (dups<=1): ";
char procA1Str[] = "processed a1: ";
char procA2Str[] = " a2: ";
char procA3Str[] = " a3: ";
char dacStr[] = "Do another case? (n or N = no, others = yes) ";
char dlStr[] = "================================";
char byeStr[] = "bye...";
int main()
{
char reply;
int used1,
used2,
used3,
truncAvg,
found,
sum,
*hopPtr1,
*hopPtr11,
*hopPtr2,
*hopPtr3,
*endPtr1,
*endPtr11,
*endPtr2,
*endPtr3;
reply = 'y';
//while (reply != 'n' && reply != 'N')
goto WTest1;
begW1:// {
used1 = 0;
hopPtr1 = a1;
//while (reply != 'n' && reply != 'N')
goto WTest2;
begW2:// {
cout << einStr;
cout << (used1 + 1);
cout << ':' << ' ';
cin >> *hopPtr1;
++used1;
++hopPtr1;
//if (used1 < 12)
if (used1 >= 12) goto else1;
begI1:// {
cout << emiStr;
cin >> reply;
goto endI1;
// }
else1:// else
// {
cout << moStr << 12 << ieStr << endl;
reply = 'n';
endI1:// }
//WTest2: if (reply != 'n' && reply != 'N') goto begW2;
WTest2: if (reply == 'n') goto xitW2;
if (reply != 'N') goto begW2;
endW2:// }
xitW2:
cout << begA1Str;
//if (used1 > 0)
if (used1 <= 0) goto endI2;
begI2:// {
hopPtr1 = a1;
endPtr1 = a1 + used1;
// do
begDW1:// {
cout << *hopPtr1 << ' ' << ' ';
++hopPtr1;
endDW1:// }
//while (hopPtr1 < endPtr1);
DWTest1: if (hopPtr1 < endPtr1) goto begDW1;
endI2:// }
cout << endl;
//if (used1 > 1)
if (used1 <= 1) goto else3;
begI3:// {
hopPtr1 = a1;
endPtr1 = a1 + used1 - 1;
//while (hopPtr1 < endPtr1)
goto WTest3;
begW3:// {
found = 0;
//for (hopPtr2 = hopPtr1 + 1, endPtr2 = a1 + used1; hopPtr2 < endPtr2; ++hopPtr2)
hopPtr2 = hopPtr1 + 1;
endPtr2 = a1 + used1;
goto FTest1;
begF1:// {
//if (*hopPtr2 == *hopPtr1)
if (*hopPtr2 != *hopPtr1) goto endI4;
begI4:// {
//if (found == 1)
if (found != 1) goto else5;
begI5:// {
//for (hopPtr3 = hopPtr2 + 1, endPtr3 = a1 + used1; hopPtr3 < endPtr3; ++hopPtr3)
hopPtr3 = hopPtr2 + 1;
endPtr3 = a1 + used1;
goto FTest2;
begF2:// {
*(hopPtr3 - 1) = *hopPtr3;
++hopPtr3;
FTest2: if (hopPtr3 < endPtr3) goto begF2;
endF2:// }
--used1;
--endPtr1;
--endPtr2;
--endPtr3;
--hopPtr2;
goto endI5;
// }
else5:// else
// {
++found;
endI5:// }
endI4:// }
++hopPtr2;
FTest1: if (hopPtr2 < endPtr2) goto begF1;
endF1:// }
++hopPtr1;
WTest3: if (hopPtr1 < endPtr1) goto begW3;
endW3:// }
cout << am1dA1Str;
//if (used1 > 0)
if (used1 <= 0) goto endI6;
begI6:// {
hopPtr1 = a1;
endPtr1 = a1 + used1;
// do
begDW2:// {
cout << *hopPtr1 << ' ' << ' ';
++hopPtr1;
endDW2:// }
//while (hopPtr1 < endPtr1);
DWTest2: if (hopPtr1 < endPtr1) goto begDW2;
endI6:// }
cout << endl;
//if (used1 > 0)
if (used1 <= 0) goto endI7;
begI7:// {
sum = 0;
hopPtr1 = a1 + used1 - 1;
endPtr1 = a1;
// do
begDW3:// {
sum += *hopPtr1;
--hopPtr1;
endDW3:// }
//while (hopPtr1 >= endPtr1);
DWTest3: if (hopPtr1 >= endPtr1) goto begDW3;
truncAvg = sum / used1;
used2 = 0;
used3 = 0;
hopPtr2 = a2;
hopPtr3 = a3;
//for (hopPtr1 = a1, endPtr1 = a1 + used1; hopPtr1 < endPtr1; ++hopPtr1)
hopPtr1 = a1;
endPtr1 = a1 + used1;
goto FTest3;
begF3:// {
//if (*hopPtr1 != truncAvg)
if (*hopPtr1 == truncAvg) goto endI8;
begI8:// {
//if (*hopPtr1 < truncAvg)
if (*hopPtr1 >= truncAvg) goto else9;
begI9:// {
*hopPtr2 = *hopPtr1;
++used2;
++hopPtr2;
goto endI9;
// }
else9:// else
// {
*hopPtr3 = *hopPtr1;
++used3;
++hopPtr3;
endI9:// }
//for (hopPtr11 = hopPtr1 + 1, endPtr11 = a1 + used1; hopPtr11 < endPtr11; ++hopPtr11)
hopPtr11 = hopPtr1 + 1;
endPtr11 = a1 + used1;
goto FTest4;
begF4:// {
*(hopPtr11 - 1) = *hopPtr11;
++hopPtr11;
FTest4: if (hopPtr11 < endPtr11) goto begF4;
endF4:// }
--used1;
--endPtr1;
--hopPtr1;
endI8:// }
++hopPtr1;
FTest3: if (hopPtr1 < endPtr1) goto begF3;
endF3:// }
//if (used1 == 0)
if (used1 != 0) goto endI10;
begI10:// {
*(a1+ 0) = truncAvg;
++used1;
endI10:// }
endI7:// }
goto endI3;
// }
else3:// else
// {
hopPtr1 = a1;
cout << am1dA1Str;
cout << *hopPtr1;
cout << endl;
used2 = 0;
used3 = 0;
endI3:// }
cout << procA1Str;
//if (used1 > 0)
if (used1 <= 0) goto endI11;
begI11:// {
hopPtr1 = a1;
endPtr1 = a1 + used1;
// do
begDW4:// {
cout << *hopPtr1 << ' ' << ' ';
++hopPtr1;
endDW4:// }
//while (hopPtr1 < endPtr1);
DWTest4: if (hopPtr1 < endPtr1) goto begDW4;
endI11:// }
cout << endl;
cout << procA2Str;
//if (used2 > 0)
if (used2 <= 0) goto endI12;
begI12:// {
hopPtr2 = a2;
endPtr2 = a2 + used2;
// do
begDW5:// {
cout << *hopPtr2 << ' ' << ' ';
++hopPtr2;
endDW5:// }
//while (hopPtr2 < endPtr2);
DWTest5: if (hopPtr2 < endPtr2) goto begDW5;
endI12:// }
cout << endl;
cout << procA3Str;
//if (used3 > 0)
if (used3 <= 0) goto endI13;
begI13:// {
hopPtr3 = a3;
endPtr3 = a3 + used3;
// do
begDW6:// {
cout << *hopPtr3 << ' ' << ' ';
++hopPtr3;
endDW6:// }
//while (hopPtr3 < endPtr3);
DWTest6: if (hopPtr3 < endPtr3) goto begDW6;
endI13:// }
cout << endl;
cout << dacStr;
cin >> reply;
//WTest1: if (reply != 'n' && reply != 'N') goto begW1;
WTest1: if (reply == 'n') goto xitW1;
if (reply != 'N') goto begW1;
endW1:// }
xitW1:
cout << dlStr << ' ';
cout << byeStr << ' ';
cout << dlStr << ' ';
return 0;
}
Explanation / Answer
SOLUTION :
a1:
a2:
a3:
einStr:
.ascii "Enter integer #"
moStr:
.ascii "Max of "
ieStr:
.ascii " ints entered..."
emiStr:
.ascii "Enter more ints? (n or N = no, others = yes) "
begA1Str:
.ascii "beginning a1: "
am1dA1Str:
.ascii "a1 (dups<=1): "
procA1Str:
.ascii "processed a1: "
procA2Str:
.ascii " a2: "
procA3Str:
.ascii " a3: "
dacStr:
.ascii "Do another case? (n or N = no, others = yes) "
dlStr:
.ascii "================================"
byeStr:
.ascii "bye..."
main:
addiu $sp,$sp,-96
sw $31,92($sp)
sw $fp,88($sp)
move $fp,$sp
li $2,121 # 0x79
sb $2,80($fp)
b $L2
nop
nop
sw $0,24($fp)
lui $2,%hi(a1)
addiu $2,$2,%lo(a1)
sw $2,44($fp)
b $L4
nop
nop
lui $2,%hi(einStr)
addiu $5,$2,%lo(einStr)
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
nop
lw $2,24($fp)
nop
addiu $2,$2,1
move $5,$2
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
nop
li $5,58 # 0x3a
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)
nop
li $5,32 # 0x20
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)
nop
lw $5,44($fp)
lui $2,%hi(std::cin)
addiu $4,$2,%lo(std::cin)
jal std::basic_istream<char, std::char_traits<char> >::operator>>(int&)
nop
lw $2,24($fp)
nop
addiu $2,$2,1
sw $2,24($fp)
lw $2,44($fp)
nop
addiu $2,$2,4
sw $2,44($fp)
lw $2,24($fp)
nop
slt $2,$2,12
beq $2,$0,$L88
nop
lui $2,%hi(emiStr)
addiu $5,$2,%lo(emiStr)
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
nop
addiu $2,$fp,80
move $5,$2
lui $2,%hi(std::cin)
addiu $4,$2,%lo(std::cin)
jal std::basic_istream<char, std::char_traits<char> >& std::operator>><char, std::char_traits<char> >(std::basic_istream<char, std::char_traits<char> >&, char&)
nop
b $L4
nop
nop
lui $2,%hi(moStr)
addiu $5,$2,%lo(moStr)
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
nop
li $5,12 # 0xc
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
nop
move $3,$2
lui $2,%hi(ieStr)
addiu $5,$2,%lo(ieStr)
move $4,$3
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
nop
move $3,$2
lui $2,%hi(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))
addiu $5,$2,%lo(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))
move $4,$3
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))
nop
li $2,110 # 0x6e
sb $2,80($fp)
lb $3,80($fp)
li $2,110 # 0x6e
beq $3,$2,$L89
nop
lb $3,80($fp)
li $2,78 # 0x4e
bne $3,$2,$L90
nop
b $L11
nop
nop
lui $2,%hi(begA1Str)
addiu $5,$2,%lo(begA1Str)
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
nop
lw $2,24($fp)
nop
blez $2,$L91
nop
lui $2,%hi(a1)
addiu $2,$2,%lo(a1)
sw $2,44($fp)
lw $2,24($fp)
nop
sll $3,$2,2
lui $2,%hi(a1)
addiu $2,$2,%lo(a1)
addu $2,$3,$2
sw $2,60($fp)
lw $2,44($fp)
nop
lw $2,0($2)
nop
move $5,$2
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
nop
li $5,32 # 0x20
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)
nop
li $5,32 # 0x20
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)
nop
lw $2,44($fp)
nop
addiu $2,$2,4
sw $2,44($fp)
lw $3,44($fp)
lw $2,60($fp)
nop
sltu $2,$3,$2
beq $2,$0,$L13
nop
b $L14
nop
nop
lui $2,%hi(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))
addiu $5,$2,%lo(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))
nop
lw $2,24($fp)
nop
slt $2,$2,2
bne $2,$0,$L92
nop
lui $2,%hi(a1)
addiu $2,$2,%lo(a1)
sw $2,44($fp)
lw $3,24($fp)
li $2,1073676288 # 0x3fff0000
ori $2,$2,0xffff
addu $2,$3,$2
sll $3,$2,2
lui $2,%hi(a1)
addiu $2,$2,%lo(a1)
addu $2,$3,$2
sw $2,60($fp)
b $L19
nop
nop
sw $0,36($fp)
lw $2,44($fp)
nop
addiu $2,$2,4
sw $2,52($fp)
lw $2,24($fp)
nop
sll $3,$2,2
lui $2,%hi(a1)
addiu $2,$2,%lo(a1)
addu $2,$3,$2
sw $2,64($fp)
b $L21
nop
nop
lw $2,52($fp)
nop
lw $3,0($2)
lw $2,44($fp)
nop
lw $2,0($2)
nop
bne $3,$2,$L93
nop
lw $3,36($fp)
li $2,1 # 0x1
bne $3,$2,$L94
nop
lw $2,52($fp)
nop
addiu $2,$2,4
sw $2,56($fp)
lw $2,24($fp)
nop
sll $3,$2,2
lui $2,%hi(a1)
addiu $2,$2,%lo(a1)
addu $2,$3,$2
sw $2,68($fp)
b $L27
nop
nop
lw $2,56($fp)
nop
addiu $2,$2,-4
lw $3,56($fp)
nop
lw $3,0($3)
nop
sw $3,0($2)
lw $2,56($fp)
nop
addiu $2,$2,4
sw $2,56($fp)
lw $3,56($fp)
lw $2,68($fp)
nop
sltu $2,$3,$2
bne $2,$0,$L95
nop
lw $2,24($fp)
nop
addiu $2,$2,-1
sw $2,24($fp)
lw $2,60($fp)
nop
addiu $2,$2,-4
sw $2,60($fp)
lw $2,64($fp)
nop
addiu $2,$2,-4
sw $2,64($fp)
lw $2,68($fp)
nop
addiu $2,$2,-4
sw $2,68($fp)
lw $2,52($fp)
nop
addiu $2,$2,-4
sw $2,52($fp)
b $L30
nop
nop
lw $2,36($fp)
nop
addiu $2,$2,1
sw $2,36($fp)
b $L30
nop
nop
lw $2,52($fp)
nop
addiu $2,$2,4
sw $2,52($fp)
lw $3,52($fp)
lw $2,64($fp)
nop
sltu $2,$3,$2
bne $2,$0,$L96
nop
lw $2,44($fp)
nop
addiu $2,$2,4
sw $2,44($fp)
lw $3,44($fp)
lw $2,60($fp)
nop
sltu $2,$3,$2
bne $2,$0,$L97
nop
lui $2,%hi(am1dA1Str)
addiu $5,$2,%lo(am1dA1Str)
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
nop
lw $2,24($fp)
nop
blez $2,$L98
nop
lui $2,%hi(a1)
addiu $2,$2,%lo(a1)
sw $2,44($fp)
lw $2,24($fp)
nop
sll $3,$2,2
lui $2,%hi(a1)
addiu $2,$2,%lo(a1)
addu $2,$3,$2
sw $2,60($fp)
lw $2,44($fp)
nop
lw $2,0($2)
nop
move $5,$2
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
nop
li $5,32 # 0x20
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)
nop
li $5,32 # 0x20
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)
nop
lw $2,44($fp)
nop
addiu $2,$2,4
sw $2,44($fp)
lw $3,44($fp)
lw $2,60($fp)
nop
sltu $2,$3,$2
beq $2,$0,$L34
nop
b $L35
nop
nop
lui $2,%hi(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))
addiu $5,$2,%lo(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))
nop
lw $2,24($fp)
nop
blez $2,$L99
nop
sw $0,40($fp)
lw $3,24($fp)
li $2,1073676288 # 0x3fff0000
ori $2,$2,0xffff
addu $2,$3,$2
sll $3,$2,2
lui $2,%hi(a1)
addiu $2,$2,%lo(a1)
addu $2,$3,$2
sw $2,44($fp)
lui $2,%hi(a1)
addiu $2,$2,%lo(a1)
sw $2,60($fp)
lw $2,44($fp)
nop
lw $2,0($2)
lw $3,40($fp)
nop
addu $2,$3,$2
sw $2,40($fp)
lw $2,44($fp)
nop
addiu $2,$2,-4
sw $2,44($fp)
lw $3,44($fp)
lw $2,60($fp)
nop
sltu $2,$3,$2
bne $2,$0,$L43
nop
b $L40
nop
lw $3,40($fp)
lw $2,24($fp)
nop
bne $2,$0,1f
div $0,$3,$2
break 7
1:
mfhi $2
mflo $2
sw $2,72($fp)
sw $0,28($fp)
sw $0,32($fp)
lui $2,%hi(a2)
addiu $2,$2,%lo(a2)
sw $2,52($fp)
lui $2,%hi(a3)
addiu $2,$2,%lo(a3)
sw $2,56($fp)
lui $2,%hi(a1)
addiu $2,$2,%lo(a1)
sw $2,44($fp)
lw $2,24($fp)
nop
sll $3,$2,2
lui $2,%hi(a1)
addiu $2,$2,%lo(a1)
addu $2,$3,$2
sw $2,60($fp)
b $L44
nop
nop
lw $2,44($fp)
nop
lw $3,0($2)
lw $2,72($fp)
nop
beq $3,$2,$L100
nop
lw $2,44($fp)
nop
lw $3,0($2)
lw $2,72($fp)
nop
slt $2,$3,$2
beq $2,$0,$L101
nop
lw $2,44($fp)
nop
lw $3,0($2)
lw $2,52($fp)
nop
sw $3,0($2)
lw $2,28($fp)
nop
addiu $2,$2,1
sw $2,28($fp)
lw $2,52($fp)
nop
addiu $2,$2,4
sw $2,52($fp)
b $L50
nop
nop
lw $2,44($fp)
nop
lw $3,0($2)
lw $2,56($fp)
nop
sw $3,0($2)
lw $2,32($fp)
nop
addiu $2,$2,1
sw $2,32($fp)
lw $2,56($fp)
nop
addiu $2,$2,4
sw $2,56($fp)
lw $2,44($fp)
nop
addiu $2,$2,4
sw $2,48($fp)
lw $2,24($fp)
nop
sll $3,$2,2
lui $2,%hi(a1)
addiu $2,$2,%lo(a1)
addu $2,$3,$2
sw $2,76($fp)
b $L51
nop
nop
lw $2,48($fp)
nop
addiu $2,$2,-4
lw $3,48($fp)
nop
lw $3,0($3)
nop
sw $3,0($2)
lw $2,48($fp)
nop
addiu $2,$2,4
sw $2,48($fp)
lw $3,48($fp)
lw $2,76($fp)
nop
sltu $2,$3,$2
bne $2,$0,$L102
nop
lw $2,24($fp)
nop
addiu $2,$2,-1
sw $2,24($fp)
lw $2,60($fp)
nop
addiu $2,$2,-4
sw $2,60($fp)
lw $2,44($fp)
nop
addiu $2,$2,-4
sw $2,44($fp)
b $L47
nop
nop
lw $2,44($fp)
nop
addiu $2,$2,4
sw $2,44($fp)
lw $3,44($fp)
lw $2,60($fp)
nop
sltu $2,$3,$2
bne $2,$0,$L103
nop
lw $2,24($fp)
nop
bne $2,$0,$L104
nop
lui $2,%hi(a1)
lw $3,72($fp)
nop
sw $3,%lo(a1)($2)
lw $2,24($fp)
nop
addiu $2,$2,1
sw $2,24($fp)
b $L57
nop
nop
b $L57
nop
nop
b $L57
nop
nop
lui $2,%hi(a1)
addiu $2,$2,%lo(a1)
sw $2,44($fp)
lui $2,%hi(am1dA1Str)
addiu $5,$2,%lo(am1dA1Str)
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
nop
lw $2,44($fp)
nop
lw $2,0($2)
nop
move $5,$2
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
nop
lui $2,%hi(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))
addiu $5,$2,%lo(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))
nop
sw $0,28($fp)
sw $0,32($fp)
lui $2,%hi(procA1Str)
addiu $5,$2,%lo(procA1Str)
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
nop
lw $2,24($fp)
nop
blez $2,$L105
nop
lui $2,%hi(a1)
addiu $2,$2,%lo(a1)
sw $2,44($fp)
lw $2,24($fp)
nop
sll $3,$2,2
lui $2,%hi(a1)
addiu $2,$2,%lo(a1)
addu $2,$3,$2
sw $2,60($fp)
lw $2,44($fp)
nop
lw $2,0($2)
nop
move $5,$2
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
nop
li $5,32 # 0x20
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)
nop
li $5,32 # 0x20
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)
nop
lw $2,44($fp)
nop
addiu $2,$2,4
sw $2,44($fp)
lw $3,44($fp)
lw $2,60($fp)
nop
sltu $2,$3,$2
beq $2,$0,$L59
nop
b $L60
nop
nop
lui $2,%hi(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))
addiu $5,$2,%lo(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))
nop
lui $2,%hi(procA2Str)
addiu $5,$2,%lo(procA2Str)
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
nop
lw $2,28($fp)
nop
blez $2,$L106
nop
lui $2,%hi(a2)
addiu $2,$2,%lo(a2)
sw $2,52($fp)
lw $2,28($fp)
nop
sll $3,$2,2
lui $2,%hi(a2)
addiu $2,$2,%lo(a2)
addu $2,$3,$2
sw $2,64($fp)
lw $2,52($fp)
nop
lw $2,0($2)
nop
move $5,$2
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
nop
li $5,32 # 0x20
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)
nop
li $5,32 # 0x20
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)
nop
lw $2,52($fp)
nop
addiu $2,$2,4
sw $2,52($fp)
lw $3,52($fp)
lw $2,64($fp)
nop
sltu $2,$3,$2
beq $2,$0,$L64
nop
b $L65
nop
nop
lui $2,%hi(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))
addiu $5,$2,%lo(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))
nop
lui $2,%hi(procA3Str)
addiu $5,$2,%lo(procA3Str)
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
nop
lw $2,32($fp)
nop
blez $2,$L107
nop
lui $2,%hi(a3)
addiu $2,$2,%lo(a3)
sw $2,56($fp)
lw $2,32($fp)
nop
sll $3,$2,2
lui $2,%hi(a3)
addiu $2,$2,%lo(a3)
addu $2,$3,$2
sw $2,68($fp)
lw $2,56($fp)
nop
lw $2,0($2)
nop
move $5,$2
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
nop
li $5,32 # 0x20
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)
nop
li $5,32 # 0x20
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)
nop
lw $2,56($fp)
nop
addiu $2,$2,4
sw $2,56($fp)
lw $3,56($fp)
lw $2,68($fp)
nop
sltu $2,$3,$2
beq $2,$0,$L69
nop
b $L70
nop
nop
lui $2,%hi(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))
addiu $5,$2,%lo(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))
nop
lui $2,%hi(dacStr)
addiu $5,$2,%lo(dacStr)
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
nop
addiu $2,$fp,80
move $5,$2
lui $2,%hi(std::cin)
addiu $4,$2,%lo(std::cin)
jal std::basic_istream<char, std::char_traits<char> >& std::operator>><char, std::char_traits<char> >(std::basic_istream<char, std::char_traits<char> >&, char&)
nop
lb $3,80($fp)
li $2,110 # 0x6e
beq $3,$2,$L108
nop
lb $3,80($fp)
li $2,78 # 0x4e
bne $3,$2,$L109
nop
b $L75
nop
nop
lui $2,%hi(dlStr)
addiu $5,$2,%lo(dlStr)
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
nop
li $5,10 # 0xa
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)
nop
lui $2,%hi(byeStr)
addiu $5,$2,%lo(byeStr)
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
nop
li $5,10 # 0xa
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)
nop
lui $2,%hi(dlStr)
addiu $5,$2,%lo(dlStr)
lui $2,%hi(std::cout)
addiu $4,$2,%lo(std::cout)
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
nop
li $5,10 # 0xa
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)
nop
move $2,$0
move $sp,$fp
lw $31,92($sp)
lw $fp,88($sp)
addiu $sp,$sp,96
j $31
nop
__static_initialization_and_destruction_0(int, int):
addiu $sp,$sp,-32
sw $31,28($sp)
sw $fp,24($sp)
move $fp,$sp
sw $4,32($fp)
sw $5,36($fp)
lw $3,32($fp)
li $2,1 # 0x1
bne $3,$2,$L112
nop
lw $3,36($fp)
li $2,65535 # 0xffff
bne $3,$2,$L112
nop
lui $2,%hi(std::__ioinit)
addiu $4,$2,%lo(std::__ioinit)
jal std::ios_base::Init::Init()
nop
lui $2,%hi(__dso_handle)
addiu $6,$2,%lo(__dso_handle)
lui $2,%hi(std::__ioinit)
addiu $5,$2,%lo(std::__ioinit)
lui $2,%hi(std::ios_base::Init::~Init())
addiu $4,$2,%lo(std::ios_base::Init::~Init())
jal __cxa_atexit
nop
nop
move $sp,$fp
lw $31,28($sp)
lw $fp,24($sp)
addiu $sp,$sp,32
j $31
nop
_GLOBAL__sub_I_a1:
addiu $sp,$sp,-32
sw $31,28($sp)
sw $fp,24($sp)
move $fp,$sp
li $5,65535 # 0xffff
li $4,1 # 0x1
jal __static_initialization_and_destruction_0(int, int)
nop
move $sp,$fp
lw $31,28($sp)
lw $fp,24($sp)
addiu $sp,$sp,32
j $31
nop
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.