Вычислить сумму элементов двух массивов - Assembler
Формулировка задачи:
Очень нужна ваша помощь, мне в колледже дали задание. Пока я здесь(в колледж) мне надо сделать это.
Задача:
С помощью массивов надо:
x - 10 чисел
y - 10 чисел
z - это сумма из этих чисел x и y. Например.
1 2 3 4 5 6 7 8 2 1
1 4 6 2 1 2 1 1 1 6
------------------
1 6 9 6 6 8 8 9 3 7
Как это сделать?
Решение задачи: «Вычислить сумму элементов двух массивов»
textual
Листинг программы
.586 .model flat, stdcall option casemap: none include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\masm32.inc include \masm32\include\debug.inc includelib \masm32\lib\kernel32.lib includelib \masm32\lib\masm32.lib includelib \masm32\lib\debug.lib .data X dd 1, 2, 3, 4, 5, 6, 7, 8, 2, 1 Y dd 1, 4, 6, 2, 1, 2, 1, 1, 1, 6 .code start: mov ecx,1 m1: mov eax,[X+ecx*4-4] add eax,[Y+ecx*4-4] PrintDec eax," - suma." inc ecx cmp ecx,11 jnz m1 invoke ExitProcess, NULL end start
Объяснение кода листинга программы
- Объявление переменных X и Y, которые содержат два массива чисел.
- Инициализация счетчика циклов m1 в 1.
- Цикл m1, выполняющийся 11 раз (счетчик ecx).
- В каждой итерации цикла, происходит взятие суммы элементов X и Y, начиная с 0-го элемента и заканчивая 10-м элементом.
- Результат вычисления выводится на экран с помощью функции PrintDec и метки
suma. - После выполнения всех итераций цикла, вызывается функция ExitProcess, которая завершает работу программы.