Определить среднее значение элементов массива - Assembler (224373)

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

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

Определить среднее значение элементов массива А(I) и В(I). Определение среднего значения оформить в виде подпрограммы.I= 1,2,..,10. Только начинаю изучение assembler'a, может кто написать примерный код, чтобы я имел примерное представление с чего начать в данной задаче Заранее спасибо

Решение задачи: «Определить среднее значение элементов массива»

textual
Листинг программы
mov esi,mas ; адрес массива
mov ecx,mas_siz ; число элементов массива
call naprimer ; подпрограмма подсчёта
 
proc naprimer ; подпрограмма
cld ; направление
lodsb ; первый элемент
mov ah,al ; сам себе среднее
dec ecx ; счётчик минус один
@@: ; начало цикла
lodsb ; очередной элемент
add ah,al ; сложить со средним
rcr ; поделить пополам
loop @r ; проверить счётчик
ret
endp

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

  1. Вначале, в основной программе, инициализируются две переменные: esi и ecx.
  2. Переменная esi содержит адрес массива, а переменная ecx содержит количество элементов в массиве (его размер).
  3. Затем вызывается подпрограмма naprimer, которая будет вычислять среднее значение.
  4. В подпрограмме naprimer первым делом устанавливается направление выполнения команд (cld).
  5. Затем происходит загрузка первого элемента массива в регистр ah.
  6. Вторым шагом значение регистра ah копируется в регистр al.
  7. Делается уменьшение счётчика на единицу (dec ecx).
  8. Далее происходит загрузка очередного элемента массива в регистр ah.
  9. Значение регистра ah добавляется к значению регистра al.
  10. Происходит деление полученной суммы пополам (rcr).
  11. Затем проверяется счётчик (loop @r). Если он не равен нулю, то выполнение команд в подпрограмме продолжается.
  12. В основной программе после вызова подпрограммы naprimer, в переменной al будет храниться среднее значение элементов массива.

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

14   голосов , оценка 3.857 из 5
Похожие ответы