Программирование на JAVA

Такой регистр называется регистром связи. Когда работа подпрограммы заверша­ется, команда Return возвращает управление вызывающей программе, выполняя неявный переход через регистр связи.

Особой разновидностью команды перехода является команда Call, выполняю­щая такие операции, как сохранение содержимого регистра PC в регистре связи и переход по указанному в команде целевому адресу. Команда Return также явля­ется разновидностью команды перехода, но она выполняет переход по адресу, за­данному в регистре связи. Этот процесс проиллюстрирован на рис. 6.5.


Рис. 6.5. Связывание подпрограммы через регистр связи

Вложенность подпрограмм и стек процессора

В программировании очень распространена практика вызова одних подпрограмм из других. Такие подпрограммы, вызываемые друг из друга, называются вложен­ными. Если вложенные вызовы будут реализованы по описанной выше техноло­гии, вторая команда Call сохранит адрес возврата в регистре связи, уничтожив его текущее содержимое, после чего возврат в исходную программу станет не воз­можным. Поэтому перед вызовом очередной подпрограммы нужно где-то сохра­нять содержимое регистра связи.


<< назад вперед >>