next up previous
Nächste Seite: Adressierung der Parameter Aufwärts: Laufzeitumgebung Vorherige Seite: Modul-Initialisierung

Stack-Aufbau

Das Register A5 zeigt auf den Prozedurdeskriptor (mark pointer). Der Prozedurdeskriptor umfasst bei globalen Prozeduren 8 Byte, bestehend aus der Rücksprungadresse und einem Zeiger auf den Prozedurdeskriptor der aufrufenden Prozedur (dynamic link). Bei lokalen Prozeduren sind es 12 Byte; hier wird zusätzlich der aktuelle Prozedurdeskriptor der umschliessenden Prozedur auf dem Stack abgelegt (static link). Die beiden Arten der Prozedurdeskriptoren sind in Abbildung 5.1 dargestellt.

Abbildung 5.1: Stackaufbau von Prozeduren.
\begin{figure}\begin{center}\begin{tabular}{l\vert c\vert cl\vert c\vert}
\ & ...
...l &\multicolumn{2}{c}{globale Prozedur}\\
\end{tabular}\end{center}\end{figure}

Vom Prozedurdeskriptor aus in negativer Richtung werden die lokalen Variablen angelegt. Mit positivem Offset zum A5-Register erreicht man die Parameter der Prozedur. Die Anordnung von Variablen und Parametern ist in Abschnitt 5.5.7 genau beschrieben.



Claudio Nieder 2000-11-12