Сложить отдельно положительные и отрицательные элементы массива - 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
Объяснение кода листинга программы
Код выполняет следующие действия:
- Считывает 12 чисел из массива mus в переменные dx, bx, di, si, ax, cx.
- Производит сложение положительных и отрицательных чисел, сохраняя результаты в переменных pol и otr соответственно.
- Выводит на экран количество положительных и отрицательных чисел, а также их сумму.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д