Організація циклів та оброблення масивів МП І80Х86

Слайд 2

Слайд 3

Слайд 4

Слайд 5

Слайд 6

Слайд 7

Слайд 8

Слайд 9

Слайд 10

Слайд 11

Слайд 12

#MAKE_EXE# .stack 256 .data n equ 10 ;Кількість елементів масивів x

#MAKE_EXE#
.stack 256
.data
n equ 10 ;Кількість елементів масивів
x dw

1,2,3,4,n-4 dup (1) ;Масив: 1,2,3,4,1,1,1,1,1,1
y dw 5,6,7,8,9,n-5 dup (2) ;Масив: 5,6,7,8,9,2,2,2,2,2
z dw n dup (?) ;Для масиву суми
s dw 0 ;Для скалярного добутку
.code
MOV AX, @data ;Встановлення DS через акумулятор
MOV DS, AX
mov SI,0000 ;Обнуління індексного регістра
mov CX,n ;Завантаження лічильника
Cycl: mov AX,x[SI] ;АХ=Xі
add AX,y[SI] ;АХ=Xі+Yi
mov z[SI],AX ;Zi=Xi+Yi
mov AX,x[SI] ;АХ=Xі
imul y[SI] ;AX=Xi*Yi
add s,AX ;S=S+Xi*Yi
add SI,2 ;Збільшення індексу на 2
loop Cycl ;Перехід на початок циклу
HLT

Приклад 6 (оброблення одномірного масиву): Маємо два масиви X та Y. Необхідно отримати масив Z, елементи якого є сумами відповідних елементів масивів X, Y, а також скалярний добуток X та Y.

4. Оброблення масивів МП I80Х86

Слайд 13

Слайд 14

Слайд 15