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

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

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

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

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

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