Pコードマシン
スタックフレームは以下のようになっている:
プロシージャ呼び出しは次のようになる。まず呼び出しは次の命令で開始される。
ここで、n は入れ子レベルを指定する(Pascalではプロシージャが入れ子になりうることに注意)。この命令はスタックに印をつける。すなわち現在のスタックフレームの上の5要素ぶんを予約し、以前のEP、動的リンク、静的リンクなどを設定する。呼び出し側は必要な引数を計算してプッシュし、次の命令を実行する。
これでユーザープロシージャが呼び出される(n は引数の個数、p はプロシージャのアドレス)。この命令はPCをリターンアドレスとしてスタック上にセーブし、そのプロシージャのアドレスを新たなPCとしてセットする。
ユーザープロシージャは次の2つの命令から開始される。
1番目の命令はSPを MP + i にする。2番目の命令は EP を SP + j にする。