1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Phoenix [80]
3 years ago
5

Translate the following C++ program to MIPS assembly program. *Please explain each instruction of your code by a comment and sub

mit a .asm file*#include using namespace std; void myfunction(int arr[], int n) { int writes = 0; for(int start = 0; start <= n-2; start++){ int item = arr[start]; int pos = start; for(int i = start+1; i< n; i++) if (arr[i]
Computers and Technology
1 answer:
maw [93]3 years ago
5 0

Answer:

Check the explanation

Explanation:

ASM of MIPS gcc 5.4:

myfunction(int*, int):

       addiu   $sp,$sp,-56

       sw      $31,52($sp)

       sw      $fp,48($sp)

       move    $fp,$sp

       sw      $4,56($fp)

       sw      $5,60($fp)

       sw      $0,24($fp)

       sw      $0,28($fp)

$L16:

       lw      $2,60($fp)

       nop

       addiu   $3,$2,-2

       lw      $2,28($fp)

       nop

       slt     $2,$3,$2

       bne     $2,$0,$L17

       nop

       lw      $2,28($fp)

       nop

       sll     $2,$2,2

       lw      $3,56($fp)

       nop

       addu    $2,$3,$2

       lw      $2,0($2)

       nop

       sw      $2,44($fp)

       lw      $2,28($fp)

       nop

       sw      $2,32($fp)

       lw      $2,28($fp)

       nop

       addiu $2,$2,1

       sw      $2,36($fp)

$L5:

       lw      $3,36($fp)

       lw      $2,60($fp)

       nop

       slt     $2,$3,$2

       beq     $2,$0,$L3

       nop

       lw      $2,36($fp)

       nop

       sll     $2,$2,2

       lw      $3,56($fp)

       nop

       addu    $2,$3,$2

       lw      $3,0($2)

       lw      $2,44($fp)

       nop

       slt     $2,$3,$2

       beq     $2,$0,$L4

       nop

       lw      $2,32($fp)

       nop

       addiu   $2,$2,1

       sw      $2,32($fp)

$L4:

       lw      $2,36($fp)

       nop

       addiu   $2,$2,1

       sw      $2,36($fp)

       b       $L5

       nop

$L3:

       lw      $3,32($fp)

       lw      $2,28($fp)

       nop

       beq     $3,$2,$L18

       nop

$L6:

       lw      $2,32($fp)

       nop

       sll     $2,$2,2

       lw      $3,56($fp)

       nop

       addu    $2,$3,$2

       lw      $3,0($2)

       lw      $2,44($fp)

       nop

       bne     $3,$2,$L8

       nop

       lw      $2,32($fp)

       nop

       addiu   $2,$2,1

       sw      $2,32($fp)

       b       $L6

       nop

$L8:

       lw      $3,32($fp)

       lw      $2,28($fp)

       nop

       beq     $3,$2,$L9

       nop

       lw      $2,32($fp)

       nop

       sll     $2,$2,2

       lw      $3,56($fp)

       nop

       addu    $3,$3,$2

       addiu   $2,$fp,44

       move    $5,$3

       move    $4,$2

       jal     void std::swap<int>(int&, int&)

       nop

       lw      $2,24($fp)

       nop

       addiu   $2,$2,1

       sw      $2,24($fp)

$L9:

       lw      $3,32($fp)

       lw      $2,28($fp)

       nop

       beq     $3,$2,$L7

       nop

       lw      $2,28($fp)

       nop

       sw      $2,32($fp)

       lw      $2,28($fp)

       nop

       addiu   $2,$2,1

       sw      $2,40($fp)

$L13:

       lw      $3,40($fp)

       lw      $2,60($fp)

       nop

       slt     $2,$3,$2

       beq     $2,$0,$L11

       nop

       lw      $2,40($fp)

     nop

       sll     $2,$2,2

       lw      $3,56($fp)

       nop

       addu    $2,$3,$2

       lw      $3,0($2)

       lw      $2,44($fp)

       nop

       slt     $2,$3,$2

       beq     $2,$0,$L12

       nop

       lw      $2,32($fp)

       nop

       addiu   $2,$2,1

       sw      $2,32($fp)

$L12:

       lw      $2,40($fp)

       nop

       addiu   $2,$2,1

       sw      $2,40($fp)

       b       $L13

       nop

$L11:

       lw      $2,32($fp)

       nop

       sll     $2,$2,2

       lw      $3,56($fp)

       nop

       addu    $2,$3,$2

       lw      $3,0($2)

       lw      $2,44($fp)

       nop

       bne     $3,$2,$L14

       nop

       lw      $2,32($fp)

       nop

       addiu   $2,$2,1

       sw      $2,32($fp)

       b       $L11

       nop

$L14:

       lw      $2,32($fp)

       nop

       sll     $2,$2,2

       lw      $3,56($fp)

       nop

       addu    $2,$3,$2

       lw      $3,0($2)

       lw      $2,44($fp)

       nop

       beq     $3,$2,$L9

       nop

       lw      $2,32($fp)

       nop

       sll     $2,$2,2

       lw      $3,56($fp)

       nop

       addu    $3,$3,$2

       addiu   $2,$fp,44

       move    $5,$3

       move    $4,$2

       jal     void std::swap<int>(int&, int&)

       nop

       lw      $2,24($fp)

       nop

       addiu   $2,$2,1

       sw      $2,24($fp)

       b       $L9

       nop

$L18:

       nop

$L7:

       lw      $2,28($fp)

       nop

       addiu   $2,$2,1

       sw      $2,28($fp)

       b       $L16

       nop

$L17:

       nop

       move    $sp,$fp

       lw      $31,52($sp)

       lw      $fp,48($sp)

       addiu   $sp,$sp,56

       j       $31

       nop

$LC0:

       .ascii "array:\000"

$LC1:

       .ascii " \000"

main:

       addiu   $sp,$sp,-72

       sw      $31,68($sp)

       sw      $fp,64($sp)

       move    $fp,$sp

       li      $2,1                        # 0x1

       sw      $2,32($fp)

       li      $2,8                        # 0x8

       sw      $2,36($fp)

       li      $2,3                        # 0x3

       sw      $2,40($fp)

       li      $2,9                        # 0x9

       sw      $2,44($fp)

       li      $2,10                 # 0xa

       sw      $2,48($fp)

       li      $2,2                        # 0x2

       sw      $2,52($fp)

       li      $2,4                        # 0x4

       sw      $2,56($fp)

       li      $2,7                        # 0x7

       sw      $2,28($fp)

       addiu   $2,$fp,32

       lw      $5,28($fp)

       move    $4,$2

       jal     myfunction(int*, int)

       nop

       lui     $2,%hi($LC0)

       addiu   $5,$2,%lo($LC0)

       lui     $2,%hi(_ZSt4cout)

       addiu   $4,$2,%lo(_ZSt4cout)

       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(_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)

       addiu   $5,$2,%lo(_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)

       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

       sw      $0,24($fp)

$L21:

       lw      $3,24($fp)

       lw      $2,28($fp)

       nop

       slt     $2,$3,$2

       beq     $2,$0,$L20

       nop

       lw      $2,24($fp)

       nop

       sll     $2,$2,2

       addiu   $3,$fp,24

       addu    $2,$3,$2

       lw      $2,8($2)

       nop

       move    $5,$2

       lui     $2,%hi(_ZSt4cout)

       addiu   $4,$2,%lo(_ZSt4cout)

       jal     std::basic_ostream<char, std::char_traits<char> >::operator<<(int)

       nop

       move    $3,$2

       lui     $2,%hi($LC1)

       addiu   $5,$2,%lo($LC1)

       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      $2,24($fp)

       nop

       addiu   $2,$2,1

       sw      $2,24($fp)

       b       $L21

       nop

$L20:

       move    $2,$0

       move    $sp,$fp

       lw      $31,68($sp)

       lw      $fp,64($sp)

       addiu   $sp,$sp,72

       j       $31

       nop

void std::swap<int>(int&, int&):

       addiu   $sp,$sp,-24

       sw      $fp,20($sp)

       move    $fp,$sp

       sw      $4,24($fp)

       sw      $5,28($fp)

       lw      $2,24($fp)

       nop

       lw      $2,0($2)

       nop

       sw      $2,8($fp)

       lw      $2,28($fp)

       nop

       lw      $3,0($2)

       lw      $2,24($fp)

       nop

       sw      $3,0($2)

       lw      $2,28($fp)

       lw      $3,8($fp)

       nop

       sw      $3,0($2)

       nop

       move    $sp,$fp

       lw      $fp,20($sp)

       addiu   $sp,$sp,24

       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,$L26

       nop

       lw      $3,36($fp)

       li      $2,65535                    # 0xffff

       bne     $3,$2,$L26

       nop

       lui     $2,%hi(_ZStL8__ioinit)

       addiu   $4,$2,%lo(_ZStL8__ioinit)

       jal     std::ios_base::Init::Init() [complete object constructor]

       nop

       lui     $2,%hi(__dso_handle)

       addiu   $6,$2,%lo(__dso_handle)

       lui     $2,%hi(_ZStL8__ioinit)

       addiu   $5,$2,%lo(_ZStL8__ioinit)

       lui     $2,%hi(_ZNSt8ios_base4InitD1Ev)

       addiu   $4,$2,%lo(_ZNSt8ios_base4InitD1Ev)

       jal     __cxa_atexit

       nop

$L26:

       nop

       move    $sp,$fp

       lw      $31,28($sp)

       lw      $fp,24($sp)

       addiu   $sp,$sp,32

       j       $31

       nop

You might be interested in
An Administrator wants to have a thank you email sent after the form on the "Request a Demo" landing page is submitted. Where ca
sweet [91]

Answer:

Answer D is correct :

Explanation:

Configure an autoresponder email to send as a completion action when the \Request a Demo\ form has been submitted.

6 0
3 years ago
Explain why a document created by word processing software is stored as a binary file.​
Savatey [412]

Answer:

Refer below.

Explanation:

Binary DOC records regularly contain more content organizing data (just as contents and fix data) than some other document designs like Rich Text Format and Hypertext Markup Language, however are normally less broadly good.

The DOC documents made with Microsoft Word renditions contrast. Microsoft Word forms before Word 97 ("8.0") utilized an alternate organization from the OLE/CFBF-based Microsoft Word 97 – 2003.

In Microsoft Word 2007 and later, the binary document design was supplanted as the default position by the Office Open XML group, however Microsoft Word can in any case produce DOC records.

3 0
3 years ago
How has social media influenced the marketing and PR activities of companies? Explain in what ways companies, individuals, and N
Lesechka [4]
Social Media has infuenced marketing for many years because the fact hat they can advertise on socal easily because people spend so much time on social media a day so yea!
3 0
3 years ago
Write a program that prompts the user to enter two characters and display the corresponding major and year status. The first cha
nydimaria [60]

Answer:

  1. import java.util.Scanner;  
  2. public class Main {
  3.    public static void main(String[] args) {
  4.        Scanner input = new Scanner(System.in);
  5.        System.out.print("Please enter two characters: ");
  6.        String inputStr = input.nextLine();
  7.        if(inputStr.charAt(0) == 'B' || inputStr.charAt(0) == 'b'){
  8.            System.out.println("Biology");
  9.        }
  10.        else if(inputStr.charAt(0) == 'C' || inputStr.charAt(0)== 'c'){
  11.            System.out.println("Computer Science");
  12.        }
  13.        else if(inputStr.charAt(0) == 'I' || inputStr.charAt(0) == 'i')
  14.        {
  15.            System.out.println("Information Technology and Systems");
  16.        }
  17.        else{
  18.            System.out.println("Invalid major");
  19.        }
  20.        int num = Character.getNumericValue(inputStr.charAt(1));
  21.        if(num >= 1 && num <= 4){
  22.            switch (num){
  23.                case 1:
  24.                    System.out.println("freshman");
  25.                    break;
  26.                case 2:
  27.                    System.out.println("sophomore");
  28.                    break;
  29.                case 3:
  30.                    System.out.println("junior");
  31.                    break;
  32.                case 4:
  33.                    System.out.println("senior");
  34.                    break;
  35.            }
  36.        }
  37.        else{
  38.            System.out.println("Invalid year status");
  39.        }
  40.    }
  41. }

Explanation:

The code consists of two main parts. The part 1 is to validate the input major and print out the major according to the input character (Line 10 -22). If the input character is not matched with the target letters, a message invalid major will be displayed.

The part 2 is to validate the year status to make sure it only fall within the range of 1-4  (Line 26 -45). If within the range, the program will display the year major accordingly. If not a message invalid year status will be displayed.

4 0
4 years ago
8. What is output by the code segment below?
vova2212 [387]

Answer:

b. 1 2 3 4 5

Explanation:

Let us analyze the given code one statement at a time.

int [] x = {1,2,3,4,5};  // Initializes an integer array x

int [] y = new int [5] ; // Allocates a new integer array y

for (int i : x)

y = x;

This assign the variable y with the array x

for (int i : y)

System.out.print (i + " ");

The content of the attay y is printed one element at a time.

The final output will be as follows:

1 2 3 4 5

4 0
3 years ago
Other questions:
  • 1. Which of the following is a search engine?
    6·2 answers
  • g Write a program that prompts the user to enter two integers. The program outputs how many numbers are multiples of 3 and how m
    11·1 answer
  • Please answer quick:))))
    7·1 answer
  • g The state of Massachusetts at one time had considered generating electric power by harvesting energy crops and burning them. A
    15·1 answer
  • Which of the following are cloud computing resources?
    12·2 answers
  • What can provides access to the only menu in office 2007​
    13·1 answer
  • 30 points
    7·1 answer
  • Test if the word mold is stored in the variable word. Computer science.
    9·1 answer
  • Discuss any 4 differences between first and second generation of programming languages <br>​
    11·1 answer
  • Identifiy the impact of new technology for your organizations <br>​
    13·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!