Найти количество чисел двумерного массива А=[е][у] удовлетворяющие условие с<=[е][у]<=р (Си+ассемблер) - 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"); }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы.
- Инициализируется генератор случайных чисел.
- Определяется размер массива.
- Переменная
res
инициализируется нулем. - Заполняется массив
a
случайными числами от 0 до 9. - Демонстрируется заполненный массив
a
. - Выполняется ассемблерный блок кода, который ищет числа в массиве
a
удовлетворяющие условию c <= a[i][j] <= d. - Результат подсчета выводится на экран.
- Программа ожидает нажатия клавиши
pause
для завершения работы.