Одномерный массив. Написать программу. - 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.