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

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

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

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

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

textual
Листинг программы
.model small
.386
 
.data
var db 97,-89,57,-95,72,-84,73,-87,68,-67
 
.stack
db 255 dup(?)
 
.code
start:
mov ax,@data
mov ds,ax
 
lea si,var
xor ah,ah
xor bx,bx
mov cx,10
pos:
lodsb
 
test al,80h
jnz skip1
 
add bx,ax
 
skip1:
loop pos
 
lea si,var
mov ah,0FFh
xor dx,dx
mov cx,10
min:
lodsb
 
test al,80h
jz skip2
 
add dx,ax
 
skip2:
loop min
 
mov ah,4Ch
mov al,00h
int 21h
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
Похожие ответы