Посчитайте, сколько элементов с одинаковым номером будут иметь одинаковые значения - Assembler

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

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

3. Сравните соответствующие элементы двух массивов. Посчитайте, сколько элементов с одинаковым номером будут иметь одинаковые значения.

Решение задачи: «Посчитайте, сколько элементов с одинаковым номером будут иметь одинаковые значения»

textual
Листинг программы
  1. LOCALS
  2.  
  3. .model small
  4.  
  5. .stack 100h
  6.  
  7. .data
  8.         A       db      1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
  9.         B       db      21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40
  10.         Count   db      ?
  11. .code
  12.  
  13. main    proc
  14.         mov     ax,     @data
  15.         mov     ds,     ax
  16.  
  17.         mov     cx,     20
  18.         lea     si,     A
  19.         lea     di,     B
  20.         mov     Count,  0
  21. @@For:
  22.         mov     al,     [di]
  23.         cmp     [si],   al
  24.         jne     @@Next
  25.         inc     Count
  26. @@Next:
  27.         add     si,     1
  28.         add     di,     1
  29.         loop    @@For
  30.  
  31.         mov     ax,     4C00h
  32.         int     21h
  33. main    endp
  34.  
  35. end     main

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

  1. Объявление переменных:
    • A: массив байтов с числами от 1 до 20
    • B: массив байтов с числами от 21 до 40
    • Count: переменная для хранения количества одинаковых элементов
  2. Начало программы:
    • Устанавливается указатель на сегмент данных
    • Загружается регистр данных ds
  3. Инициализация счетчика и указателей массивов:
    • cx устанавливается в 20 (длина массива)
    • si устанавливается на начало массива A
    • di устанавливается на начало массива B
    • Count устанавливается в 0
  4. Цикл сравнения элементов и подсчета:
    • Загружается значение байта из массива B в регистр al
    • Сравнивается значение из массива A с al
    • Если они равны, увеличивается Count
    • Вне зависимости от результата, указатели на массивы сдвигаются на один элемент
    • Цикл повторяется для оставшихся элементов массивов
  5. Завершение программы:
    • Устанавливается значение регистра ax для выхода из программы
    • Происходит вызов прерывания для завершения программы Таким образом, программа сравнивает элементы массивов A и B с одинаковыми индексами и подсчитывает, сколько из них имеют одинаковые значения.

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


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

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

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

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

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

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