命令 (コンピュータ)
コンピュータサイエンスでは、命令とは、プロセッサ命令セットによって定義されたプロセッサの単一の操作のことである。
命令のサイズや長さは大きく異なり、マイクロコントローラの中には4ビットのものもあれば、非常に長い命令語(VLIW)システムの中には1バイトの数倍にもなるものもあります。パーソナルコンピュータ、メインフレーム、およびスーパーコンピュータで使用されている最新のプロセッサのほとんどは、16ビットから64ビットの命令サイズを持っています。いくつかのアーキテクチャ、特に縮小命令セットコンピュータでは、命令の長さが固定されており、通常はそのアーキテクチャのワードサイズに対応しています。
従来のアーキテクチャでは、命令は、「メモリの内容をレジスタに追加する」などの実行される操作を指定するオペコードと、レジスタ、メモリの位置、またはリテラル・データを指定するゼロまたはそれ以上のオペランド指定子を含みます。オペランド指定子は、その意味を決定するアドレッシング・モードを持っていてもよいし、固定フィールドであってもよい。
多くのマイクロコードアーキテクチャを含むVLIWアーキテクチャでは、複数の同時演算とオペランドが1つの命令で指定されます。
命令がマシンコードの形で指定されることはほとんどありません。
プロセッサの命令セットに関連したものだけでなく、「命令」のより一般的な定義がもう一つあります。命令」は、実行可能なコンピュータプログラムの要素を表現したものである可能性があります。
関連ページ
質問と回答
Q:コンピュータサイエンスにおけるインストラクションとは何ですか?
A:コンピュータサイエンスにおける命令とは、プロセッサ命令セットで定義されたプロセッサの単一演算のことです。
Q:命令の長さはどれくらいですか?
A:命令の長さは様々で、マイクロコントローラでは4ビット、VLIWシステムでは数バイトになります。パーソナルコンピュータ、メインフレーム、スーパーコンピュータに使用されている最新のプロセッサの命令サイズは16ビットから64ビットの間である。一部のアーキテクチャ、特に縮小命令セットコンピュータ(RISC)では、命令はそのアーキテクチャのワードサイズに対応した固定長になっています。
Q:命令には何が含まれますか?
A: 命令には、「メモリの内容をレジスタに追加する」などの実行する操作を指定するオペコードと、レジスタ、メモリ位置、またはリテラルデータを指定できるゼロまたはそれ以上のオペランド指定子が含まれます。オペランド指定子は、その意味を決定するアドレス指定モードを持つこともあれば、固定フィールドにあることもあります。VLIWアーキテクチャでは、1つの命令で複数の同時演算とオペランドを指定します。
Q:命令は通常どのように指定されるのですか?
A:命令は機械語コードで指定されることはほとんどありません。プログラマがアセンブリ言語を用いて指定するか、より一般的にはコンパイラが生成します。
Q:「命令」には別の定義があるのですか?
A:はい、「命令」には、プロセッサ命令セットに関連するものだけでなく、より一般的な定義があります。それは、実行可能なコンピュータ・プログラムの要素を表すあらゆる表現です。
Q:すべての命令は同じ大きさですか?
A:いいえ、命令のサイズは使用するプロセッサの種類によって大きく異なり、4ビットからVLIWシステムでは複数バイトまで、最近のプロセッサでは16ビットから64ビットまでのものが多く、RISCアーキテクチャではそのアーキテクチャのワードサイズに対応した固定長の命令が一般的です。