нарисуйте хотя бы схематично в паинте пожалуйста
Добавить новый элемент массива, если его значение не равно значениям элементов заданного массива А(I). I = 1,2,..,5. Максимальная размерность массива А(I)=10. Добавляемые числа находятся в массиве B(J). J = 1,2,...,5.
model small
.stack 100h ;стэк 256 Кб
.data
len2 dw 5 ;длина массива-результата
len equ 5 ;длина исходных массивов
mas2 db 2, 3, 6, 7, 8 ;массив откуда брать
void dw ? ;раздел между массивами для удобного просмотра
mas1 db 1, 2, 3, 4, 5 ;массив - результат
.code
start: ;метка начала программы
mov ax,@data ;инициализируем ds сегмнтом данных
mov ds,ax ; через регистр ах
mov cx,len ;цикл по всему массиву
xor si,si ;исключающее или - обнуление счетчика цикла
cicl1: ;цикл по массиву для добавления
mov al,mas2[si] ;берем поочередно каждый элемент
push cx ;запоминаем сх в стэк для вложенных циклов
mov cx, len2 ;вложенный цикл по всему результирующему массиву
xor di,di ;обнуляем счетчик второго цикла
cicl2: ;пробегаем по массиву результату.
cmp al,mas1[di] ;если в массиве таких элементов нет
je metka
inc di
loop cicl2 ;то добавим
mov di,len2 ;добавление
mov mas1[di],al ;элемента в массив
inc len2 ;увеличение длины массива
metka:
pop cx ;если есть, то следующая итерация
inc si ;переход к следующему элементу
loop cicl1 ;все элементы добавлены
exit: ;выход
mov ax,4c00h ;4с - номер функции выхода, 0 - код ошибки
int 21h ;вызов библиотеки прерываний DOS
end start ;вход в программу с метки start