Найти сумму нечётных элементов массива - Assembler

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

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

Дан листинг программы, которую нужно переработать, чтобы она считала сумму нечётных элементов массива, причём тип элементов должен быть БАЙТ.
;Программа суммирования элементов массива
.386 ;Модель процессора
.MODEL FLAT,C ;Плоская модель памяти и передача параметров в стиле С
.STACK
.DATA ;Глобальные данные модуля программы 
  Lnd dd 5 ;Длина массива
  dat  db 1,2,3,4,255 ;Массив
  smm db ?          ;Сумма элементов
  stsmm  db ?       ;Старшая цифра суммы
.CODE ;Команды программы
  main PROC;
   ;Здесвь размещаются коды главной процедуры
   mov stsmm,0;Очищаем старшшую цифру и
   xor al,al  ;сумматор.
   mov ecx,Lnd;Загружаем длину массива и
   lea ebx,dat;адрес массива
 rp:;Цикл повторения
   add al,[ebx];Прибавляем очередное слагаемое
   jnc minc    ;Если нет переноса, то приращение адреса,
   inc stsmm   ;иначе увеличиваем старшую цифру
minc:
   inc ebx     ;Приращение адреса
   loop rp     ;Если цикл не закончен, повторяем 
   mov smm,al  ;Сохраняем результаты в памяти
   ret
  main ENDP
 ;Здесь размещаются процедуры программы
 END

Решение задачи: «Найти сумму нечётных элементов массива»

textual
Листинг программы
jnc minc    ;Если нет переноса, то приращение адреса,
inc stsmm   ;иначе увеличиваем старшую цифру

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


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

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

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