Вычисление сумм отрицательных и положительных элементов массива - 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
Объяснение кода листинга программы
- Установка начального значения регистрам AX и DS
- Загрузка массива в переменную BX
- Инициализация счётчика для цикла
- Включение цикла по положительным элементам массива
- Загрузка очередного элемента массива в регистр AX
- Проверка на отрицательность элемента
- Если элемент отрицательный, то прибавление его значения к BX
- Выход из цикла при достижении конца массива
- Вычисление суммы положительных элементов массива и сохранение в DX
- Инициализация счётчика для цикла
- Включение цикла по отрицательным элементам массива
- Загрузка очередного элемента массива в регистр AX
- Проверка на положительность элемента
- Если элемент положительный, то прибавление его значения к DX
- Выход из цикла при достижении конца массива
- Вычисление разности между суммой положительных и отрицательных элементов и сохранение в регистре AX
- Запись значения регистра AX в стандартный вывод
- Выход из программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д