Схема взаимодействия ПП с главной
Подпрограммы и ввод/вывод
Подпрограммы составляются как универсальные программы, взаимодействующие с любыми главными. Составление ПП обычно предшествует составлению главной. Имеются библиотеки стандартных подпрограмм. Они хранятся во внешней памяти, организуются с помощью каталога. Запись в каталоге содержит адрес, длину, имя и другую информацию.
Можно составить две программы ПП, вычисляющую значение Х, и главную, вычисляющую значение Z, и использующую ПП. В главной должна стоять команда безусловного перехода к ПП, а в конце ПП – команда безусловного перехода к главной.
Схема:
| Формат главной | |
| А | Переход к ПП |
| А+1 | |
| ПП –мма | |
| D | |
| ∑ | |
| Возврат const | |
D – точка входа (первая строка ПП)
Часто одну ПП надо использовать для вычисления значения f(x) от разных аргументов. Тогда надо обращаться к ПП два раза из разных мест. Перед каждым обращением нужно правильно задать аргумент.
Схема обращения к ПП из двух мест:
| Формат главной | |
| А | Переход к ПП |
| А+1 | |
| В | Переход к ПП |
| ПП -мма | |
| D | |
| ∑ | Возврат const |
Более сложный вариант: приближенное вычисление определенного интеграла, имеет место взаимодействия вложенных ПП.
| ПП | |
| D | |
| А1 | |
| А1+1 | |
| В1 | Переход к ПП |
| С1 | |
| ∑ | |
| Возврат | |
| Формат главной | |
| А | Переход к ПП |
| А+1 | |
| В | Переход к ПП |
| В+1 | |
| ПП | |
| D1 | |
| ∑ | |
| Возврат | |
В связи с использованием ПП возникают проблемы:
- Вызов ПП и возврат(1)
- Передача параметров (2)
- Сохранение регистров (3)
- Настройка по параметрам (4)
- Настройка по мету (5)
1. Вызов ПП и возврат. В ячейках А и В находятся команда перехода по адресу D, а команда возврата в ячейке Е - переменная. После вызова из ячейки А в Е должна стоять команда в А+1, после вызова из В – по адресу В+1, т.е в ячейке Е постоянно меняется адрес возврата. Очевидно, информация об адресе возврата должна быть передана из главной перед вызовом ПП.
Приемы организации возврата:
- Засылка в ПП команды возврата: используется двухадресная команда безусловного перехода по адресу D.
| БП | ~ | D |
Формат:
Команды:
| Команды пересылки |
(j+1) → E
А содержимое ячеек j и j+1 являются заготовленными константами в виде команд безусловного перехода.
(j) - БП~А+1
(j+1) - БП~В+1
Схема засылки возврата
| Формат главной | |
| А-1 | (j)→Е |
| А | БП~D |
| А+1 | |
| … | |
| В-1 | (j-1) |
| В | БП~D |
| В+1 | |
| ПП | |
| D | |
| ∑ | |
Такой способ организации связи требует на каждое обращение три ячейки: для двух команд четырех обращений к памяти. Решение проблемы – организация возврата путем объединения команд ячеек А-1 и А в одну. В систему команд вводится команда перехода:
| ПП | Е | D |
Зная адрес точки входа ПП, можно используя команду в
| ПП | D-1 | D |
формате модернизировать:
Схема возврата:
| Формат главной | |
| A | Переход к ПП |
| A+1 | |
| ПП | |
| D-1 | |
| D | |
| … | |
| … | |
| E | |
Точка выхода ячека D-1, точка Е не нужна!
В системе команд(СК) вводится две команды:
- Команда вызова ПП имеет вид:
| ПП | R1 | D |
Схема исполнения:
1. ((УК))→РК
2. (УК)≠1→УК
3. Дешифровка коп
4. (УК) →R1
5. D→УК
6. Переход к пункту 1
- Команда возврата имеет вид:
| 5П | О | R1 |
Схема исполнения:
1. ((УК))→РК
2. (УК)+1→УК
3. Дешифровка коп
4. (R1) → УК
5. Переход к пункту 1
Схема:
| Формат главной | |
| А | P1 R1 D |
| А+1 | |
| … | |
| В | P1 R1 D |
| В+1 | |
| ПП | |
| D | |
| Е | БП ОR1 |
В качестве регистра R1 может быть использован любой из РОН, но в командах обращения и команде возврата должен исполнятся один и тот же регистр.






