Обращение к подпрограммам

15-08-2013, 17:37
Просмотров: 1641

Адрес следующей команды, на который должна осуществиться передача управления с подпрограммы, записывается в имеющийся в машине регистр (распределитель), а затем, после перехода на подпрограмму, этот адрес посылается в команду выхода из подпрограммы. Для машин, имеющих запоминающее устройство электростатического типа, где имеет значение время между регенерациями, этот прием решительно не рекомендуется.
Обратите внимание на то, что в команде «выход» первоначально записан код операции HLT — останов. Это сделано для того, чтобы машина остановилась в случае ошибочной передачи управления на подпрограмму. Такая мера предосторожности иногда очень полезна при отладке программы. Если данный экземпляр машины ИБМ-650 не имеет в структуре команды адреса следующей команды и не имеется специальной операции для обращения к подпрограмме, можно воспользоваться следующим приемом, который называется «входом Уилера».

Обращение к подпрограммам

На машине ИБМ-650 с индексным регистром обращение к подпрограмме может быть осуществлено следующим приемом. В данном случае последовательность иксов показывает на то, что и код операции и адрес числа могут быть любыми. В системе команд машины МИДАК одна команда с кодом операции «запись» выполняет то же самое, что и команда, которую для модернизированной машины ИБМ-650 мы называли командой «переход». Если параметры программы (переменные, необходимые для подпрограммы) требуются заранее, они обычно записываются:
1. в сумматоре или в других регистрах (за исключением применения «выхода Уилера»).
2. в ячейки вслед за командой передачи управления в основной программе.
В последнем случае обращения к подпрограммам и сами подпрограммы должны быть соответствующим образом изменены. Во многих случаях требуется найти значение функции, представленной в форме таблицы.

Источник: delete-it

Комментарии:
    » Обращение к подпрограммам