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

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

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

Добрый день, постановка задачи такая: Дан массив А(20). Все положительные элементы массива просуммировать, а отрицательные элементы удвоить. Я прогу написал, но не уверен, что она работает должным образом. Кому не трудно, проверьте, пожалуйста.
Листинг программы
  1. data segment para 'data'
  2. arrayA dw 5,3,1,0,9,-1,-4,3,7,,-9,-2,2,4,5,43,-4,2,-2,1,3
  3. sum dw 0
  4. sum2 dw 2
  5. data ends
  6. assume CS:code, DS:data
  7. stk segment stack para 'stack'
  8. db 256 dup (?)
  9. stk ends
  10. code segment para 'code'
  11. begin: mov AX, data
  12. mov DS, AX
  13. mov cx,20
  14. lea bx, arrayA
  15. xor si,si
  16. M: mov ax, [bx+si]
  17. cmp ax,0
  18. jae m1
  19. inc si
  20. inc si
  21. loop m
  22. m1: add sum, Ax
  23. inc si
  24. inc si
  25. lea bx, arrayA
  26. xor si,si
  27. M2: mov ax, [bx+si]
  28. cmp ax,0
  29. jb me2
  30. inc si
  31. inc si
  32. loop m
  33. me2: imul sum2
  34. inc si
  35. inc si
  36. lea bx, arrayA
  37. xor si,si
  38. loop M
  39. loop M2

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

textual
Листинг программы
  1. var
  2.   Sum: integer;
  3.   i: integer
  4. begin
  5.   Sum := 0;
  6.   for i:=0 to 19 do
  7.     if A[i]<0 then
  8.       A[i] := 2*A[i]
  9.     else
  10.       Sum := Sum + A[i];
  11. end.

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

  1. Объявление переменных:
    • Sum - переменная типа integer для хранения суммы положительных элементов массива.
    • i - переменная типа integer для использования в цикле.
  2. Инициализация переменной Sum:
    • Sum := 0; - устанавливает начальное значение суммы равное нулю.
  3. Цикл:
    • for i:=0 to 19 do - начинается цикл, в котором переменная i принимает значения от 0 до 19.
  4. Проверка условия:
    • if A[i]<0 then - если элемент массива A с индексом i отрицательный, то выполняется следующее действие.
  5. Удвоение отрицательного элемента:
    • A[i] := 2*A[i] - отрицательный элемент A[i] умножается на 2.
  6. Суммирование положительных элементов:
    • Sum := Sum + A[i]; - значение положительного элемента A[i] прибавляется к переменной Sum.
  7. Завершение программы.

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


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

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

9   голосов , оценка 3.778 из 5

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

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

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