スクリプトを単にダダダーッと並べても
動作がよくわからないかもしれないので
下書きをテキスト形式で表現してみます
01:call(s_a)
02:*l_a
03:stop
04:
05:*s_a
06:mes "a"
07:call(s_b)
08:*l_b
09:call(s_c)
10:*l_c
11:back
12:
13:*s_b
14:mes "b"
15:back
16:
17:*s_c
18:mes "c"
19:back
1.
01:call(s_a)
02:*l_a
;*s_aにジャンプし
;*l_aをスタックに積む
;call命令の後ろにラベル
-stackの内容
0
*l_a
prev:-1
現在地 0
2.
05:*s_a
06:mes "a"
07:call(s_b)
08:*l_b
;*s_bにジャンプし
;*l_bをスタックに積む
;call命令の後ろにラベル
-stackの内容
0
*l_a
prev-1
1
*l_b
prev0
現在地 1
3.
13:*s_b
14:mes "b"
15:back
;*l_bをスタックから取り出す
;スタックを上の位置に移動(ここでは0)
;現在地の値をprevの値に書き換える
;取り出した*l_bへジャンプ
-stackの内容
0
*l_a
prev-1
現在地 0
4.
09:call(s_c)
10:*l_c
;*s_cにジャンプし
;*l_cをスタックに積む
;call命令の後ろにラベル
-stackの内容
0
*l_a
prev-1
1
*l_c
prev0
現在地 1
5.
17:*s_c
18:mes "c"
19:back
;*l_cをスタックから取り出す
;スタックを上の位置に移動(ここでは0)
;現在地の値をprevの値に書き換える
;取り出した*l_cへジャンプ
-stackの内容
0
*l_a
prev-1
現在地 0
6.
11:back
;*l_aをスタックから取り出す
;スタックを上の位置に移動(ここでは-1)
;現在地の値をprevの値に書き換える
;取り出した*l_aへジャンプ
-stackの内容
現在地 -1
2008年7月28日月曜日
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿