Роздрукувати сторінку
Главная \ Методичні вказівки \ Методичні вказівки \ 2341 Лабораторная работа №3 на тему Программирование цикла с переадресацией

Лабораторная работа №3 на тему Программирование цикла с переадресацией

« Назад

Лабораторная работа №3 на тему Программирование цикла с переадресацией

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

Теоретические сведения

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

Пример 3

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

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

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

Рисунок 3.1 – Граф-схема алгоритма для примера 3

Таблица 3.1 Текст программы примера 3

Адрес

Команда

Примечание

000

RD #40

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

001

WR 30

в ячейку 030

002

RD #10

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

003

WR 31

в ячейку 031

004

RD #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 Ml

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

016

RD 32

Вывод

017

OUT

результата

018

HLT

Стоп

Задание

  1. Написать программу определения заданной характеристики последовательности чисел , ,…,. Варианты заданий приведены в таблице 3.2.

  2. Записать программу в мнемокодах, введя ее в поле окна Текст программы.

  3. Сохранить набранную программу в виде текстового файла и произвести ассемблирование мнемокодов.

  4. Загрузить в ОЗУ необходимые константы и исходные данные.

  5. Отладить программу.

Таблица 3.2 Варианты задания 3

варианта

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

1

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

2

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

3

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

4

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

5

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

6

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

7

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

8

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

9

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

10

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

11

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

12

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

13

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

14

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

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

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

  1. Титульная страница;

  2. Цель;

  3. Формулировка варианта задания;

  4. Краткие теоретические сведения;

  5. Граф-схема алгоритма решения задачи;

  6. Распределение памяти (размещение в ОЗУ переменных, программы и необходимых констант);

  7. Программа по форме таблицы 2.1;

  8. Значения исходных данных и результата выполнения программы;

  9. Вывод.

Контрольные вопросы

  1. Как организовать цикл в программе?

  2. Что такое параметр цикла?

  3. Как поведет себя программа, приведенная в таблице 3.1, если в ней будет отсутствовать команда WR 31 по адресу 014?

  4. Как поведет себя программа, приведенная в таблице 3.1, если метка M1 будет поставлена по адресу 005? 007?

З повагою ІЦ "KURSOVIKS"!