Из массива Х размером nx, сформировать массив Y размером ny, что бы элементы из массива X не повторялись в Y - Assembler

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

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

Вот что получилось, но почему-то не удаляет повторяющиеся элементы
Листинг программы
  1. mov esi,0
  2. mov ecx,nx
  3. mov ebx,0
  4. C1:
  5. push ecx
  6. mov ecx,nx
  7. mov edi,0
  8. mov col,0
  9. mov eax,x[esi*4]
  10. C2:
  11. cmp eax,x[edi*4]
  12. je m2
  13. inc col
  14. inc edi
  15. loop C2
  16. cmp col,1
  17. jne m2
  18. mov y[ebx*4],eax
  19. inc ebx
  20. m2:
  21. pop ecx
  22. inc esi
  23. loop C1
  24. mov ny,ebx

Решение задачи: «Из массива Х размером nx, сформировать массив Y размером ny, что бы элементы из массива X не повторялись в Y»

textual
Листинг программы
  1. x    dd  1, 2, 3, 1, 5, 3    
  2. nx   =   ($ - x) / 4        
  3. y    dd  nx dup (-1)                  
  4.  
  5. start:
  6.  
  7.     xor ebx, ebx
  8.     mov esi, x
  9.     @@:
  10.         cmp esi, y
  11.         je @exit
  12.         lodsd
  13.         mov ecx, ebx
  14.         mov edi, y
  15.         repne scasd
  16.     jz  @b
  17.         mov [y + ebx*4], eax
  18.         inc ebx
  19.     jmp @b
  20.  
  21. @exit:

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

  1. Задается размер массива X - nx, который равен разнице между последним элементом массива X и адресом X в памяти, деленной на 4.
  2. Инициализируется массив Y размером ny, равным nx, но с заполнителем (-1).
  3. В цикле сравниваются элементы массива X с элементами массива Y. Если элемент X встречается в массиве Y, то он пропускается.
  4. Если элемент X не встречается в массиве Y, то он копируется в массив Y.
  5. После обработки всех элементов массива X, в массиве Y остается только уникальные элементы.

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


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

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

8   голосов , оценка 4.125 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы