Opcode
operation code、「オペコード」と読む
実行する操作 の種類を指定する
数式で言えば演算子部分に相当する
1byteのバイトコード
「PUSH」とか「POP」とかは
1byte幅のopcodeに名前をつけたもの
実際の(バイナリ形式の)バイトコードにはニーモニックは直接表示されない
これらの名前が参照するopcodeに置き換えられている
これらはただの数値
たとえばPUSHに相当するのが40、POPに相当するのが23、といった具合
命令はoperandを持つものもあれば持たないものもある
例えば
スタックマシンに値を一つ追加する命令「PUSH」は、PUSH 5のように、「何」をスタックマシンに追加するかを指定するために一つのoperandを取る
一方で「POP」の場合は、スタックマシンの一番上から値を一つ取るという指定なので、スタックマシンが一つしか存在しないと仮定するなら、operandは不要であることがわかる
命令の種類の例
算術命令
データコピー
論理演算
プログラム制御
など
1byte単位
↑ここで定義されている
現在163個まである