JVMバイトコード命令一覧(Wikipedia) 日本語訳

WIP
下書き状態だと永遠に更新しないまま放置するので暫定で公開します。

元記事

ニーモニック(識別名的な)の50音順ソートです

ニーモニック Opcode
(16進数)
OpCode
(2進数)
引数
[数]:[引数名]
スタック
[操作前]→[操作後]
説明
無名 cb ~ fd - - - 現時点では未使用だが将来のために予約
aaload 32 0011 0010 - arrayref, index → value 配列から参照をスタックに積む
aastore 53 0101 0011 - arrayref, index, value → 参照を配列に保存
aconst_null 01 0000 0001 - → null null参照をスタックに積む
aload 19 0001 1001 1: index → objectref #indexのローカル変数からスタックに参照を積む
aload_0 2a 0010 1010 - → objeectref #0のローカル変数からスタックに参照を積む
aload_1 2b 0010 1010 - → objeectref #1のローカル変数からスタックに参照を積む
aload_2 2c 0010 1011 - → objeectref #2のローカル変数からスタックに参照を積む
aload_3 2d 0010 1100 - → objeectref #3のローカル変数からスタックに参照を積む
anewarray bd 1011 1101 2: indexbyte1, indexbyte2 count → arrayref countの長さの配列を作成する。型は、コンスタントプール内でのindex(indexbyte1 << 8 + indexbyte2)のクラス参照によって決められる
areturn b0 1011 0000 - objectref → [empty] メソッドから参照を返す
arraylength be 1011 1110 - arrayref → length 配列の長さを取得する
astore 3a 0011 1010 1:index objectref → #indexのローカル変数に参照を保存する
astore_0 4b 0100 1011 - objectref → #0のローカル変数に参照を保存する
astore_1 4c 0100 1100 - objectref → #1のローカル変数に参照を保存する
astore_2 4d 0100 1101 - objectref → #2のローカル変数に参照を保存する
astore_3 4e 0100 1110 - objectref → #3のローカル変数に参照を保存する
athrow bf 1011 1111 - objectref → [empty], objectref エラーか例外を投げる(注意: 投げる対象への参照以外のStackは全て消去されます)
baload 33 0011 0011 - arrayref, index → value 配列からbyteかBooleanの値をスタックに積む
bastore 54 0101 0100 - arrayref, index, value → byteかBooleanの値を配列に保存
bipush 10 0001 0000 1:byte → value byteの値を整数のvalueとしてスタックに積みます(訳注:openjdk 11においては、255以下の整数をbyte, short, intに代入する時に使用)
breakpoint ca 1100 1010 - - Javaデバッガーのためのブレークポイントとして予約されている。classファイルに存在するべきではない。
caload 34 0011 0100 - arrayref, index → value 配列からcharの値をスタックに積む
castore 55 0101 0101 - arrayref, index, value → charの値を配列に保存
checkcast c0 1100 0000 2: indexbyte1, indexbyte2 objectref → objectref objectrefが確かにその型であるかどうかを確認する。型は、コンスタントプール内でのindex(indexbyte1 << 8 + indexbyte2)のクラス参照によって決められる