Даны два множества в виде массивов. Найти сумму (объединение) множеств - Assembler

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

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

Даны два множества заданные в виде массивов А(I) и В(I); I=1,2,..,10. Найти сумму (об’единение) множеств. C(J) - сумма двух множеств есть множество всех элементов принадлежащих А или В. Например, {1,2,3} U {2,3,4} = {1,2,3,4}. Задачу добавления нового элемента массива оформить в виде подпрограммы.

Решение задачи: «Даны два множества в виде массивов. Найти сумму (объединение) множеств»

textual
Листинг программы
    mov timeCx, 0 ; Количество элементов в массиве С пока нулевое
    mov si, offset A ; Указатель в массиве A
    mov di, offset C ; Указатель в массиве C
    mov cx, len ; Цикл будет по числу элементов в массиве A
copying:
    mov al, [si] ; Прочли элемент из массива A
    mov [di], al ; Записали его в массив C
    inc si ; Продвинули указатель в массиве A
    inc di ; Продвинули указатель в массиве C
    inc timeCx ; В массиве C стало на один элемент больше
    loop    copying ; Завернули цикл len раз
; Значение регистра DI тут можно дальше использовать
; как указатель для продолжения заполнения массива C

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

  1. Длина массива A сохраняется в регистре len.
  2. Начальный адрес массива A сохраняется в регистре si.
  3. Начальный адрес массива C сохраняется в регистре di.
  4. Цикл будет выполняться, пока счётчик timeCx не станет равным нулю.
  5. В каждой итерации цикла считывается очередной элемент массива A в регистр al.
  6. Этот элемент записывается в массив C по адресу, который хранится в регистре di.
  7. Указатель в массиве A смещается вперёд на единицу (inc si).
  8. Указатель в массиве C смещается вперёд на единицу (inc di).
  9. Счётчик timeCx увеличивается на единицу (inc timeCx).
  10. Если времяCx не равно нулю, то происходит переход к следующей итерации цикла (loop copying).
  11. По завершении цикла, значение регистра DI можно использовать для продолжения заполнения массива C.

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


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

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

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