Найти количество чисел двумерного массива А=[е][у] удовлетворяющие условие с<=[е][у]<=р (Си+ассемблер) - Assembler

Узнай цену своей работы

Формулировка задачи:

Доброго всем времени суток! Предо мной появилась стеночка которая мешает дальше топать по дороге, нужно написать программу которая находит количество чисел двумерного массива А=[е][у] которые удовлетворяются условию с<=[е][у]<=р, на си + ассемблер, тоесть массив задать на си, всё остальное на асм. Сидел я сидел и что-то не понимаю, ассемблером занимался последний раз год назад, забыл всё)) Люди добрые, помогите разбить стеночку то_)

Решение задачи: «Найти количество чисел двумерного массива А=[е][у] удовлетворяющие условие с<=[е][у]<=р (Си+ассемблер)»

textual
Листинг программы
#include <iostream>
#include <ctime>
 
int main()
{
    srand(time(NULL));
    const size_t MAX_N = 4;
    int a[MAX_N][MAX_N];
    int c, d;
    do {
        std::cout << "Enter c and d : \n";
        std::cin >> c;
        std::cin >> d;
        if (c >= d)
            std::cout << "Wrong!\n";
    } while (c >= d);
    int n = MAX_N * MAX_N;
    int res = 0;
    for (int i = 0; i < MAX_N; i++) {
        for (int j = 0; j < MAX_N; j++)
        {
            a[i][j] = rand() % 10;
            std::cout << a[i][j] << "   ";
        }
        std::cout << std::endl;
    }
    __asm
    {
        mov ecx, n
        lea esi,a
 
    next_1:
        lodsd
        cmp eax, c
        jl  next_2
        cmp eax, d
        jg  next_2
        inc res
    next_2:
            loop next_1
    }
    
    std::cout << res << std::endl;
    system ("pause");
}

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы.
  2. Инициализируется генератор случайных чисел.
  3. Определяется размер массива.
  4. Переменная res инициализируется нулем.
  5. Заполняется массив a случайными числами от 0 до 9.
  6. Демонстрируется заполненный массив a.
  7. Выполняется ассемблерный блок кода, который ищет числа в массиве a удовлетворяющие условию c <= a[i][j] <= d.
  8. Результат подсчета выводится на экран.
  9. Программа ожидает нажатия клавиши pause для завершения работы.

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы