前川/研究のための/Java Processor/Java Byte Code (format edition)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[前川/研究のための/Java Processor]]
**定数にスタックを積む [#h50f7206]
***bipush <n> [#a5972267]
-1byte + 1byte = &color(#ff0000){2byte};
***sipush <n> [#gc79493a]
-1byte + 2byte = &color(#006400){3byte};
***ldc <value> [#ubfa2daf]
-1byte + 1byte = &color(#ff0000){2byte};
***ldc_w [#r1305bed]
-1byte + 2byte = &color(#006400){3byte};
***ldc2_w [#gb6560d5]
-1byte + 2byte = &color(#006400){3byte};
***acount_null [#q0bcde29]
-&color(#0000ff){1byte};
****const_<n> [#oc958c11]
-&color(#0000ff){1byte};
**スタックの編集 [#b5bda381]
***nop [#w66232cf]
-&color(#0000ff){1byte};
***pop [#bedd2586]
-&color(#0000ff){1byte};
***pop2 [#ef78a5be]
-&color(#0000ff){1byte};
***dup [#zf45774c]
-&color(#0000ff){1byte};
***dup2 [#m54ec814]
-&color(#0000ff){1byte};
***dup_x1 [#icf6dcc1]
-&color(#0000ff){1byte};
***dup2_x1 [#d17afe93]
-&color(#0000ff){1byte};
***dup_x2 [#h69c4673]
-&color(#0000ff){1byte};
***dup2_x2 [#l4a92952]
-&color(#0000ff){1byte};
***swap [#c052cc51]
-&color(#0000ff){1byte};
**ローカル変数から取り出した値をスタックに積む [#r436cced]
****load <varnum> [#td96ed81]
-1byte + 1byte = &color(#ff0000){2byte};
****load_<n> [#a8ab180a]
-&color(#0000ff){1byte};
**スタックからpopした値をローカル変数に格納する [#ie86fb8f]
****store <varnum> [#x5fb71b8]
-1byte + 1byte = &color(#ff0000){2byte};
****store_<n> [#i1c559e0]
-&color(#0000ff){1byte};
**その他のローカル変数関連インストラクション [#s9a7ea2e]
***iinc <varnum> <n> [#if82797f]
-1byte + 1byte + 1byte = &color(#006400){3byte};
***wide <instruction> <parameter> [#adb94399]
-1byte + 1byte + 2byte = &color(#FFA500){4byte};
**配列の生成 [#udb1f211]
***newarray <type> [#v91408f5]
-1byte + 1byte = &color(#ff0000){2byte};
***anewarray <type> [#lf229918]
-1byte + 2byte = &color(#006400){3byte};
***multianewarray <type> <n> [#d004b1cc]
-1byte + 2byte + 1byte = &color(#FFA500){4byte};
**配列から値を取り出す [#d1dc7c35]
****aload [#mcf06ee3]
-&color(#0000ff){1byte};
****iastore [#c60bf505]
-&color(#0000ff){1byte};
**その他の配列関連インストラクション [#j45baa07]
***arraylength [#y8e450df]
-&color(#0000ff){1byte};
**オブジェクトの新規生成 [#jee67931]
***new <class> [#ub853415]
-1byte + 2byte = &color(#006400){3byte};
**フィールドへのアクセス [#ufbbfeb3]
***putfield <field-spec> or <descriptor> [#n3ca3aa5]
-1byte + 2byte = &color(#006400){3byte};
***getfield <field-spec> or <descriptor> [#c913892e]
-1byte + 2byte = &color(#006400){3byte};
***putstatic <field-spec> or <descriptor> [#l8c18bb5]
-1byte + 2byte = &color(#006400){3byte};
***getstatic <field-spec> or <descriptor> [#d65c0867]
-1byte + 2byte = &color(#006400){3byte};
**その他のオブジェクト関連インストラクション [#l4579464]
***checkcast <type> [#o3c9d29b]
-1byte + 2byte = &color(#006400){3byte};
***instanceof <type> [#l3d3b5e7]
-1byte + 2byte = &color(#006400){3byte};
**算術演算 [#zb5e74d4]
****add [#icddbab5]
-&color(#0000ff){1byte};
****sub [#re8f55f5]
-&color(#0000ff){1byte};
****mul [#da5c496a]
-&color(#0000ff){1byte};
****div [#q99c4886]
-&color(#0000ff){1byte};
****rem [#c11b8bed]
-&color(#0000ff){1byte};
****neg [#n20ddece]
-&color(#0000ff){1byte};
**論理演算 [#b4abeb8f]
****shl [#k3303187]
-&color(#0000ff){1byte};
****shr [#hd226f27]
-&color(#0000ff){1byte};
****ushr [#ub4e0693]
-&color(#0000ff){1byte};
*****and [#f7223ebb]
-&color(#0000ff){1byte};
****or [#y689938e]
-&color(#0000ff){1byte};
****xor [#tb15a023]
-&color(#0000ff){1byte};
**型変換 [#a8f0f0de]
****2* [#d52d393e]
-&color(#0000ff){1byte};
**条件分岐 [#t068e334]
***ifeq <label> [#pb22c69b]
-1byte + 2byte = &color(#006400){3byte};
***ifnull <label> [#a36bab2e]
-1byte + 2byte = &color(#006400){3byte};
***iflt <label> [#t65aa4ea]
-1byte + 2byte = &color(#006400){3byte};
***ifne <label> [#ad6ff900]
-1byte + 2byte = &color(#006400){3byte};
***ifnonull <label> [#ka9865b0]
-1byte + 2byte = &color(#006400){3byte};
***ifge <label> [#w9317632]
-1byte + 2byte = &color(#006400){3byte};
***ifgt <label> [#d6cf863a]
-1byte + 2byte = &color(#006400){3byte};
***if_icmpeq <label> [#i89ee167]
-1byte + 2byte = &color(#006400){3byte};
-スタック上に積まれた2つのデータが等しかった時、PC+labelへ移動。
***if_icmpne <label> [#s4029e5d]
-1byte + 2byte = &color(#006400){3byte};
***if_icmplt <label> [#hc1e9a9f]
-1byte + 2byte = &color(#006400){3byte};
***if_icmpgt <label> [#cadb8688]
-1byte + 2byte = &color(#006400){3byte};
***if_icmple <label> [#n6e275a9]
-1byte + 2byte = &color(#006400){3byte};
***if_icmpge [#y0ccbd01]
-1byte + 2byte = &color(#006400){3byte};
**比較 [#r7264b60]
****lcmp* [#r2463605]
-&color(#0000ff){1byte};
**無条件分岐とサブルーチン [#fc904351]
***goto <label> [#e21c7ac8]
-1byte + 2byte = &color(#006400){3byte};
***goto_w <label> [#ha9223b2]
-1byte + 4byte = &color(#708090){5byte};
***jsr <lable> [#c1aad61b]
-1byte + 2byte = &color(#006400){3byte};
***jsr_w <label> [#r8692fa5]
-1byte + 4byte = &color(#708090){5byte};
***ret <varnum> [#hde67b40]
-1byte + 1byte = &color(#ff0000){2byte};
**テーブルジャンプ [#j6726c16]
***lookupswitch [#e7a393f7]
-&color(#0033ff){?????};
***tableswitch [#mdf86969]
-&color(#0033ff){?????};
**メソッド呼び出し [#he816ebd]
***invokevirtual <metod-spec> [#j9e7f124]
-1byte + 2byte = &color(#006400){3byte};
***invokespecial <method-spec> [#dd49d745]
-1byte + 2byte = &color(#006400){3byte};
***invokestatic <method-spec> [#z6083bde]
-1byte + 2byte = &color(#006400){3byte};
***invokeinterface <method-spec> <n> 0 [#wb011f2e]
-1byte + 2byte + 1byte + 1byte = &color(#708090){5byte};
**メソッドの終了と呼び出し元への復帰 [#u41cd792]
****return [#gd848087]
-&color(#0000ff){1byte};
**例外 [#g150ee32]
***athrow [#ne79ea40]
-&color(#0000ff){1byte};
**デバック [#h065e80e]
***breakpoint [#c57d1ae4]
-&color(#0000ff){1byte};
**モニタ [#m5bb0ffe]
***monitorenter [#o0d1a8ac]
-&color(#0000ff){1byte};
***moniterexit [#kf58a0d4]
-&color(#0000ff){1byte};
終了行:
[[前川/研究のための/Java Processor]]
**定数にスタックを積む [#h50f7206]
***bipush <n> [#a5972267]
-1byte + 1byte = &color(#ff0000){2byte};
***sipush <n> [#gc79493a]
-1byte + 2byte = &color(#006400){3byte};
***ldc <value> [#ubfa2daf]
-1byte + 1byte = &color(#ff0000){2byte};
***ldc_w [#r1305bed]
-1byte + 2byte = &color(#006400){3byte};
***ldc2_w [#gb6560d5]
-1byte + 2byte = &color(#006400){3byte};
***acount_null [#q0bcde29]
-&color(#0000ff){1byte};
****const_<n> [#oc958c11]
-&color(#0000ff){1byte};
**スタックの編集 [#b5bda381]
***nop [#w66232cf]
-&color(#0000ff){1byte};
***pop [#bedd2586]
-&color(#0000ff){1byte};
***pop2 [#ef78a5be]
-&color(#0000ff){1byte};
***dup [#zf45774c]
-&color(#0000ff){1byte};
***dup2 [#m54ec814]
-&color(#0000ff){1byte};
***dup_x1 [#icf6dcc1]
-&color(#0000ff){1byte};
***dup2_x1 [#d17afe93]
-&color(#0000ff){1byte};
***dup_x2 [#h69c4673]
-&color(#0000ff){1byte};
***dup2_x2 [#l4a92952]
-&color(#0000ff){1byte};
***swap [#c052cc51]
-&color(#0000ff){1byte};
**ローカル変数から取り出した値をスタックに積む [#r436cced]
****load <varnum> [#td96ed81]
-1byte + 1byte = &color(#ff0000){2byte};
****load_<n> [#a8ab180a]
-&color(#0000ff){1byte};
**スタックからpopした値をローカル変数に格納する [#ie86fb8f]
****store <varnum> [#x5fb71b8]
-1byte + 1byte = &color(#ff0000){2byte};
****store_<n> [#i1c559e0]
-&color(#0000ff){1byte};
**その他のローカル変数関連インストラクション [#s9a7ea2e]
***iinc <varnum> <n> [#if82797f]
-1byte + 1byte + 1byte = &color(#006400){3byte};
***wide <instruction> <parameter> [#adb94399]
-1byte + 1byte + 2byte = &color(#FFA500){4byte};
**配列の生成 [#udb1f211]
***newarray <type> [#v91408f5]
-1byte + 1byte = &color(#ff0000){2byte};
***anewarray <type> [#lf229918]
-1byte + 2byte = &color(#006400){3byte};
***multianewarray <type> <n> [#d004b1cc]
-1byte + 2byte + 1byte = &color(#FFA500){4byte};
**配列から値を取り出す [#d1dc7c35]
****aload [#mcf06ee3]
-&color(#0000ff){1byte};
****iastore [#c60bf505]
-&color(#0000ff){1byte};
**その他の配列関連インストラクション [#j45baa07]
***arraylength [#y8e450df]
-&color(#0000ff){1byte};
**オブジェクトの新規生成 [#jee67931]
***new <class> [#ub853415]
-1byte + 2byte = &color(#006400){3byte};
**フィールドへのアクセス [#ufbbfeb3]
***putfield <field-spec> or <descriptor> [#n3ca3aa5]
-1byte + 2byte = &color(#006400){3byte};
***getfield <field-spec> or <descriptor> [#c913892e]
-1byte + 2byte = &color(#006400){3byte};
***putstatic <field-spec> or <descriptor> [#l8c18bb5]
-1byte + 2byte = &color(#006400){3byte};
***getstatic <field-spec> or <descriptor> [#d65c0867]
-1byte + 2byte = &color(#006400){3byte};
**その他のオブジェクト関連インストラクション [#l4579464]
***checkcast <type> [#o3c9d29b]
-1byte + 2byte = &color(#006400){3byte};
***instanceof <type> [#l3d3b5e7]
-1byte + 2byte = &color(#006400){3byte};
**算術演算 [#zb5e74d4]
****add [#icddbab5]
-&color(#0000ff){1byte};
****sub [#re8f55f5]
-&color(#0000ff){1byte};
****mul [#da5c496a]
-&color(#0000ff){1byte};
****div [#q99c4886]
-&color(#0000ff){1byte};
****rem [#c11b8bed]
-&color(#0000ff){1byte};
****neg [#n20ddece]
-&color(#0000ff){1byte};
**論理演算 [#b4abeb8f]
****shl [#k3303187]
-&color(#0000ff){1byte};
****shr [#hd226f27]
-&color(#0000ff){1byte};
****ushr [#ub4e0693]
-&color(#0000ff){1byte};
*****and [#f7223ebb]
-&color(#0000ff){1byte};
****or [#y689938e]
-&color(#0000ff){1byte};
****xor [#tb15a023]
-&color(#0000ff){1byte};
**型変換 [#a8f0f0de]
****2* [#d52d393e]
-&color(#0000ff){1byte};
**条件分岐 [#t068e334]
***ifeq <label> [#pb22c69b]
-1byte + 2byte = &color(#006400){3byte};
***ifnull <label> [#a36bab2e]
-1byte + 2byte = &color(#006400){3byte};
***iflt <label> [#t65aa4ea]
-1byte + 2byte = &color(#006400){3byte};
***ifne <label> [#ad6ff900]
-1byte + 2byte = &color(#006400){3byte};
***ifnonull <label> [#ka9865b0]
-1byte + 2byte = &color(#006400){3byte};
***ifge <label> [#w9317632]
-1byte + 2byte = &color(#006400){3byte};
***ifgt <label> [#d6cf863a]
-1byte + 2byte = &color(#006400){3byte};
***if_icmpeq <label> [#i89ee167]
-1byte + 2byte = &color(#006400){3byte};
-スタック上に積まれた2つのデータが等しかった時、PC+labelへ移動。
***if_icmpne <label> [#s4029e5d]
-1byte + 2byte = &color(#006400){3byte};
***if_icmplt <label> [#hc1e9a9f]
-1byte + 2byte = &color(#006400){3byte};
***if_icmpgt <label> [#cadb8688]
-1byte + 2byte = &color(#006400){3byte};
***if_icmple <label> [#n6e275a9]
-1byte + 2byte = &color(#006400){3byte};
***if_icmpge [#y0ccbd01]
-1byte + 2byte = &color(#006400){3byte};
**比較 [#r7264b60]
****lcmp* [#r2463605]
-&color(#0000ff){1byte};
**無条件分岐とサブルーチン [#fc904351]
***goto <label> [#e21c7ac8]
-1byte + 2byte = &color(#006400){3byte};
***goto_w <label> [#ha9223b2]
-1byte + 4byte = &color(#708090){5byte};
***jsr <lable> [#c1aad61b]
-1byte + 2byte = &color(#006400){3byte};
***jsr_w <label> [#r8692fa5]
-1byte + 4byte = &color(#708090){5byte};
***ret <varnum> [#hde67b40]
-1byte + 1byte = &color(#ff0000){2byte};
**テーブルジャンプ [#j6726c16]
***lookupswitch [#e7a393f7]
-&color(#0033ff){?????};
***tableswitch [#mdf86969]
-&color(#0033ff){?????};
**メソッド呼び出し [#he816ebd]
***invokevirtual <metod-spec> [#j9e7f124]
-1byte + 2byte = &color(#006400){3byte};
***invokespecial <method-spec> [#dd49d745]
-1byte + 2byte = &color(#006400){3byte};
***invokestatic <method-spec> [#z6083bde]
-1byte + 2byte = &color(#006400){3byte};
***invokeinterface <method-spec> <n> 0 [#wb011f2e]
-1byte + 2byte + 1byte + 1byte = &color(#708090){5byte};
**メソッドの終了と呼び出し元への復帰 [#u41cd792]
****return [#gd848087]
-&color(#0000ff){1byte};
**例外 [#g150ee32]
***athrow [#ne79ea40]
-&color(#0000ff){1byte};
**デバック [#h065e80e]
***breakpoint [#c57d1ae4]
-&color(#0000ff){1byte};
**モニタ [#m5bb0ffe]
***monitorenter [#o0d1a8ac]
-&color(#0000ff){1byte};
***moniterexit [#kf58a0d4]
-&color(#0000ff){1byte};
ページ名: