オペコード

オペコード(opcode/operation code)とは、プロセッサに出す命令のことで、機械語における操作の種類を指定する部分のことをいう。

オペコードは、与えられた指示でどういった操作をするのかを示す部分である。オペレーションコードともいう。例えば、レジスタへのデータ転送なのか、除算や乗算といった計算を行う命令なのかを示す。また、このオペコードによって、プロセッサが処理しなければならない演算対象の値やレジスタのことをオペランドという。オペランドはオペコードに続く形で指定されており、これらで一個の命令となる。ニーモニックとも。

オペコードのバイト数には、可変長と固定長がある。1バイトで表現できる数字は0~255まで。基本的に機械語の1バイト目がオペコードに割り当てられる。つまり、合計256個の命令を入れることができる。プロセッサによってはこの範囲で収まらず、2バイト以降を後から拡張してオペコードにするこもある。これを可変長という。可変長のマシン語を使っているプロセッサはこのオペコードを確認して、与えられた指示の全体的な長さを確認している。

これに対し、固定長は、必要となる命令数が収まる範囲のバイト数を固定したものである。後から拡張しないタイプである。このようなものにバイトコードと呼ばれているものがある。主に1バイトの固定長である。しかし、Javaで採用された仮想マシンの中間コードのことをバイトコードと呼ぶ風習が強まったため、固定長ではない他の中間コードのこともバイトコードと呼ぶようになった経緯がある。

オペコードの意味を簡潔に説明すると

プロセッサに与える命令の種類を表す部分のこと。