Суммирование положительных членов массива - Assembler

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

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

Нужно просуммировать все положительные элементы массива длиной N

Решение задачи: «Суммирование положительных членов массива»

textual
Листинг программы
  1. lea si,arr
  2. xor bx,bx
  3. mov cx,n
  4. sum:
  5. lodsb
  6.  
  7. test al,80h
  8. jnz skip
  9.  
  10. add bl,al
  11.  
  12. skip:
  13. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы