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

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

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

Вычисление отдельно сумму отрицательных и положительных элементов массива.

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

textual
Листинг программы
  1. .model small
  2. .386
  3.  
  4. .data
  5. var db 97,-89,57,-95,72,-84,73,-87,68,-67
  6.  
  7. .stack
  8. db 255 dup(?)
  9.  
  10. .code
  11. start:
  12. mov ax,@data
  13. mov ds,ax
  14.  
  15. lea si,var
  16. xor ah,ah
  17. xor bx,bx
  18. mov cx,10
  19. pos:
  20. lodsb
  21.  
  22. test al,80h
  23. jnz skip1
  24.  
  25. add bx,ax
  26.  
  27. skip1:
  28. loop pos
  29.  
  30. lea si,var
  31. mov ah,0FFh
  32. xor dx,dx
  33. mov cx,10
  34. min:
  35. lodsb
  36.  
  37. test al,80h
  38. jz skip2
  39.  
  40. add dx,ax
  41.  
  42. skip2:
  43. loop min
  44.  
  45. mov ah,4Ch
  46. mov al,00h
  47. int 21h
  48. end start

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

  1. Установка начального значения регистрам AX и DS
  2. Загрузка массива в переменную BX
  3. Инициализация счётчика для цикла
  4. Включение цикла по положительным элементам массива
    • Загрузка очередного элемента массива в регистр AX
    • Проверка на отрицательность элемента
    • Если элемент отрицательный, то прибавление его значения к BX
    • Выход из цикла при достижении конца массива
  5. Вычисление суммы положительных элементов массива и сохранение в DX
  6. Инициализация счётчика для цикла
  7. Включение цикла по отрицательным элементам массива
    • Загрузка очередного элемента массива в регистр AX
    • Проверка на положительность элемента
    • Если элемент положительный, то прибавление его значения к DX
    • Выход из цикла при достижении конца массива
  8. Вычисление разности между суммой положительных и отрицательных элементов и сохранение в регистре AX
  9. Запись значения регистра AX в стандартный вывод
  10. Выход из программы

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


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

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

6   голосов , оценка 3.833 из 5

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

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

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