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

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

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

Добрый день, постановка задачи такая: Дан массив А(20). Все положительные элементы массива просуммировать, а отрицательные элементы удвоить. Я прогу написал, но не уверен, что она работает должным образом. Кому не трудно, проверьте, пожалуйста.
data segment para 'data' 
arrayA dw 5,3,1,0,9,-1,-4,3,7,,-9,-2,2,4,5,43,-4,2,-2,1,3
sum dw 0
sum2 dw 2
data ends           
assume CS:code, DS:data                 
stk segment stack para 'stack'  
db 256 dup (?)      
stk ends            
code segment para 'code'    
begin: mov AX, data         
mov DS, AX 
mov cx,20
lea bx, arrayA
xor si,si
M: mov ax, [bx+si]
cmp ax,0
jae m1
inc si
inc si
loop m
m1: add sum, Ax
inc si
inc si
lea bx, arrayA
xor si,si
M2: mov ax, [bx+si]
cmp ax,0
jb me2
inc si
inc si
loop m
me2: imul sum2
inc si
inc si
lea bx, arrayA
xor si,si
 
loop M
loop M2

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

textual
Листинг программы
var
  Sum: integer;
  i: integer
begin
  Sum := 0;
  for i:=0 to 19 do
    if A[i]<0 then
      A[i] := 2*A[i]
    else
      Sum := Sum + A[i];
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
Похожие ответы