Загрузка данных


#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{
    setlocale(LC_ALL, "russian");

    srand(time(0));
    
    int n;
    cout << "Введите количество элементов в массивах: ";
    cin >> n;

    int* mas = new int[n];
    int* masiv = new int[n];
    int* masresult = new int[n];

    int ostatok = 0;
    char znak;

    cout << "Введите +, -, * или /: ";
    cin >> znak;

    cout << "Введите элементы первого массива:\n";
    for (int i = 0; i < n; i++) {
    masiv[i] = rand() % 20001 - 10000;
    cout << masiv[i] << " ";
    }
    
    cout << endl;
    
    cout << "Введите элементы второго массива:\n";
    for (int i = 0; i < n; i++) {
    masiv[i] = rand() % 20001 - 10000;
    cout << masiv[i] << " ";    
    }
    
    cout << endl;
    
    for (int i = 0; i < n; i++) {
        int a = mas[i];
        int b = masiv[i];
        int res = 0;
        ostatok = 0;
        
        if (znak == '/' && b == 0) {
            cout << "Ошибка деление на ноль[" << i <<"]";
            masresult[i] = 0;
        }

        asm(

            "cmpb $'+', %%cl;"
            "je PLUSdeis;"

            "cmpb $'-', %%cl;"
            "je MINUS;"

            "cmpb $'*', %%cl;"
            "je MULT;"

            "cmpb $'/', %%cl;"
            "je DELENIE;"

            "jmp konec;"

            "PLUSdeis:"
            "addl %%ebx, %%eax;"
            "jmp konec;"

            "MINUS:"
            "subl %%ebx, %%eax;"
            "jmp konec;"

            "MULT:"
            "imull %%ebx;"
            "jmp konec;"

            "DELENIE:"
            "cltd;"
            "idivl %%ebx;"
            "jmp konec;"

            "konec:"
            : "=a"(res), "=d"(ostatok)
            : "a"(mas[i]), "b"(masiv[i]), "c"(znak)
        );


        masresult[i] = res;
        cout << "Результат [" << i << "] = " << masresult[i] << endl;

        if (znak == '/')
            cout << "Остаток = " << ostatok << endl;
    }
}