Суммирование положительных членов массива - Assembler
Формулировка задачи:
Нужно просуммировать все положительные элементы массива длиной N
Решение задачи: «Суммирование положительных членов массива»
textual
Листинг программы
lea si,arr xor bx,bx mov cx,n sum: lodsb test al,80h jnz skip add bl,al skip: loop sum
Объяснение кода листинга программы
si
- переменная, содержащая адрес начала массиваarr
bx
- переменная, инициализированная нулём, для хранения суммы положительных элементов массиваcx
- переменная, содержащая количество элементов в массивеarr
- Цикл
sum
, который будет выполнять следующие действия для каждого элемента массива до тех пор, покаcx
не станет равным нулю:- Используется команда
lodsb
для загрузки байта данных, на который указываетsi
, в регистрal
- Проверка, является ли значение в регистре
al
положительным:- Если да, то переход к метке
skip
, иначе выполнение следующего шага
- Если да, то переход к метке
- Прибавление значения
al
к региструbl
(переменная для хранения суммы положительных элементов) - Метка
skip
для пропуска выполнения следующего шага в случае отрицательного элемента - Уменьшение
cx
на единицу для перехода к следующему элементу массива.
- Используется команда
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д