Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИИ ПО ОСО.doc
Скачиваний:
49
Добавлен:
02.04.2015
Размер:
480.77 Кб
Скачать

Лекция №3 программирование вОдноадресноЙкоманде

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

КОП

Адрес

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

01

110

Команда предписывает сложение операнда из ячейки с адресом 110, с содержимым хранящимся в регистре сумматора, т.е. определяет:

  • перенос содержимого 110 ячейки ОЗУ в первый регистр сумматора;

  • сложить содержимое, формированное в первом регистре с уже имеющимся содержимым второго регистра;

  • результат оставить в сумматоре.

Исходя из изложенного, выполним программирование рассматриваемого примера:

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

Выполним алгоритм решения в графическом изображении:

- [вычисление знаменателя (смотри предыдущий пример)

- [вычисление числителя (смотри предыдущий пример)

- [вычисление y(смотри предыдущий пример)

Выполняя требование блока 2, распределим исходные данные по ячейкам памяти ЭВМ:

<a> - 1008

<b> - 1048

<1200> - 1108

<2> - 1148

<0,8> - 1208

<c> - 1248

<d> - 1308

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

КОП

Адрес

Пояснение

05

03

01

06

05

03

03

03

03

02

04

120

124

130

134

100

100

100

104

114

110

134

регистр 0,8

0,8с

0,8c+d=y1

y1 134

регистр a

a2

a3

a3b

2a3b

y2

y

Анализ составленной программы позволяет сделать вывод:

  1. количество команд по сравнению с трехадресным вариантом увеличилось.

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

  3. сама команда построчно (покомандно) стала намного проще.

Остается завершить программирование, распределив составленную программу по ячейкам памяти, с последовательно увеличивающимися адресами.

<05120> - 5008

<03124> - 5048

<01130> - 5108

<06134> - 5148

<05100> - 5208

<03100> - 5248

<03100> - 5308

<03104> - 5348

<03114> - 5408

<02110> - 5448

<04134> - 5508