Одномерный массив. Написать программу. - Assembler

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

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

Всем приветики! Помогите плиз в решении задачи! Условие: Дан одномерный массив. Найти среднее арифметическое между первым положительным и последним элементами массива. Написать программу в Паскале. Построить блок схему.(хотя бы словами что за чем идет.) Заранее спасибо.

Решение задачи: «Одномерный массив. Написать программу.»

textual
Листинг программы
begin
asm
mov dx, 0                 {Обнуляем регистр DX, чтобы поместить флаг переноса}
                              {если сумма чисел больше размера слова}
mov ax, ds:[SI]         {Загружаем в AX содержимое 1-го элемента массива}
                              {DS:[SI] адрес младшего байта 1-го элемента массива}
                              {Размер элементов массива - слово, 2 байта}
add ax, ds:[SI + 39]   {Прибавляем к AX содержимое 20-го элемента}
 
           {DS:[SI + 39] - адрес младшего байта 20-го элемента; пусть у нас 20 эл. мас.}
                              {Применяем индексную адресацию со смещением}
adc dl, 0                   {Прибавляем к регистру только флаг переноса;}
                              {если таковой установлен, прибавится единица}
mov cx, 2                 {Загружаем делитель, равный количеству чисел}
div cx                      {Находим среднее арифметическое}
{Делим двойное слово в регистрах DX и AX на слово, регистр CX}
{Частное в регистре AX; остаток в регистре DX}
end;
end.

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

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