19/05/14 14:04:22.71 2vGaUUWM.net
1+k[1]
? コンパイルする
は以下の通りにコンパイルされる
t1; t2; _k t1; dec t1; t1 t2
t3; t4; ?+11; t2 Z; Z ?+4; Z; 0 t3; t3 t4;
t5; t6; dec t5; t4 t5; t5 t6
# result in t6 ? #t6の結果 # 結果は t6 の中
? ry 時間軸のプール ry 、時間軸の数 ry 半分になります。
テンポラリのプールが導入されると、テンポラリの数は半分になり :
t1; t2; _k t1; dec t1; t1 t2
t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
t1; t2; dec t1; t3 t1; t1 t2
# result in t2 ? #結果はt2になります #結果は t2 の中
? ry 削除するコードが ry 。
対応するプッシュおよびポップ操作を削除しコードが大幅に削減
4.4スタック変数
bpがスタックに置かれ、spがデクリメントされてメモリが割り当てられると、すべてのローカル変数が使用可能になります。
コンパイラはアドレスを知らないため間接的にしかアクセスできませ
? 例えば、関数f in
例えば、以下の関数 f