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

I am trying to convert this C++ program to MIPS, but having no experience in MIP

ID: 3711106 • Letter: I

Question

I am trying to convert this C++ program to MIPS, but having no experience in MIPS I am struggling.

//Program to calculate a person's day of birth

#include <iostream>
#include <cmath>
#include "stdafx.h"
using namespace std;

int main()
{
   int Day, Month, Year, a, Temp, Temp2, Remainder;
   int Total;

   cout << "Enter Month as Integer: ";
   cin >> Month;
   cout << "Enter Day as Integer: ";
   cin >> Day;
   cout << "Enter Year as Integer: ";
   cin >> Year;

   //Figuring out last two digits
   Temp = Year % 100;

   Total = floor(Temp / 4);
   Total = Total + Temp;
   Total = Total + Day;

   if (Month == 1) // January
   {
       Total = Total + 1;
   }
   if (Month == 2) //February
   {
       Total = Total + 4;
   }
   if (Month == 3) //March
   {
       Total = Total + 4;
   }
   if (Month == 4) //April
   {
       Total = Total + 0;
   }
   if (Month == 5) //May
   {
       Total = Total + 2;
   }
   if (Month == 6) //June
   {
       Total = Total + 5;
   }
   if (Month == 7) //July
   {
       Total = Total + 0;
   }
   if (Month == 8) //August
   {
       Total = Total + 3;
   }
   if (Month == 9) //September
   {
       Total = Total + 6;
   }
   if (Month == 10) //October
   {
       Total = Total + 1;
   }
   if (Month == 11) //November
   {
       Total = Total + 4;
   }
   if (Month == 12) //December
   {
       Total = Total + 6;
   }

   //Leap year and January and February
   if (Month == 1) //Subtract 1 if January
   {
       Total = Total - 1;
   }
   if (Month == 2) //Subtract 1 if February
   {
       Total = Total - 0; //Somereason it works if you don't subtract one
   }

   //Leap Year
   if ((Year % 4 == 0 && Year % 100 != 0) || (Year % 400 == 0))
   {
       Total = Total - 1;
   }

   /*May 10, 1983 (non leapyear)   //Works
   b) May 8, 1984 (leapyear)       //Doesn't Work
   c) Feb 16, 2016 (leapyear)       //Works!
   d) June 13, 2000 (leapyear)       //Doesn't work
   e) Feb 15, 2000 (leapyear)       //Works!
   f) July 13, 2100(non-leapyear)   //Works!
   g) Feb 16, 2100(non   - leapyear*/ //Works!

   a = floor(Year / 100);
   Temp2 = a % 4; //Remainder

   if (Temp2 == 0)
   {
       Total = Total + 6;
   }
   if (Temp2 == 1)
   {
       Total = Total + 4;
   }
   if (Temp2 == 2)
   {
       Total = Total + 2;
   }
   if (Temp2 == 3)
   {
       Total = Total + 0;
   }

   Remainder = Total % 7;

   if (Remainder == 1) // Sunday
   {
       cout << "A Person born on " << Month << " - " << Day << " - " << Year << " was born on a Sunday." << endl;
   }
   if (Remainder == 2) // Monday
   {
       cout << "A Person born on " << Month << " - " << Day << " - " << Year << " was born on a Monday." << endl;
   }
   if (Remainder == 3) // Tuesday
   {
       cout << "A Person born on " << Month << " - " << Day << " - " << Year << " was born on a Tuesday." << endl;
   }
   if (Remainder == 4) // Wednesday
   {
       cout << "A Person born on " << Month << " - " << Day << " - " << Year << " was born on a Wednesday." << endl;
   }
   if (Remainder == 5) // Thursday
   {
       cout << "A Person born on " << Month << " - " << Day << " - " << Year << " was born on a Thursday." << endl;
   }
   if (Remainder == 6) // Friday
   {
       cout << "A Person born on " << Month << " - " << Day << " - " << Year << " was born on a Friday." << endl;
   }
   if (Remainder == 0) // Saturday
   {
       cout << "A Person born on " << Month << " - " << Day << " - " << Year << " was born on a Saturday." << endl;
   }
   return 0;
}

Explanation / Answer

Ans) The coding of C++ to MIPS is done and it is given below as per your requirement

MIPS code:

.LC0:

.ascii "Enter Month as Integer: "
.LC1:
.ascii "Enter Day as Integer: "
.LC2:
.ascii "Enter Year as Integer: "
.LC3:
.ascii "A Person born on "
.LC4:
.ascii " - "
.LC5:
.ascii " was born on a Sunday."
.LC6:
.ascii " was born on a Monday."
.LC7:
.ascii " was born on a Tuesday."
.LC8:
.ascii " was born on a Wednesday."
.LC9:
.ascii " was born on a Thursday."
.LC10:
.ascii " was born on a Friday."
.LC11:
.ascii " was born on a Saturday."
main:
daddiu $sp,$sp,-64
sd $31,56($sp)
sd $fp,48($sp)
sd $28,40($sp)
move $fp,$sp
lui $28,%hi(%neg(%gp_rel(main)))
daddu $28,$28,$25
daddiu $28,$28,%lo(%neg(%gp_rel(main)))
ld $2,%got_page(.LC0)($28)
daddiu $5,$2,%got_ofst(.LC0)
ld $4,%got_disp(std::cout)($28)
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

daddiu $2,$fp,24
move $5,$2
ld $4,%got_disp(std::cin)($28)
ld $2,%call16(std::basic_istream<char, std::char_traits<char> >::operator>>(int&))($28)
move $25,$2
1: jalr $25
nop

ld $2,%got_page(.LC1)($28)
daddiu $5,$2,%got_ofst(.LC1)
ld $4,%got_disp(std::cout)($28)
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

daddiu $2,$fp,20
move $5,$2
ld $4,%got_disp(std::cin)($28)
ld $2,%call16(std::basic_istream<char, std::char_traits<char> >::operator>>(int&))($28)
move $25,$2
1: jalr $25
nop

ld $2,%got_page(.LC2)($28)
daddiu $5,$2,%got_ofst(.LC2)
ld $4,%got_disp(std::cout)($28)
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

daddiu $2,$fp,28
move $5,$2
ld $4,%got_disp(std::cin)($28)
ld $2,%call16(std::basic_istream<char, std::char_traits<char> >::operator>>(int&))($28)
move $25,$2
1: jalr $25
nop

lw $2,28($fp)
li $3,1374355456 # 0x51eb0000
ori $3,$3,0x851f
mult $2,$3
mflo $3
mfhi $4
dins $3,$4,32,32
dsrl $3,$3,32
sll $3,$3,0
sra $4,$3,5
sra $3,$2,31
subu $4,$4,$3
li $3,100 # 0x64
mul $3,$4,$3
subu $2,$2,$3
sw $2,4($fp)
lw $2,4($fp)
bgez $2,.L2
nop

addiu $2,$2,3
.L2:
sra $2,$2,2
move $4,$2
ld $2,%got_disp(__gnu_cxx::__enable_if<std::__is_integer<int>::__value, double>::__type std::floor<int>(int))($28)
move $25,$2
1: jalr $25
nop

trunc.w.d $f0,$f0
mfc1 $2,$f0
sw $2,0($fp)
lw $3,0($fp)
lw $2,4($fp)
addu $2,$3,$2
sw $2,0($fp)
lw $2,20($fp)
lw $3,0($fp)
addu $2,$3,$2
sw $2,0($fp)
lw $3,24($fp)
li $2,1 # 0x1
bne $3,$2,.L3
nop

lw $2,0($fp)
addiu $2,$2,1
sw $2,0($fp)
.L3:
lw $3,24($fp)
li $2,2 # 0x2
bne $3,$2,.L4
nop

lw $2,0($fp)
addiu $2,$2,4
sw $2,0($fp)
.L4:
lw $3,24($fp)
li $2,3 # 0x3
bne $3,$2,.L5
nop

lw $2,0($fp)
addiu $2,$2,4
sw $2,0($fp)
.L5:
lw $3,24($fp)
li $2,5 # 0x5
bne $3,$2,.L7
nop

lw $2,0($fp)
addiu $2,$2,2
sw $2,0($fp)
.L7:
lw $3,24($fp)
li $2,6 # 0x6
bne $3,$2,.L8
nop

lw $2,0($fp)
addiu $2,$2,5
sw $2,0($fp)
.L8:
lw $3,24($fp)
li $2,8 # 0x8
bne $3,$2,.L10
nop

lw $2,0($fp)
addiu $2,$2,3
sw $2,0($fp)
.L10:
lw $3,24($fp)
li $2,9 # 0x9
bne $3,$2,.L11
nop

lw $2,0($fp)
addiu $2,$2,6
sw $2,0($fp)
.L11:
lw $3,24($fp)
li $2,10 # 0xa
bne $3,$2,.L12
nop

lw $2,0($fp)
addiu $2,$2,1
sw $2,0($fp)
.L12:
lw $3,24($fp)
li $2,11 # 0xb
bne $3,$2,.L13
nop

lw $2,0($fp)
addiu $2,$2,4
sw $2,0($fp)
.L13:
lw $3,24($fp)
li $2,12 # 0xc
bne $3,$2,.L14
nop

lw $2,0($fp)
addiu $2,$2,6
sw $2,0($fp)
.L14:
lw $3,24($fp)
li $2,1 # 0x1
bne $3,$2,.L15
nop

lw $2,0($fp)
addiu $2,$2,-1
sw $2,0($fp)
.L15:
lw $2,28($fp)
andi $2,$2,0x3
bne $2,$0,.L17
nop

lw $2,28($fp)
li $3,1374355456 # 0x51eb0000
ori $3,$3,0x851f
mult $2,$3
mflo $3
mfhi $4
dins $3,$4,32,32
dsrl $3,$3,32
sll $3,$3,0
sra $4,$3,5
sra $3,$2,31
subu $4,$4,$3
li $3,100 # 0x64
mul $3,$4,$3
subu $2,$2,$3
bne $2,$0,.L18
nop

.L17:
lw $2,28($fp)
li $3,1374355456 # 0x51eb0000
ori $3,$3,0x851f
mult $2,$3
mflo $3
mfhi $4
dins $3,$4,32,32
dsrl $3,$3,32
sll $3,$3,0
sra $4,$3,7
sra $3,$2,31
subu $4,$4,$3
li $3,400 # 0x190
mul $3,$4,$3
subu $2,$2,$3
bne $2,$0,.L19
nop

.L18:
lw $2,0($fp)
addiu $2,$2,-1
sw $2,0($fp)
.L19:
lw $2,28($fp)
li $3,1374355456 # 0x51eb0000
ori $3,$3,0x851f
mult $2,$3
mflo $3
mfhi $4
dins $3,$4,32,32
dsrl $3,$3,32
sll $3,$3,0
sra $3,$3,5
sra $2,$2,31
subu $2,$3,$2
move $4,$2
ld $2,%got_disp(__gnu_cxx::__enable_if<std::__is_integer<int>::__value, double>::__type std::floor<int>(int))($28)
move $25,$2
1: jalr $25
nop

trunc.w.d $f0,$f0
mfc1 $2,$f0
sw $2,8($fp)
lw $3,8($fp)
li $2,-2147483648 # 0xffffffff80000000
ori $2,$2,0x3
and $2,$3,$2
bgez $2,.L20
nop

addiu $2,$2,-1
li $3,-4 # 0xfffffffffffffffc
or $2,$2,$3
addiu $2,$2,1
.L20:
sw $2,12($fp)
lw $2,12($fp)
bne $2,$0,.L21
nop

lw $2,0($fp)
addiu $2,$2,6
sw $2,0($fp)
.L21:
lw $3,12($fp)
li $2,1 # 0x1
bne $3,$2,.L22
nop

lw $2,0($fp)
addiu $2,$2,4
sw $2,0($fp)
.L22:
lw $3,12($fp)
li $2,2 # 0x2
bne $3,$2,.L23
nop

lw $2,0($fp)
addiu $2,$2,2
sw $2,0($fp)
.L23:
lw $2,0($fp)
li $3,-1840709632 # 0xffffffff92490000
ori $3,$3,0x2493
mult $2,$3
mflo $3
mfhi $4
dins $3,$4,32,32
dsrl $3,$3,32
sll $3,$3,0
addu $3,$3,$2
sra $4,$3,2
sra $3,$2,31
subu $4,$4,$3
move $3,$4
sll $3,$3,3
subu $3,$3,$4
subu $2,$2,$3
sw $2,16($fp)
lw $3,16($fp)
li $2,1 # 0x1
bne $3,$2,.L25
nop

ld $2,%got_page(.LC3)($28)
daddiu $5,$2,%got_ofst(.LC3)
ld $4,%got_disp(std::cout)($28)
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,24($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC4)($28)
daddiu $5,$2,%got_ofst(.LC4)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,20($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC4)($28)
daddiu $5,$2,%got_ofst(.LC4)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,28($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC5)($28)
daddiu $5,$2,%got_ofst(.LC5)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

ld $5,%got_disp(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))($28)
move $4,$2
ld $2,%call16(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> >&)))($28)
move $25,$2
1: jalr $25
nop

.L25:
lw $3,16($fp)
li $2,2 # 0x2
bne $3,$2,.L26
nop

ld $2,%got_page(.LC3)($28)
daddiu $5,$2,%got_ofst(.LC3)
ld $4,%got_disp(std::cout)($28)
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,24($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC4)($28)
daddiu $5,$2,%got_ofst(.LC4)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,20($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC4)($28)
daddiu $5,$2,%got_ofst(.LC4)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,28($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC6)($28)
daddiu $5,$2,%got_ofst(.LC6)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

ld $5,%got_disp(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))($28)
move $4,$2
ld $2,%call16(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> >&)))($28)
move $25,$2
1: jalr $25
nop

.L26:
lw $3,16($fp)
li $2,3 # 0x3
bne $3,$2,.L27
nop

ld $2,%got_page(.LC3)($28)
daddiu $5,$2,%got_ofst(.LC3)
ld $4,%got_disp(std::cout)($28)
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,24($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC4)($28)
daddiu $5,$2,%got_ofst(.LC4)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,20($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC4)($28)
daddiu $5,$2,%got_ofst(.LC4)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,28($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC7)($28)
daddiu $5,$2,%got_ofst(.LC7)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

ld $5,%got_disp(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))($28)
move $4,$2
ld $2,%call16(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> >&)))($28)
move $25,$2
1: jalr $25
nop

.L27:
lw $3,16($fp)
li $2,4 # 0x4
bne $3,$2,.L28
nop

ld $2,%got_page(.LC3)($28)
daddiu $5,$2,%got_ofst(.LC3)
ld $4,%got_disp(std::cout)($28)
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,24($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC4)($28)
daddiu $5,$2,%got_ofst(.LC4)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,20($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC4)($28)
daddiu $5,$2,%got_ofst(.LC4)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,28($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC8)($28)
daddiu $5,$2,%got_ofst(.LC8)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

ld $5,%got_disp(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))($28)
move $4,$2
ld $2,%call16(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> >&)))($28)
move $25,$2
1: jalr $25
nop

.L28:
lw $3,16($fp)
li $2,5 # 0x5
bne $3,$2,.L29
nop

ld $2,%got_page(.LC3)($28)
daddiu $5,$2,%got_ofst(.LC3)
ld $4,%got_disp(std::cout)($28)
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,24($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC4)($28)
daddiu $5,$2,%got_ofst(.LC4)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,20($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC4)($28)
daddiu $5,$2,%got_ofst(.LC4)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,28($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC9)($28)
daddiu $5,$2,%got_ofst(.LC9)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

ld $5,%got_disp(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))($28)
move $4,$2
ld $2,%call16(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> >&)))($28)
move $25,$2
1: jalr $25
nop

.L29:
lw $3,16($fp)
li $2,6 # 0x6
bne $3,$2,.L30
nop

ld $2,%got_page(.LC3)($28)
daddiu $5,$2,%got_ofst(.LC3)
ld $4,%got_disp(std::cout)($28)
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,24($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC4)($28)
daddiu $5,$2,%got_ofst(.LC4)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,20($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC4)($28)
daddiu $5,$2,%got_ofst(.LC4)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,28($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC10)($28)
daddiu $5,$2,%got_ofst(.LC10)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

ld $5,%got_disp(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))($28)
move $4,$2
ld $2,%call16(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> >&)))($28)
move $25,$2
1: jalr $25
nop

.L30:
lw $2,16($fp)
bne $2,$0,.L31
nop

ld $2,%got_page(.LC3)($28)
daddiu $5,$2,%got_ofst(.LC3)
ld $4,%got_disp(std::cout)($28)
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,24($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC4)($28)
daddiu $5,$2,%got_ofst(.LC4)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,20($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC4)($28)
daddiu $5,$2,%got_ofst(.LC4)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
lw $2,28($fp)
move $5,$2
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >::operator<<(int))($28)
move $25,$2
1: jalr $25
nop

move $3,$2
ld $2,%got_page(.LC11)($28)
daddiu $5,$2,%got_ofst(.LC11)
move $4,$3
ld $2,%call16(std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*))($28)
move $25,$2
1: jalr $25
nop

ld $5,%got_disp(std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&))($28)
move $4,$2
ld $2,%call16(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> >&)))($28)
move $25,$2
1: jalr $25
nop

.L31:
move $2,$0
move $sp,$fp
ld $31,56($sp)
ld $fp,48($sp)
ld $28,40($sp)
daddiu $sp,$sp,64
j $31
nop

__gnu_cxx::__enable_if<std::__is_integer<int>::__value, double>::__type std::floor<int>(int):
daddiu $sp,$sp,-48
sd $31,40($sp)
sd $fp,32($sp)
sd $28,24($sp)
move $fp,$sp
lui $28,%hi(%neg(%gp_rel(__gnu_cxx::__enable_if<std::__is_integer<int>::__value, double>::__type std::floor<int>(int))))
daddu $28,$28,$25
daddiu $28,$28,%lo(%neg(%gp_rel(__gnu_cxx::__enable_if<std::__is_integer<int>::__value, double>::__type std::floor<int>(int))))
move $2,$4
sll $2,$2,0
sw $2,0($fp)
lw $2,0($fp)
mtc1 $2,$f0
cvt.d.w $f0,$f0
mov.d $f12,$f0
ld $2,%call16(floor)($28)
move $25,$2
1: jalr $25
nop

move $sp,$fp
ld $31,40($sp)
ld $fp,32($sp)
ld $28,24($sp)
daddiu $sp,$sp,48
j $31
nop

__static_initialization_and_destruction_0(int, int):
daddiu $sp,$sp,-48
sd $31,40($sp)
sd $fp,32($sp)
sd $28,24($sp)
move $fp,$sp
lui $28,%hi(%neg(%gp_rel(__static_initialization_and_destruction_0(int, int))))
daddu $28,$28,$25
daddiu $28,$28,%lo(%neg(%gp_rel(__static_initialization_and_destruction_0(int, int))))
move $3,$4
move $2,$5
sll $3,$3,0
sw $3,0($fp)
sll $2,$2,0
sw $2,4($fp)
lw $3,0($fp)
li $2,1 # 0x1
bne $3,$2,.L37
nop

lw $3,4($fp)
li $2,65535 # 0xffff
bne $3,$2,.L37
nop

ld $2,%got_page(std::__ioinit)($28)
daddiu $4,$2,%got_ofst(std::__ioinit)
ld $2,%call16(std::ios_base::Init::Init())($28)
move $25,$2
1: jalr $25
nop

ld $6,%got_disp(__dso_handle)($28)
ld $2,%got_page(std::__ioinit)($28)
daddiu $5,$2,%got_ofst(std::__ioinit)
ld $4,%got_disp(std::ios_base::Init::~Init())($28)
ld $2,%call16(__cxa_atexit)($28)
move $25,$2
1: jalr $25
nop

.L37:
nop
move $sp,$fp
ld $31,40($sp)
ld $fp,32($sp)
ld $28,24($sp)
daddiu $sp,$sp,48
j $31
nop

_GLOBAL__sub_I_main:
daddiu $sp,$sp,-32
sd $31,24($sp)
sd $fp,16($sp)
sd $28,8($sp)
move $fp,$sp
lui $28,%hi(%neg(%gp_rel(_GLOBAL__sub_I_main)))
daddu $28,$28,$25
daddiu $28,$28,%lo(%neg(%gp_rel(_GLOBAL__sub_I_main)))
li $5,65535 # 0xffff
li $4,1 # 0x1
ld $2,%got_page(__static_initialization_and_destruction_0(int, int))($28)
daddiu $2,$2,%got_ofst(__static_initialization_and_destruction_0(int, int))
move $25,$2
1: jalr $25
nop

move $sp,$fp
ld $31,24($sp)
ld $fp,16($sp)
ld $28,8($sp)
daddiu $sp,$sp,32
j $31
nop


Hope this Helps, if you have any doubs please comment i will get back to you and please thumbs up, thank you.

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