[1352] Re:その後のVM
投稿者:山
2009/06/11 22:46:28
追記で、バイトコードも結構変わっています。下記に。
>----------------------------------
>int printf(string str);
>string sprintf(string str);
>int print(string str);
>
>int main()
>{
> string str;
> printf("printf P1 = %d P2 = %d P3 = %d\n",12,20,30);
> str = sprintf("sprintf P1 = %d\n",13);
> print(str);
> print("---------- test ---------\n");
>}
>----------------------------------
↓
バイトコード
↓
1:*** 一般関数情報ダンプ ******************
1:--- int main()
1:*** ローカル変数の表示 no = 1 ***
1: 0:string str
1:*** 文字列 数 = 9 ***
1: 0: "main"
1: 1: "str"
1: 2: "printf P1 = %d P2 = %d P3 = %d
"
1: 3: "printf"
1: 4: "sprintf P1 = %d
"
1: 5: "sprintf"
1: 6: "print"
1: 7: "---------- test ---------
"
1: 8: "print"
1:*** 使用予定のスタックサイズ = 240
1:*** 関数コードのディスアセンブラ size = 65
1: 0 push_string_const 2
1: 3 push_int_1byte 12
1: 5 push_int_1byte 20
1: 7 push_int_1byte 30
1: 9 call_function 3 0 0 4
1: 18 pop
1: 19 push_string_const 4
1: 22 push_int_1byte 13
1: 24 call_function 5 0 0 2
1: 33 pop_stack_string 0
1: 36 push_stack_string 0
1: 39 call_function 6 0 0 1
1: 48 pop
1: 49 push_string_const 7
1: 52 call_function 8 0 0 1
1: 61 pop
1: 62 push_int_1byte 0
1: 64 return
1:*** 行情報 数 = 6 ***
1: 8: from 0 size 19
1: 9: from 19 size 17
1: 10: from 36 size 13
1: 11: from 49 size 13
1: 13: from 62 size 2
1: 12: from 64 size 1
1:*** end of main() --------------