Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




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

Пример

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

Составим программу для вычисления суммы со следующими конкретными параметрами: число элементов массива— 10, элементы массива расположены в ячейках ОЗУ по адресам 040, 041, 042,..., 049. Используемые для решения задачи промежуточные переменные имеют следующий смысл: А, — адрес числа С,, / е {l, 2,..., 10); ОЗУ(Аг) — число по адресу At, S — текущая сумма; к — счетчик цикла, определяющий число повторений тела цикла. Распределение памяти таково. Программу разместим в ячейках ОЗУ, начиная с адреса 000, примерная оценка объема программы — 20 команд; промежуточные переменные: At — в ячейке ОЗУ с адресом 030, к — по адресу 031, S — по адресу 032. ГСА программы показана на рис. 9.2, текст программы с комментариями приведен в табл. 9.7.

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

Адрес Команда Примечание  
  RD #40 Загрузка начального адреса массива 040  
  WR 30 в ячейку 030  
  RD #10 Загрузка параметра цикла к — 10 в ячейку 031
  WR 31  
  RD #0 Загрузка начального значения суммы S = 0
  WR 32 в ячейку 032
  Ml: RD 32 Добавление
  ADD @30 к текущей сумме
  WR 32 очередного элемента массива
  RD30 Модификация текущего
  ADD #1 адреса массива
  WR 30 (переход к следующему адресу)
  RD 31 Уменьшение счетчика
  SUB #1 (параметра цикла)
  WR 31 на 1
  JNZ Ml Проверка параметра цикла и переход при к ≠ 0
  RD 32 Вывод
  OUT результата
  HLT Стоп
           

Задание

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

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

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

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

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

 

Таблица 9.8. Варианты задания

Номер варианта Характеристика последовательности чисел С,, С2,..., Сп
  Количество четных чисел
  Номер минимального числа
  Произведение всех чисел
  Номер первого отрицательного числа
  Количество чисел, равных С
  Количество отрицательных чисел
  Максимальное отрицательное число
  Номер первого положительного числа
  Минимальное положительное число
  Номер максимального числа
  Количество нечетных чисел
  Количество чисел, меньших Сх
  Разность сумм четных и нечетных элементов массивов
  Отношение сумм четных и нечетных элементов массивов

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

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

7. Произвести разработку алгоритма программы реализующую обработку массива через стек.

 

Содержание контрольной

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

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

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

4. Программа.

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

6. Ответы на контрольные вопросы.

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

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

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

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

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





Поделиться с друзьями:


Дата добавления: 2016-11-12; Мы поможем в написании ваших работ!; просмотров: 2353 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Слабые люди всю жизнь стараются быть не хуже других. Сильным во что бы то ни стало нужно стать лучше всех. © Борис Акунин
==> читать все изречения...

2240 - | 2159 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.