Программирование цикла с переадресацией

Автор работы: Пользователь скрыл имя, 11 Ноября 2014 в 13:00, лабораторная работа

Краткое описание

Разработать программу вычисления суммы элементов массива чисел С1, С2, …, Сn .Исходными данными в этой задаче являются: n – количество суммируемых чисел и С1, С2, …, Сn–массив суммируемых чисел. Заметим, что должно выполняться условие n>1, т.к. алгоритм предусматривает, по крайне мере, одно суммирование. Кроме того, предполагается, что суммируемые числа записаны в ОЗУ подряд, т.е. в ячейки памяти с последовательными адресами. Результатом является сумма S.
Составим программу для вычисления суммы со следующими конкретными параметрами: число элементов массива – 10, элементы массива расположены в ячейках ОЗУ по адресам 040, 041, 042, …, 049. Используемые для решения задачи промежуточные переменные имеют следующий смысл: Аi–адрес числа Сi ,iпринадлежит {1, 2, …, 10 }; ОЗУ (Аi)–число по адресу Аi, S–текущая сумма; k–счетчик цикла, определяющий число повторений тела цикла.

Прикрепленные файлы: 1 файл

Лабораторная работа_4_ИиВТ.docx

— 20.64 Кб (Скачать документ)

Лабораторная работа №4

Программирование цикла с переадресацией

При решении задач, связанных с обработкой массивов, возникает необходимость изменения исполнительного адреса при повторном выполнении некоторых команд. Эта задача может быть решена путем использования косвенной адресации.

Пример:

Разработать программу вычисления суммы элементов массива чисел С1, С2, …, Сn .Исходными данными в этой задаче являются: n – количество суммируемых чисел и С1, С2, …, Сn–массив суммируемых чисел. Заметим, что должно выполняться условие n>1, т.к. алгоритм предусматривает, по крайне мере, одно суммирование. Кроме того, предполагается, что суммируемые числа записаны в ОЗУ подряд, т.е. в ячейки памяти с последовательными адресами. Результатом является сумма S.

Составим программу для вычисления суммы со следующими конкретными параметрами: число элементов массива – 10, элементы массива расположены в ячейках ОЗУ по адресам 040, 041, 042, …, 049. Используемые для решения задачи промежуточные переменные имеют следующий смысл: Аi–адрес числа Сi ,iпринадлежит {1, 2, …, 10 }; ОЗУ (Аi)–число по адресу Аi, S–текущая сумма; k–счетчик цикла, определяющий число повторений тела цикла.

Распределение памяти таково. Программу разместим в ячейках ОЗУ, начиная с адреса 000, примерная оценка объема программы – 20 команд; промежуточные переменные: Аi – в ячейке ОЗУ с адресом 030, k – по адресу 031, S– по адресу 032.

Текст программы

Адрес

Команда

Примечание

Мнемокод

Код

000

RD #40

 

Загрузка начального адреса массива 040

001

WR 30

 

в ячейку 030

002

RD #10

 

Загрузка параметра цикла k=10

003

WR 31

 

в ячейку 031

004

RD #0

 

Загрузка начального значения суммы S=0

005

WR 32

 

в ячейку 032

006

M1: RD 32

 

Добавление

007

ADD @30

 

к текущей сумме

008

WR 32

 

очередного элемента массива

009

RD 30

 

Модификация текущего

010

ADD #1

 

адреса массива

011

WR 30

 

(переход к следующему адресу)

012

RD 31

 

Уменьшение счетчика

013

SUB #1

 

(параметры цикла)

014

WR 31

 

на 1

015

JNZ M1

 

Проверка параметра цикла и переход при k ≠ 0

016

RD 32

 

Вывод

017

OUT

 

 результата

018

HLT

 

Стоп


Задание

  1. Написать программу определения заданной характеристики последовательности чисел С1, С2, …, Сn. Варианты заданий приведены в таблице.
  2. Записать программу в мнемокодах, введя ее в поле окна Текст программы.
  3. Сохранить набранную программу в виде текстового файла и произвести ассемблирование мнемокодов.
  4. Загрузить в ОЗУ необходимые константы и исходные данные.
  5. Отладить программу.

Таблица

Номер варианта

Характеристика последовательности чисел С1, С2, …, Сn

1

Количество четных чисел

2

Номер минимального числа

3

Произведение всех чисел

4

Номер первого отрицательного числа

5

Количество чисел, равных С1

6

Количество отрицательных чисел

7

Максимальное отрицательное число

8

Номер первого положительного числа

9

Минимальное положительное число

10

Номер максимального числа

11

Количество нечетных чисел

12

Количество чисел, меньших С1

13

Разность сумм четных и нечетных элементов массива

14

Отношение сумм четных и нечетных элементов массива


 

Примечание: Под четными (нечетными) элементами массивов понимаются элементы массивов, имеющие четные (нечетные) индексы. Четные числа – элементы массивов, делящиеся без остатка на 2.

Содержание отчета:

  1. Формулировка варианта задания.
  2. Распределение памяти (размещение в ОЗУ переменных, программы и необходимых констант).
  3. Программа, с комментариями в виде таблицы и сохраненный файл с программой.
  4. Значения исходных данных и результата выполнения программы в формате .doc ( .docx) со скриншотом (компиляции программы, конец программы и значащих шагов программы).
  5. Опишите из примера программы, что размещается в ОЗУ 030, 031 и 032?

Информация о работе Программирование цикла с переадресацией