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

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

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

В массиве С(12) сложить отдельно элементы положительные и отрицательные. Подсчитать количество элементов в каждой сумме

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

textual
Листинг программы
include io.asm
STACK1 segment
db 128 dup (?)
STACK1 ends
 
DATA segment
mus dw 12 dup (?)
otr dw 0
pol dw 0
sum_pol dw 0
sum_otr dw 0
text1 db 13,10 ,"kol pol: ",'$'
text2 db 13,10 ,"kol otr: ",'$'
text3 db 13,10 ,"sum pol: ",'$'
text4 db 13,10 ,"sum otr: ",'$'
DATA ENDS
 
CODE segment
START:
ASSUME CS:Code, DS:Data, SS:Stack1
mov ax, Data
mov ds, ax
 
mov dx, 0 
mov bx, 0 
mov di, 0
mov si, 0
mov ax, 0
mov cx, 12
 
VVOD: ININT ax
mov mus[si], ax
inc si
inc si
loop VVOD
 
mov ax, 0
mov si, 0
mov cx, 12
met3: mov ax, mus[si]
cmp ax, 0
JL met1
add pol,1
add dx, mus[si]
mov sum_pol, dx
JMP met2
met1: add otr,1
add bx, mus[si]
mov sum_otr, bx
met2:inc si
inc si
loop met3
 
mov ah, 9h
mov dx, OFFSET text1
int 21h
mov dx,0
mov dx, pol
OUTINT dx
add dx,'0'
mov ah,02h
 
mov ah, 9h
mov dx, OFFSET text2
int 21h
mov dx,0
mov dx, otr 
OUTINT dx
add DX,'0'
mov ah,02h
 
mov ah, 9h
mov dx, OFFSET text3
int 21h
mov dx,0
mov dx, sum_pol 
OUTINT dx
add dx,'0'
mov ah,02h
 
mov ah, 9h
mov dx, OFFSET text4
int 21h
mov dx, sum_otr
mov dx, dx 
OUTINT dx
add dx,'0'
mov ah,02h
 
 
MOV ah, 10h
INT 16h
MOV ah, 4ch
INT 21h
CODE ends
end start

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

Код выполняет следующие действия:

  1. Считывает 12 чисел из массива mus в переменные dx, bx, di, si, ax, cx.
  2. Производит сложение положительных и отрицательных чисел, сохраняя результаты в переменных pol и otr соответственно.
  3. Выводит на экран количество положительных и отрицательных чисел, а также их сумму.

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


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

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

10   голосов , оценка 3.7 из 5
Похожие ответы