学び直し41日目:8章 バーチャルマシン#2:VM仕様
記録
書いてある通り、としか言いようがない。中でも、関数呼び出しについてだけ記載しておく。
関数呼び出しプロトコル
- if 文は、if-goto が呼ばれたときにスタックの最上位をポップして 0 かどうかで判定している。
- 関数を呼び出す側の挙動としては、「引数をスタックにプッシュする」→「関数を呼び出す(call)」→「スタック最上位に格納されている返り値を受け取る」→「呼び出し側のメモリセグメントが関数を呼ぶ前の状態に戻る」といった感じ。
- 呼び出される関数側の挙動としては、「呼び出し側から渡された引数で argument セグメントを初期化する」→「その他セグメントもそれぞれ適切に初期化する(詳細省略)」→「演算実行する」→「リターンされる前に、返り値をスタックにプッシュする。」といった感じ。
今日の筋トレ
最近モチベが…