オペコードとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > オペコードの意味・解説 

オペコード

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/02/21 14:05 UTC 版)

オペコード (: opcodeあるいはOpCodeあるいはoperation code) は、操作(operation)に関する命令のコードという意味で、具体的には

  • プロセッサに与える、操作に関する(機械語の)命令の識別番号[1]。操作対象を示すオペランドと対比される。
  • (機械語に限らず)操作に関する命令のコード。やはり操作対象を示すオペランドと対比される。アセンブリ言語や仮想機械などの用語として用いられる。

操作(operation)に関する命令のコード(code) だからオペレーションコード(operation code)と呼ばれ、通常は略してオペコード(opcode, OpCode)と呼ばれている。

機械語のオペコード

機械語関連の用語としては、操作命令の識別番号である。

例えば、Intel 8086の「指定されたレジスタの値を、指定されたメモリ番地に書き込め」という命令に割り当てられたオペコードは二進表記(ビット列)では「10001000」であり、16進表記では「0x88」であり、十進表記では「136」である[1]。8086のオペコードの一覧表はこちら[1]に掲載されている。

CPUごとに、命令セットアーキテクチャ(ISA:Instruction Set Architecture)が定められており、その中でオペレーションコードが定められている[1]

オペコードの多くは、操作対象のデータを示すオペランド(被演算子)と組み合わせて使う。

喩えるなら、オペコードは数式における演算子のようなものであり、一方、オペランドは数のようなものである。演算子は基本的には数と組み合わせて使うように、オペコードは基本的にはオペランドと組み合わせて使う。

ただし、オペコードの中には暗黙的なオペランドを持つものもある。

オペコードが示す操作命令は、主にはレジスタコールスタック、他のメモリなどへデータを書き込む命令である。I/Oポートに関する命令もある。アドレッシングモードを利用して指定されアクセスされる。またCPUIDのような特別な命令や、算術、データコピー、論理演算の命令や、プログラム制御命令(分岐命令など)もある。

命令セットアーキテクチャとの関係

機械語命令の仕様やフォーマットは当該プロセッサCPUGPU) の《命令セットアーキテクチャ》 (instruction set architecture, ISA) 内で定められる。オペコードの多くはオペランド(操作対象のデータ)と組み合わせて使う。

オペコードとオペランドは、もともとはx86のもののように、長さが変化する複雑な構造のものが一般的だったが、その後、ほぼ固定された構造で少数のバリエーションのみを持つもの(いわゆるRISCなど)も登場した。[2]

アセンブリ言語のオペコード

アセンブリ言語はニーモニックで記述されるが、ニーモニックのうち操作に関する命令を示すものはやはりopcode(オペコード)と呼ばれる[3][4][5]。やはりオペランド(操作対象を示すコード)と対比される。

仮想機械におけるオペコード

ソフトウェアで実装されたいわゆる仮想機械抽象機械にもオペコードは存在する。具体的には、いわゆるバイトコードやその他の中間表現の中にある。これらのコードは、しばしば相当するハードウェアより高い水準のデータ型と操作をおこなう命令セットに基づいているが、それでも類似のラインに沿って構築される。たとえばJava仮想マシン (JVM) により解釈されるJavaクラスファイルのバイトコード、EmacsのコンパイルされたEmacs Lispバイトコード、.NET 共通中間言語 (CIL) 、そして多くの他のコードなどがある。[6]

関連項目

脚注




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「オペコード」の関連用語

オペコードのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



オペコードのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのオペコード (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS