Translate this C++ code into MIPS. Thank you. #include<iostream> #include<iomani
ID: 3593563 • Letter: T
Question
Translate this C++ code into MIPS. Thank you.
#include<iostream>
#include<iomanip>
#include<fstream>
#include<string>
using namespace std;
//named constants - residential customers
const double RES_BILL_PROC_FEES = 4.50;
const double RES_BASIC_SERV_COST = 20.50;
const double RES_COST_PREM_CHANNEL = 7.50;
//named constants - bussiness customers
const double BUS_BILL_PROC_FEES = 15.00;
const double BUS_BASIC_SERV_COST = 75.00;
const double BUS_BASIC_CONN_COST = 5.00;
const double BUS_COST_PREM_CHANNEL = 50.00;
int main()
{
//varible declaration
int accountNumber;
int numOfPremChannels;
int numOfBasicServConn;
int countBillOfResidential = 0;
int countBillOfBussiness = 0;
double amountDue = 0.00;
double totalAmountResidential = 0.00;
double totalAmountBussiness = 0.00;
char customerType;
//read the file
ifstream inFile;
inFile.open("data.txt");
//check the input file exist
if(inFile.fail())
{
cout << "The file doesn't exist!" <<endl;
exit(1);
}
//create and write to another file
ofstream outFile;
outFile.open("Billing.txt");
outFile << fixed << showpoint;
outFile << setprecision(2);
outFile << "Customer Type" << setw (20) << "Account Number"
<< setw(35) << "Number of Service Connection"
<< setw(25) << "Number of Channel"
<< setw(20) << "Amount Due" << endl;
outFile << "----------------------------------------------------------------------------------------------------------------" <<endl;
while(!inFile.eof())
{
inFile >> customerType >> accountNumber >> numOfBasicServConn >> numOfPremChannels;
if (customerType == 'R' || customerType == 'r')
{
amountDue = RES_BILL_PROC_FEES + RES_BASIC_SERV_COST + (numOfPremChannels * RES_COST_PREM_CHANNEL);
outFile << "Residential"
<< setw(17) << accountNumber
//<< setw(27) << numOfBasicServConn
<< setw(55) << numOfPremChannels
<< setw(22) << "$" << amountDue <<endl;
countBillOfResidential++;
totalAmountResidential += amountDue;
}
else if (customerType == 'B' || customerType == 'b')
{
amountDue = 0.00;
if(numOfBasicServConn <= 10)
{
amountDue = BUS_BILL_PROC_FEES + BUS_BASIC_SERV_COST + (BUS_COST_PREM_CHANNEL * numOfPremChannels);
}
else
{
amountDue = BUS_BILL_PROC_FEES + BUS_BASIC_SERV_COST
+ ((numOfBasicServConn - 10) * BUS_BASIC_CONN_COST) + (BUS_COST_PREM_CHANNEL * numOfPremChannels);
}
outFile << "Bussiness"
<< setw(19) << accountNumber
<< setw(27) << numOfBasicServConn
<< setw(28) << numOfPremChannels
<< setw(22) << "$" << amountDue <<endl;
countBillOfBussiness++;
totalAmountBussiness += amountDue;
}
else
{
outFile << "Invalid Customer Type!" <<endl;
}
}
outFile << endl;
outFile << "SUMMARY INFORMATION" << endl;
outFile << "----------------------------------------------------------------------------------------------------------------" <<endl;
outFile << "Customer Type" << setw (20) << "Number of Bill"
<< setw(20) << "Total Amount"
<<setw(20) << "Average Amount" << endl;
outFile << "----------------------------------------------------------------------------------------------------------------" <<endl;
outFile << "Residential" << setw(16) << countBillOfResidential
<< setw(17) << "$" << totalAmountResidential
<< setw(15) << "$" << totalAmountResidential / countBillOfResidential << endl;
outFile << "Bussiness" << setw(18) << countBillOfBussiness
<< setw(17) << "$" << totalAmountBussiness
<< setw(14) << "$" << totalAmountBussiness / countBillOfBussiness << endl;
inFile.close();
outFile.close();
cout << "Waiting for computing." << endl;
return 0;
}
Here is the input file name data.text
B12345 16 4
R44212 0 3
B22314 12 5
R23341 0 2
B84772 8 1
B74682 5 2
R87864 0 4
R74621 0 11
B33123 10 7
B53622 7 4
R49124 0 8
B78747 15 5
R67232 0 14
R23427 0 4
B37834 7 12
Explanation / Answer
The Following is the translated MIPS code for the given c++ code:
MIPS code:
std::operator&(std::_Ios_Fmtflags, std::_Ios_Fmtflags):
addiu $sp,$sp,-8
sw $fp,4($sp)
move $fp,$sp
sw $4,8($fp)
sw $5,12($fp)
lw $3,8($fp)
lw $2,12($fp)
nop
and $2,$3,$2
move $sp,$fp
lw $fp,4($sp)
addiu $sp,$sp,8
j $31
nop
std::operator|(std::_Ios_Fmtflags, std::_Ios_Fmtflags):
addiu $sp,$sp,-8
sw $fp,4($sp)
move $fp,$sp
sw $4,8($fp)
sw $5,12($fp)
lw $3,8($fp)
lw $2,12($fp)
nop
or $2,$3,$2
move $sp,$fp
lw $fp,4($sp)
addiu $sp,$sp,8
j $31
nop
std::operator~(std::_Ios_Fmtflags):
addiu $sp,$sp,-8
sw $fp,4($sp)
move $fp,$sp
sw $4,8($fp)
lw $2,8($fp)
nop
nor $2,$0,$2
move $sp,$fp
lw $fp,4($sp)
addiu $sp,$sp,8
j $31
nop
std::operator|=(std::_Ios_Fmtflags&, std::_Ios_Fmtflags):
addiu $sp,$sp,-32
sw $31,28($sp)
sw $fp,24($sp)
move $fp,$sp
sw $4,32($fp)
sw $5,36($fp)
lw $2,32($fp)
nop
lw $2,0($2)
lw $5,36($fp)
move $4,$2
jal std::operator|(std::_Ios_Fmtflags, std::_Ios_Fmtflags)
nop
move $3,$2
lw $2,32($fp)
nop
sw $3,0($2)
lw $2,32($fp)
move $sp,$fp
lw $31,28($sp)
lw $fp,24($sp)
addiu $sp,$sp,32
j $31
nop
std::operator&=(std::_Ios_Fmtflags&, std::_Ios_Fmtflags):
addiu $sp,$sp,-32
sw $31,28($sp)
sw $fp,24($sp)
move $fp,$sp
sw $4,32($fp)
sw $5,36($fp)
lw $2,32($fp)
nop
lw $2,0($2)
lw $5,36($fp)
move $4,$2
jal std::operator&(std::_Ios_Fmtflags, std::_Ios_Fmtflags)
nop
move $3,$2
lw $2,32($fp)
nop
sw $3,0($2)
lw $2,32($fp)
move $sp,$fp
lw $31,28($sp)
lw $fp,24($sp)
addiu $sp,$sp,32
j $31
nop
std::operator|(std::_Ios_Openmode, std::_Ios_Openmode):
addiu $sp,$sp,-8
sw $fp,4($sp)
move $fp,$sp
sw $4,8($fp)
sw $5,12($fp)
lw $3,8($fp)
lw $2,12($fp)
nop
or $2,$3,$2
move $sp,$fp
lw $fp,4($sp)
addiu $sp,$sp,8
j $31
nop
std::ios_base::setf(std::_Ios_Fmtflags):
addiu $sp,$sp,-40
sw $31,36($sp)
sw $fp,32($sp)
move $fp,$sp
sw $4,40($fp)
sw $5,44($fp)
lw $2,40($fp)
nop
lw $2,12($2)
nop
sw $2,24($fp)
lw $2,40($fp)
nop
addiu $2,$2,12
lw $5,44($fp)
move $4,$2
jal std::operator|=(std::_Ios_Fmtflags&, std::_Ios_Fmtflags)
nop
lw $2,24($fp)
move $sp,$fp
lw $31,36($sp)
lw $fp,32($sp)
addiu $sp,$sp,40
j $31
nop
std::ios_base::setf(std::_Ios_Fmtflags, std::_Ios_Fmtflags):
addiu $sp,$sp,-48
sw $31,44($sp)
sw $fp,40($sp)
sw $16,36($sp)
move $fp,$sp
sw $4,48($fp)
sw $5,52($fp)
sw $6,56($fp)
lw $2,48($fp)
nop
lw $2,12($2)
nop
sw $2,24($fp)
lw $2,48($fp)
nop
addiu $16,$2,12
lw $4,56($fp)
jal std::operator~(std::_Ios_Fmtflags)
nop
move $5,$2
move $4,$16
jal std::operator&=(std::_Ios_Fmtflags&, std::_Ios_Fmtflags)
nop
lw $2,48($fp)
nop
addiu $16,$2,12
lw $5,56($fp)
lw $4,52($fp)
jal std::operator&(std::_Ios_Fmtflags, std::_Ios_Fmtflags)
nop
move $5,$2
move $4,$16
jal std::operator|=(std::_Ios_Fmtflags&, std::_Ios_Fmtflags)
nop
lw $2,24($fp)
move $sp,$fp
lw $31,44($sp)
lw $fp,40($sp)
lw $16,36($sp)
addiu $sp,$sp,48
j $31
nop
std::showpoint(std::ios_base&):
addiu $sp,$sp,-32
sw $31,28($sp)
sw $fp,24($sp)
move $fp,$sp
sw $4,32($fp)
li $5,1024 # 0x400
lw $4,32($fp)
jal std::ios_base::setf(std::_Ios_Fmtflags)
nop
lw $2,32($fp)
move $sp,$fp
lw $31,28($sp)
lw $fp,24($sp)
addiu $sp,$sp,32
j $31
nop
std::fixed(std::ios_base&):
addiu $sp,$sp,-32
sw $31,28($sp)
sw $fp,24($sp)
move $fp,$sp
sw $4,32($fp)
li $6,260 # 0x104
li $5,4 # 0x4
lw $4,32($fp)
jal std::ios_base::setf(std::_Ios_Fmtflags, std::_Ios_Fmtflags)
nop
lw $2,32($fp)
move $sp,$fp
lw $31,28($sp)
lw $fp,24($sp)
addiu $sp,$sp,32
j $31
nop
std::setprecision(int):
addiu $sp,$sp,-8
sw $fp,4($sp)
move $fp,$sp
sw $4,8($fp)
sw $5,12($fp)
lw $2,8($fp)
lw $3,12($fp)
nop
sw $3,0($2)
lw $2,8($fp)
move $sp,$fp
lw $fp,4($sp)
addiu $sp,$sp,8
j $31
nop
std::setw(int):
addiu $sp,$sp,-8
sw $fp,4($sp)
move $fp,$sp
sw $4,8($fp)
sw $5,12($fp)
lw $2,8($fp)
lw $3,12($fp)
nop
sw $3,0($2)
lw $2,8($fp)
move $sp,$fp
lw $fp,4($sp)
addiu $sp,$sp,8
j $31
nop
main:
addiu $sp,$sp,-728
sw $31,724($sp)
sw $fp,720($sp)
sw $16,716($sp)
move $fp,$sp
sw $0,24($fp)
sw $0,28($fp)
sw $0,36($fp)
sw $0,32($fp)
sw $0,44($fp)
sw $0,40($fp)
sw $0,52($fp)
sw $0,48($fp)
addiu $2,$fp,156
move $4,$2
jal std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream()
nop
addiu $3,$fp,156
li $6,8 # 0x8
lui $2,%hi($LC0)
addiu $5,$2,%lo($LC0)
move $4,$3
jal std::basic_ifstream<char, std::char_traits<char> >::open(char const*, std::_Ios_Openmode)
nop
addiu $2,$fp,156
addiu $2,$2,144
move $4,$2
jal std::basic_ios<char, std::char_traits<char> >::fail() const
nop
beq $2,$0,$L26
nop
lui $2,%hi($LC1)
addiu $5,$2,%lo($LC1)
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
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
addiu $2,$fp,436
move $4,$2
jal std::basic_ofstream<char, std::char_traits<char> >::basic_ofstream()
nop
li $5,32 # 0x20
li $4,16 # 0x10
jal std::operator|(std::_Ios_Openmode, std::_Ios_Openmode)
nop
addiu $3,$fp,436
move $6,$2
lui $2,%hi($LC2)
addiu $5,$2,%lo($LC2)
move $4,$3
jal std::basic_ofstream<char, std::char_traits<char> >::open(char const*, std::_Ios_Openmode)
nop
addiu $3,$fp,436
lui $2,%hi(std::fixed(std::ios_base&))
addiu $5,$2,%lo(std::fixed(std::ios_base&))
move $4,$3
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(std::ios_base& (*)(std::ios_base&))
nop
move $3,$2
lui $2,%hi(std::showpoint(std::ios_base&))
addiu $5,$2,%lo(std::showpoint(std::ios_base&))
move $4,$3
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(std::ios_base& (*)(std::ios_base&))
nop
addiu $2,$fp,136
li $5,2 # 0x2
move $4,$2
jal std::setprecision(int)
nop
addiu $2,$fp,436
lw $5,136($fp)
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setprecision)
nop
addiu $3,$fp,436
lui $2,%hi($LC3)
addiu $5,$2,%lo($LC3)
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 $16,$2
addiu $2,$fp,132
li $5,20 # 0x14
move $4,$2
jal std::setw(int)
nop
lw $5,132($fp)
move $4,$16
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setw)
nop
move $3,$2
lui $2,%hi($LC4)
addiu $5,$2,%lo($LC4)
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 $16,$2
addiu $2,$fp,128
li $5,35 # 0x23
move $4,$2
jal std::setw(int)
nop
lw $5,128($fp)
move $4,$16
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setw)
nop
move $3,$2
lui $2,%hi($LC5)
addiu $5,$2,%lo($LC5)
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 $16,$2
addiu $2,$fp,124
li $5,25 # 0x19
move $4,$2
jal std::setw(int)
nop
lw $5,124($fp)
move $4,$16
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setw)
nop
move $3,$2
lui $2,%hi($LC6)
addiu $5,$2,%lo($LC6)
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 $16,$2
addiu $2,$fp,120
li $5,20 # 0x14
move $4,$2
jal std::setw(int)
nop
lw $5,120($fp)
move $4,$16
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setw)
nop
move $3,$2
lui $2,%hi($LC7)
addiu $5,$2,%lo($LC7)
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
addiu $3,$fp,436
lui $2,%hi($LC8)
addiu $5,$2,%lo($LC8)
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
addiu $2,$fp,156
addiu $2,$2,144
move $4,$2
jal std::basic_ios<char, std::char_traits<char> >::eof() const
nop
xori $2,$2,0x1
andi $2,$2,0x00ff
beq $2,$0,$L27
nop
addiu $3,$fp,152
addiu $2,$fp,156
move $5,$3
move $4,$2
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
move $3,$2
addiu $2,$fp,140
move $5,$2
move $4,$3
jal std::basic_istream<char, std::char_traits<char> >::operator>>(int&)
nop
move $3,$2
addiu $2,$fp,148
move $5,$2
move $4,$3
jal std::basic_istream<char, std::char_traits<char> >::operator>>(int&)
nop
move $3,$2
addiu $2,$fp,144
move $5,$2
move $4,$3
jal std::basic_istream<char, std::char_traits<char> >::operator>>(int&)
nop
lb $3,152($fp)
li $2,82 # 0x52
beq $3,$2,$L28
nop
lb $3,152($fp)
li $2,114 # 0x72
bne $3,$2,$L29
nop
lui $2,%hi($LC9)
lwc1 $f2,%lo($LC9+4)($2)
nop
lwc1 $f3,%lo($LC9)($2)
lui $2,%hi($LC10)
lwc1 $f0,%lo($LC10+4)($2)
nop
lwc1 $f1,%lo($LC10)($2)
nop
add.d $f2,$f2,$f0
lw $2,144($fp)
nop
mtc1 $2,$f0
nop
cvt.d.w $f4,$f0
lui $2,%hi($LC11)
lwc1 $f0,%lo($LC11+4)($2)
nop
lwc1 $f1,%lo($LC11)($2)
nop
mul.d $f0,$f4,$f0
add.d $f0,$f2,$f0
swc1 $f0,36($fp)
swc1 $f1,32($fp)
addiu $3,$fp,436
lui $2,%hi($LC12)
addiu $5,$2,%lo($LC12)
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 $16,$2
addiu $2,$fp,116
li $5,17 # 0x11
move $4,$2
jal std::setw(int)
nop
lw $5,116($fp)
move $4,$16
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setw)
nop
move $3,$2
lw $2,140($fp)
nop
move $5,$2
move $4,$3
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
nop
move $16,$2
addiu $2,$fp,112
li $5,55 # 0x37
move $4,$2
jal std::setw(int)
nop
lw $5,112($fp)
move $4,$16
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setw)
nop
move $3,$2
lw $2,144($fp)
nop
move $5,$2
move $4,$3
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
nop
move $16,$2
addiu $2,$fp,108
li $5,22 # 0x16
move $4,$2
jal std::setw(int)
nop
lw $5,108($fp)
move $4,$16
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setw)
nop
move $3,$2
lui $2,%hi($LC13)
addiu $5,$2,%lo($LC13)
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
lw $7,36($fp)
lw $6,32($fp)
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(double)
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
lw $2,24($fp)
nop
addiu $2,$2,1
sw $2,24($fp)
lwc1 $f2,44($fp)
nop
lwc1 $f3,40($fp)
lwc1 $f0,36($fp)
nop
lwc1 $f1,32($fp)
nop
add.d $f0,$f2,$f0
swc1 $f0,44($fp)
swc1 $f1,40($fp)
b $L30
nop
lb $3,152($fp)
li $2,66 # 0x42
beq $3,$2,$L31
nop
lb $3,152($fp)
li $2,98 # 0x62
bne $3,$2,$L32
nop
sw $0,36($fp)
sw $0,32($fp)
lw $2,148($fp)
nop
slt $2,$2,11
beq $2,$0,$L33
nop
lui $2,%hi($LC14)
lwc1 $f2,%lo($LC14+4)($2)
nop
lwc1 $f3,%lo($LC14)($2)
lui $2,%hi($LC15)
lwc1 $f0,%lo($LC15+4)($2)
nop
lwc1 $f1,%lo($LC15)($2)
nop
add.d $f2,$f2,$f0
lw $2,144($fp)
nop
mtc1 $2,$f0
nop
cvt.d.w $f4,$f0
lui $2,%hi($LC16)
lwc1 $f0,%lo($LC16+4)($2)
nop
lwc1 $f1,%lo($LC16)($2)
nop
mul.d $f0,$f4,$f0
add.d $f0,$f2,$f0
swc1 $f0,36($fp)
swc1 $f1,32($fp)
b $L34
nop
lui $2,%hi($LC14)
lwc1 $f2,%lo($LC14+4)($2)
nop
lwc1 $f3,%lo($LC14)($2)
lui $2,%hi($LC15)
lwc1 $f0,%lo($LC15+4)($2)
nop
lwc1 $f1,%lo($LC15)($2)
nop
add.d $f2,$f2,$f0
lw $2,148($fp)
nop
addiu $2,$2,-10
mtc1 $2,$f0
nop
cvt.d.w $f4,$f0
lui $2,%hi($LC17)
lwc1 $f0,%lo($LC17+4)($2)
nop
lwc1 $f1,%lo($LC17)($2)
nop
mul.d $f0,$f4,$f0
add.d $f2,$f2,$f0
lw $2,144($fp)
nop
mtc1 $2,$f0
nop
cvt.d.w $f4,$f0
lui $2,%hi($LC16)
lwc1 $f0,%lo($LC16+4)($2)
nop
lwc1 $f1,%lo($LC16)($2)
nop
mul.d $f0,$f4,$f0
add.d $f0,$f2,$f0
swc1 $f0,36($fp)
swc1 $f1,32($fp)
addiu $3,$fp,436
lui $2,%hi($LC18)
addiu $5,$2,%lo($LC18)
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 $16,$2
addiu $2,$fp,104
li $5,19 # 0x13
move $4,$2
jal std::setw(int)
nop
lw $5,104($fp)
move $4,$16
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setw)
nop
move $3,$2
lw $2,140($fp)
nop
move $5,$2
move $4,$3
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
nop
move $16,$2
addiu $2,$fp,100
li $5,27 # 0x1b
move $4,$2
jal std::setw(int)
nop
lw $5,100($fp)
move $4,$16
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setw)
nop
move $3,$2
lw $2,148($fp)
nop
move $5,$2
move $4,$3
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
nop
move $16,$2
addiu $2,$fp,96
li $5,28 # 0x1c
move $4,$2
jal std::setw(int)
nop
lw $5,96($fp)
move $4,$16
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setw)
nop
move $3,$2
lw $2,144($fp)
nop
move $5,$2
move $4,$3
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
nop
move $16,$2
addiu $2,$fp,92
li $5,22 # 0x16
move $4,$2
jal std::setw(int)
nop
lw $5,92($fp)
move $4,$16
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setw)
nop
move $3,$2
lui $2,%hi($LC13)
addiu $5,$2,%lo($LC13)
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
lw $7,36($fp)
lw $6,32($fp)
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(double)
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
lw $2,28($fp)
nop
addiu $2,$2,1
sw $2,28($fp)
lwc1 $f2,52($fp)
nop
lwc1 $f3,48($fp)
lwc1 $f0,36($fp)
nop
lwc1 $f1,32($fp)
nop
add.d $f0,$f2,$f0
swc1 $f0,52($fp)
swc1 $f1,48($fp)
b $L30
nop
addiu $3,$fp,436
lui $2,%hi($LC19)
addiu $5,$2,%lo($LC19)
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
b $L35
nop
addiu $3,$fp,436
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
addiu $3,$fp,436
lui $2,%hi($LC20)
addiu $5,$2,%lo($LC20)
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
addiu $3,$fp,436
lui $2,%hi($LC8)
addiu $5,$2,%lo($LC8)
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
addiu $3,$fp,436
lui $2,%hi($LC3)
addiu $5,$2,%lo($LC3)
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 $16,$2
addiu $2,$fp,88
li $5,20 # 0x14
move $4,$2
jal std::setw(int)
nop
lw $5,88($fp)
move $4,$16
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setw)
nop
move $3,$2
lui $2,%hi($LC21)
addiu $5,$2,%lo($LC21)
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 $16,$2
addiu $2,$fp,84
li $5,20 # 0x14
move $4,$2
jal std::setw(int)
nop
lw $5,84($fp)
move $4,$16
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setw)
nop
move $3,$2
lui $2,%hi($LC22)
addiu $5,$2,%lo($LC22)
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 $16,$2
addiu $2,$fp,80
li $5,20 # 0x14
move $4,$2
jal std::setw(int)
nop
lw $5,80($fp)
move $4,$16
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setw)
nop
move $3,$2
lui $2,%hi($LC23)
addiu $5,$2,%lo($LC23)
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
addiu $3,$fp,436
lui $2,%hi($LC8)
addiu $5,$2,%lo($LC8)
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
addiu $3,$fp,436
lui $2,%hi($LC12)
addiu $5,$2,%lo($LC12)
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 $16,$2
addiu $2,$fp,76
li $5,16 # 0x10
move $4,$2
jal std::setw(int)
nop
lw $5,76($fp)
move $4,$16
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setw)
nop
lw $5,24($fp)
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
nop
move $16,$2
addiu $2,$fp,72
li $5,17 # 0x11
move $4,$2
jal std::setw(int)
nop
lw $5,72($fp)
move $4,$16
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setw)
nop
move $3,$2
lui $2,%hi($LC13)
addiu $5,$2,%lo($LC13)
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
lw $7,44($fp)
lw $6,40($fp)
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(double)
nop
move $16,$2
addiu $2,$fp,68
li $5,15 # 0xf
move $4,$2
jal std::setw(int)
nop
lw $5,68($fp)
move $4,$16
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setw)
nop
move $3,$2
lui $2,%hi($LC13)
addiu $5,$2,%lo($LC13)
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
lw $2,24($fp)
nop
mtc1 $2,$f0
nop
cvt.d.w $f0,$f0
lwc1 $f2,44($fp)
nop
lwc1 $f3,40($fp)
nop
div.d $f0,$f2,$f0
mfc1 $7,$f0
mfc1 $6,$f1
move $4,$3
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(double)
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
addiu $3,$fp,436
lui $2,%hi($LC18)
addiu $5,$2,%lo($LC18)
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 $16,$2
addiu $2,$fp,64
li $5,18 # 0x12
move $4,$2
jal std::setw(int)
nop
lw $5,64($fp)
move $4,$16
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setw)
nop
lw $5,28($fp)
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
nop
move $16,$2
addiu $2,$fp,60
li $5,17 # 0x11
move $4,$2
jal std::setw(int)
nop
lw $5,60($fp)
move $4,$16
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setw)
nop
move $3,$2
lui $2,%hi($LC13)
addiu $5,$2,%lo($LC13)
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
lw $7,52($fp)
lw $6,48($fp)
move $4,$2
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(double)
nop
move $16,$2
addiu $2,$fp,56
li $5,14 # 0xe
move $4,$2
jal std::setw(int)
nop
lw $5,56($fp)
move $4,$16
jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setw)
nop
move $3,$2
lui $2,%hi($LC13)
addiu $5,$2,%lo($LC13)
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
lw $2,28($fp)
nop
mtc1 $2,$f0
nop
cvt.d.w $f0,$f0
lwc1 $f2,52($fp)
nop
lwc1 $f3,48($fp)
nop
div.d $f0,$f2,$f0
mfc1 $7,$f0
mfc1 $6,$f1
move $4,$3
jal std::basic_ostream<char, std::char_traits<char> >::operator<<(double)
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
addiu $2,$fp,156
move $4,$2
jal std::basic_ifstream<char, std::char_traits<char> >::close()
nop
addiu $2,$fp,436
move $4,$2
jal std::basic_ofstream<char, std::char_traits<char> >::close()
nop
lui $2,%hi($LC24)
addiu $5,$2,%lo($LC24)
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
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
move $16,$0
addiu $2,$fp,436
move $4,$2
jal std::basic_ofstream<char, std::char_traits<char> >::~basic_ofstream()
nop
addiu $2,$fp,156
move $4,$2
jal std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream()
nop
move $2,$16
b $L41
nop
move $16,$4
addiu $2,$fp,436
move $4,$2
jal std::basic_ofstream<char, std::char_traits<char> >::~basic_ofstream()
nop
b $L38
nop
move $16,$4
addiu $2,$fp,156
move $4,$2
jal std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream()
nop
move $2,$16
move $4,$2
jal _Unwind_Resume
nop
move $sp,$fp
lw $31,724($sp)
lw $fp,720($sp)
lw $16,716($sp)
addiu $sp,$sp,728
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,$L44
nop
lw $3,36($fp)
li $2,65535 # 0xffff
bne $3,$2,$L44
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_main:
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
Hope This Helps, if you have any doubts Please comment i will get back to you, thank you and please thumbs up
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.