Лабораторная работа №2. Программирование алгоритма без цикла

Последовательность этапов разработки программы на языке ЭВМ упрощенно можно представить следующим образом: разработка алгоритма решения задачи, разработка программы с символическими адресами, распределение памяти для программы и данных, получение программы с действительными адресами, ввод программы в ОП, отладка программы.

Обычно область размещения данных в ОП находится после программы, возможен вариант расположения данных перед программой. В первом случае для определения начального адреса области данных необходимо знать длину программы, во втором – начальный адрес программы может быть определен, если известно количество ячеек ОП, требуемое для размещения данных. Это обстоятельство обусловливает необходимость разработки программы с символическими адресами. Кроме того, в процессе отладки программы может возникнуть необходимость включения в неё дополнительных команд или размещения дополнительных данных. В этом случае изменения удобно вносить в программу с символическими адресами. Однако распределение памяти и получение программы с действительными адресами придется выполнять заново.

Использование относительной адресации существенно упрощает программирование, так как дает возможность разрабатывать программу с действительными адресами и распределять память для данных, предполагая, что программа и данные размещаются в ОП, начиная с одного и того же адреса. (обычно 00). Необходимость разработки программы с символическими адресами в этом случае отпадает. Понятно, что во время выполнения программы данные и команды программы не могут занимать одну и ту же область памяти. Существуют два пути решения этого вопроса: создание перемещаемой области данных, разработка перемещаемой программы.

Для создания перемещаемой области данных необходимо во всех арифметических и посылочных командах программы вместо прямой адресации использовать относительную. Это обеспечивает возможность смещения области расположения данных путем задания базового адреса. Следует отметить, что такой путь разработки программ для рассматриваемой ЭВМ возможен в случае отсутствия необходимости использования косвенной адресации в арифметических и посылочных командах.

Для получения перемещаемой программы необходимо использовать относительную адресацию в командах передачи управления. Это обеспечивает возможность записывать программу в ОП, начиная с любого адреса. Настройка программы по месту расположения в памяти выполняется заданием базового адреса. Такой подход оставляет возможность использования косвенной адресации в арифметических и посылочных командах.

Приведенные далее примеры иллюстрируют разработку программы без использования относительной адресации и с её использованием для создания перемещаемой области данных.

Пример 2.5. Разработка программы для вычисления значения функции

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

Заметим, что допустимый диапазон представления чисел в рассматриваемой ЭВМ ограничивает при вычислении заданной функции возможные значения аргумента снизу и сверху: -99≤х≥104.


I

Рис. 2.1. Граф-схема решения задачи

Таблица 2.2

Программа с символическими адресами

Адрес Символическая команда Комментарий
КОП ТА А
А ВВ - - АК:=х
А+1 ЗП П Х ОП[Х]: =х
А+2 ВЫЧ Н   АК:=х-5
А+3 УПЗН П А+7 Перейти по адресу А+7, если х-5<0 (x<5)
А+4 ЗП П R ОП [R]:= x-5
А+5 УМН П R АК:=(х-5)2
А+6 БП П А+13 Перейти по адресу А+13
А+7 ЧТ П Х АК:=х
А+8 УМН Н   АК:=10х
А+9 ЗП П R ОП [R]:= 10x
А+10 ЧТ П Х АК:=х
А+11 УМН П Х АК:=х2
А+12 СЛ П R АК:=х2+1 0х
А+13 ВЫВ - - РВЫВ:=у
А+14 ОСТ - - ОСТАНОВ
Х       х
R       х-5, 10x

Распределение памяти: А= 00

X=15

R=16

Таблица 2.3

Программа с действительными адресами:

Адрес Символическая команда Код команды Комментарий
КОП ТА А
  ВВ - -   АК:=х
  ЗП П     ОП [15]:= x
  ВЫЧ Н     АК:=х-5
  УПЗН П     Перейти по адресу 07, если х-5 <0 (x<5)
  ЗП П     ОП [16]:=x-5
  УМН П     АК:= (х-5)2
  БП П     Перейти по адресу 13
  ЧТ П     АК:=х
  УМН Н     АК:= 10х
  ЗП П     ОП [16]: = 10х
  ЧТ П     АК:=х
  УМН П     АК:=х2
  СЛ П     АК:=х2+10х
  ВЫВ - -   РВЫВ:=у
  ОСТ - -   ОСТАНОВ
          х
          х-5, 10х

Пример 2.6. Программирование алгоритма вычисления значения функции (см.рис.2.1) с использованием относительной адресации для создания перемещаемой области данных.

Таблица 2.4

Программа с относительными и непосредственными адресами операндов:

Адрес Символическая команда Код команды Комментарий
КОП ТА А
  ВВ - -   АК:=х
  ЗП О     ОП[РБА+00]:=х
  ВЫЧ Н     АК:=х-5
  УПЗН П     Перейти по адресу 07, если х-5<0 (х<5)
  ЗП О     ОП [РБА+01]:=х-5
  УМН О     АК:=(х-5)2
  БП П     Перейти по адресу 13
  ЧТ О     АК:=х
  УМН Н     АК:=10х
  ЗП О     ОП[РБА+01]:=10х
  ЧТ О     АК:=х
  УМН О     АК:=х2
  СЛ О     АК:=х2+1Øх
  ВЫВ - -   РВЫВ:=у
  ОСТ - -   ОСТАНОВ

Размещение данных в ОП:

Относительный адрес Данные
  х
  х-5, 10х

Для того, чтобы область данных располагалась в ОП, после программы, базовый адрес должен быть равен 15.

Отладка программы – это процесс нахождения и устранения в ней ошибок. Осуществляя проверку результатов выполнения программы в режиме АВТ, необходимо убедиться в том, что:

1) Остановка происходит по команде ОСТ, предусмотренной в программе;

2) Верны результаты вычислений для различных наборов исходных данных, обеспечивающих выполнение программы в соответствии с возможными путями граф-схемы алгоритма.

Если выполнение программы в режиме АВТ не приводит к получению верных результатов, то, прослеживая выполнение программы в режиме ЦИКЛ, необходимо найти команду, являющуюся причиной ошибки и исправить ёё.

ЗАДАНИЕ

1. Разработать программу вычисления и вывода значения функции:

для вводимого значения аргумента x. Использовать в программе относительную адресацию для создания перемещаемой области данных. Функции и допустимые пределы изменения аргумента приведены в табл. 2.5, варианты заданий – в табл. 2.6.

2. Записать программу в ОП ЭВМ, для этого:

2.1. Записать в РА адрес первой команды программы.

2.2. Записать в РС команду, которая должна размещаться в ОП по адресу, содержащемуся в РА.

2.3. Внести директиву ЗПИ.

2.4. Повторять выполнение п.п. 2.2, 2.3 до тех пор, пока в ОП не будет записана вся программа.

3. Отладить программу, для этого:

3.1. Записать в РВВ значение аргумента .

3.2. Записать в РБА базовый адрес.

3.3. Установить режим АВТ.

3.4. Записать в СЧАК стартовый адрес программы.

3.5. Проверить правильность выполнения программы в режиме АВТ (правильность результата и адреса останова), в случае наличия ошибки выполнить п.п. 3.6-3.8.

3.6. Установить режим ЦИКЛ.

3.7. Записать в СЧАК стартовый адрес программы.

3.8. Наблюдая выполнение программы в режиме ЦИКЛ, найти команду, являющуюся причиной ошибки; исправит её; выполнить п.п. 3.3-3.5.

3.9. Записать в РВВ значение аргумента х<а; выполнить п.п. 3.3-3.5.

4. Для выбранного значения аргумента х, наблюдая выполнение отлаженной программы в режиме ЦИКЛ, записать в таблицу (см. приложение 2) содержимое регистров ЭВМ перед выполнением каждой команды.

Таблица 2.5

Функции и допустимые пределы изменения аргумента

k fk(x) xm1n xmax k fk (x) xm1n xmax
           
           
  -50 -15   -50  
  -20        

Таблица 2.6

Варианты задания

№ варианта i j a № варианта i j a
               
      -20        
               
               
               
               

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

1. Формулировка варианта задания (см. п.1 «Задания», табл. 2.5, 2.6).

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

3. Программа.

4. Размещение данных в ОП, значение базового адреса.

5. Последовательность состояний регистров ЭВМ при выполнении программы в режиме ЦИКЛ (см. приложение 2) для одного значения аргумента.

6. Результаты выполнения программы для пяти значений аргумента, выбранных самостоятельно.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: