Прошу оказать содействие в написании программы в Ассемблере - 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
Объяснение кода листинга программы
- Объявлены три строковых переменные: arr1, arr2, arr3.
- Переменная arr3 инициализируется значением, равным длине массива arr1.
- Переменная max содержит наибольшее значение, которое может быть получено при сравнении со значением arr3.
- Код выполняет перебор массива arr1 и сравнивает каждый элемент с максимальным значением из массива arr3.
- Если текущий элемент больше максимального значения, он становится новым максимальным значением.
- Код продолжает перебирать массив до тех пор, пока не будет найден элемент, который больше текущего максимального значения.
- Цикл завершается, когда все элементы массива были проверены.
- Код повторяет цикл, начиная с первого элемента массива.
- Код завершается, когда достигается условие для выхода из цикла.