Суммирование положительных членов массива - 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

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

  1. si - переменная, содержащая адрес начала массива arr
  2. bx - переменная, инициализированная нулём, для хранения суммы положительных элементов массива
  3. cx - переменная, содержащая количество элементов в массиве arr
  4. Цикл sum, который будет выполнять следующие действия для каждого элемента массива до тех пор, пока cx не станет равным нулю:
    • Используется команда lodsb для загрузки байта данных, на который указывает si, в регистр al
    • Проверка, является ли значение в регистре al положительным:
      • Если да, то переход к метке skip, иначе выполнение следующего шага
    • Прибавление значения al к регистру bl (переменная для хранения суммы положительных элементов)
    • Метка skip для пропуска выполнения следующего шага в случае отрицательного элемента
    • Уменьшение cx на единицу для перехода к следующему элементу массива.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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