Вычисление сумм отрицательных и положительных элементов массива - 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 в стандартный вывод
- Выход из программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д