14. サブルーチン呼び出しとスタックの状態
start a
start b
start c
start d
end d
end c
start d
end d
end b
start c
start d
end d
end c
end a
subroutine a:
call b
call c
...
subroutine b:
call c
call d
...
subroutine c:
call d
...
subroutine d:
...
スタックの状態
bフレーム
cフレーム
dフレーム
aフレーム
dフレーム
cフレーム
dフレーム
コード フロー
22. 関数呼び出しコマンド
• 関数呼び出しコマンドは以下の3種
– function f n
• n個のローカル変数を持つ f という名前の関数を定義する
– call f m
• f という関数を呼ぶ。ここで、m個の引数は、呼び出し側によってスタックに
プッシュ済みであるとする
– return
• 呼び出し元へリターンする