Преобразование кода массива сортировки из C ++ в язык ассемблера MIPS - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть школьное упражнение по преобразованию кода C ++ в язык ассемблера MIPS. У меня есть некоторые проблемы с параметрами в некоторых функциях или процедурах. Код состоит в сортировке массива максимум с 5 членами, и упражнение имеет три функции в c ++. Первый - создать функцию, которая добавляет числа в массив при вводе и является листовой процедурой, а две другие функции - сортировать массив. Эти две функции являются вложенными процедурами на языке ассемблера, и я не могу понять, как их реализовать, но я не понимаю, как понять, как я могу отправить 5 параметров другой процедуре, как показано в коде ниже.

#include <iostream>
#include <string>
using namespace std;

int addElements(int a[])
{
    int n;
    cout << "Enter the size of array: "; 
    cin >> n;
    cout << "\nAdd elements one by one: \n";
    for (int i = 1; i <= n; i++) {
    cin >>a[i];
}

void secondFunction(int p, int n, int &min, int a[], int &loc)
{
    for (int k = p + 1; k <= n; k++)
    {
       if (min > a[k])
       {
          min = a[k];
          loc = k;
       }  
    }
 }
void firstFunction(int a[], int n)
{
    int min, loc, tmp;
    for (int p = 1; p <= n - 1; p++) // Loop for Pass
    {
        min = a[p]; // Element Selection
        loc = p;
        secondFunction(p, n, min, a, loc);
        tmp = a[p];
        a[p] = a[loc];
        a[loc] = tmp;
    }
    cout << "\nPrinting array: \n";
    for (int i = 1; i <= n; i++) {
        cout << a[i] << endl;
    }
}

int main()
{
    int a[5], n = 0;
    n = addElements(a);
    firstFunction(a, n);

}
...