K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
> 配列の組み込みにより、バイトコードもまた変わりました、下記に。 > >S_OpcodeInfo D_opcode_info[] = { > {"dummy", "", 0}, > {"push_int_1byte", "b",16}, > {"push_int_2byte", "s",16}, > {"push_int_4byte", "i",16}, // 実際の値を持つ > {"push_double_0", "", 16}, > {"push_double_1", "", 16}, > {"push_double_8byte", "d",16}, // 実際の値を持つ > {"push_string_const", "s",40}, // 文字列の位置NOを持つ0~ > {"push_null", "", 16}, > /**********/ > {"push_stack_array", "s", 16}, // 配列情報をスタックに > {"push_stack_int", "s", 16}, // intローカル変数をi > {"push_stack_double", "s", 16}, // > {"push_stack_string", "s", 40}, // > {"pop_stack_int", "s", -16}, // スタックのintをローカル変数に > {"pop_stack_double", "s", -16}, // > {"pop_stack_string", "s", -40}, // > /**********/ > {"push_static_array", "s", 16}, // 配列情報をスタックに 予約 > {"push_static_int", "s", 16}, // int静的変数をスタックに 予約 > {"push_static_double","s", 16}, // > {"push_static_string","s", 40}, // > {"pop_static_int", "s", -16}, // スタックのintを静的変数に 予約 > {"pop_static_double", "s", -16}, // > {"pop_static_string", "s", -40}, // > /**********/ > {"push_sysval_array", "i", 16}, // 配列情報をスタックに > {"push_sysval_int", "i", 16}, // システムグローバル変数をスタックに > {"push_sysval_double","i", 16}, // > {"push_sysval_str", "i", 40}, // > {"pop_sysval_int", "i", -16}, // スタックからシステムグローバル変数に > {"pop_sysval_double", "i", -16}, // > {"pop_sysval_str", "i", -40}, // > /**********/ > {"push_array_int", "", -1}, // int配列処理 > {"push_array_double", "", -1}, // > {"push_array_string", "", -1}, // > {"pop_array_int", "", -1}, // スタックからint配列に > {"pop_array_double", "", -1}, // > {"pop_array_string", "", -1}, // > /**********/ > {"add_int", "", -16}, // 以下は総て算術演算子 > {"add_double", "", -16}, > {"add_string", "", -40}, > {"sub_int", "", -16}, > {"sub_double", "", -16}, > {"mul_int", "", -16}, > {"mul_double", "", -16}, > {"div_int", "", -16}, > {"div_double", "", -16}, > {"mod_int", "", -16}, > {"mod_double", "", -16}, > {"minus_int", "", 0}, > {"minus_double", "", 0}, > {"increment", "", 0}, > {"decrement", "", 0}, // ここまで算術演算子 > {"cast_int_to_double", "", 0}, // 以下はキャスト処理 > {"cast_double_to_int", "", -0}, > {"cast_boolean_to_string", "", 24}, > {"cast_int_to_string", "", 24}, > {"cast_double_to_string", "", 24}, // ここまでキャスト処理 > {"eq_int", "", -16}, // 以下は総て論理演算子 > {"eq_double", "", -16}, > {"eq_string", "", -40}, > {"gt_int", "", -16}, > {"gt_double", "", -16}, > {"gt_string", "", -40}, > {"ge_int", "", -16}, > {"ge_double", "", -16}, > {"ge_string", "", -40}, > {"lt_int", "", -16}, > {"lt_double", "", -16}, > {"lt_string", "", -40}, > {"le_int", "", -16}, > {"le_double", "", -16}, > {"le_string", "", -40}, > {"ne_int", "", -16}, > {"ne_double", "", -16}, > {"ne_string", "", -40}, // ここまで論理演算子 > {"logical_and", "", -16}, // > {"logical_or", "", -16}, // > {"logical_not", "", 0}, // > {"pop", "", -1}, // スタックを1つ減らす > {"duplicate", "", 16}, // スタック内容をコピーしてスタックに > {"jump", "s", 0}, // 指定ポインターにjump > {"jump_if_true", "s", -16}, // スタックがtrueならjump > {"jump_if_false","s", -16}, // スタックがfalseならjump > /**********/ > {"push_function", "", 0}, // 関数情報をスタック、未使用 > {"call_function","ssss", 1}, // 関数コール > {"return", "", -1}, // 関数戻り > /**********/ > {"set_array_literal_int", "ss", 0}, // int定数配列を変数にコピー > {"set_array_literal_double","ss", 0}, // double定数配列を変数にコピー > {"set_array_literal_string","ss", 0}, // string定数配列を変数にコピー >}; >
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!