Среды ссылок периода исполнения
Варианты организации памяти исполняемой программы:
а) |
б) |
в) |
Активация процедуры
1. Формирование адреса точки входа в вызываемую процедуру (возможно – в результате подгрузки dll).
2. Формирование и сохранение значений аргументов, которые должна обработать вызываемая процедура (фактических параметров).
3. Обеспечение возможности доступа по именам к значениям локальных объектов текущей активации вызывающей процедуры (и, возможно, процедур, находящихся еще раньше в цепочке вызовов) из вызываемой процедуры, если такая возможность предусмотрена языком программирования.
4. Сохранение содержимого регистров процессора.
5. Формирование и сохранение адреса возврата.
6. Собственно вызов процедуры, т.е. передача управления в ее точку входа.
7. Создание локальных объектов (выделение памяти для их размещения).
8. Выполнение процедуры, т.е. обработка значений фактических параметров, протекающая путем
· формирования и использования значений локальных объектов;
· формирования и последующего использования результатов промежуточных вычислений;
· использования, и, возможно, модификации локальных объектов других существующих активаций этой же или других процедур (если это предусмотрено языком);
· использования, и, возможно, модификации значений статических данных программы.
9. Формирование и сохранение значения возвращаемого результата.
10. Уничтожение объектов, созданных исключительно для выполнения данной активации процедуры.
11. Восстановление содержимого сохраненных регистров процессора.
12. Возврат из процедуры – передача управления в ту точку вызывающей процедуры, адрес которой сформирован на шаге 3.
Результаты промежуточных вычислений |
Локальные данные |
Регистры процессора |
Связь по доступу (необязательная) |
Связь по управлению (необязательная) |
Фактические параметры |
Возвращаемое значение |
t0 |
t1 |
t2 |
t3 |
t4 |
t5 |
t6 |
t7 |
Вызывающие последовательности
|
|||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.