Прошу оказать содействие в написании программы в Ассемблере - Assembler

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

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

Прошу помочь с написанием программки в ассемблере. Своими силами осилить не могу не как эту задачу. Преподаватель толком не объяснял и не учил с нами язык а требовать - требует.. В общем буду признателен за помощь, всем кто поможет. Заранее спасибо Ввести два массива одинаковой длины. Сформировать третий массив, записав в него суммы соответствующих элементов первого и второго массива. В полученном массиве найти максимальный элемент.

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

textual
Листинг программы
.model  tiny          
.data
    arr1 db 1,2,3,4
    arr2 db 3,4,5,6
    arr3 db lengthof arr1 dup (?)
    max db 80h
.code
org 100h
start:  
    lea si,arr1
    lea bx,arr2
    lea di,arr3
    mov cx,lengthof arr1
@L1:
    lodsb
    add al,byte ptr [bx]
    stosb
    cmp al,[max]
    jle @L2
        mov [max],al
    @L2:
    inc bx
    loop @L1
    jmp start - 100h
end start

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

  1. Объявлены три строковых переменные: arr1, arr2, arr3.
  2. Переменная arr3 инициализируется значением, равным длине массива arr1.
  3. Переменная max содержит наибольшее значение, которое может быть получено при сравнении со значением arr3.
  4. Код выполняет перебор массива arr1 и сравнивает каждый элемент с максимальным значением из массива arr3.
  5. Если текущий элемент больше максимального значения, он становится новым максимальным значением.
  6. Код продолжает перебирать массив до тех пор, пока не будет найден элемент, который больше текущего максимального значения.
  7. Цикл завершается, когда все элементы массива были проверены.
  8. Код повторяет цикл, начиная с первого элемента массива.
  9. Код завершается, когда достигается условие для выхода из цикла.

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

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