機械語
読み:きかいご
外語:machine language

 マイクロプロセッサーが直接理解できる言語のこと。
目次

概要
 マイクロプロセッサーが直接理解し実行できる、唯一のプログラミング言語である。
 電子計算機であるコンピューターの機械語の実体は、電圧の高低で表現された2値の信号の集合で、これがメモリーに記録される。
 現在は、これを8ビットまたは16ビットなどの長さを単位として扱い、人間が使うときは、2進数、8進数、16進数などで表記する。

特徴

互換性
 機械語は、そのマイクロプロセッサーにとって最も都合が良いように設計される。
 従って、マイクロプロセッサーごとに、その仕様が大きく違う。
 異なるメーカーの異なる製品にあっては、仕様が全く違うことは半ば当然である。同じメーカーであっても、異なるコンセプトで設計された製品同士では、やはり全く違うことは珍しくない。
 これが、パーソナルコンピューターにおいても、あるCPU用のプログラムが別のCPUで動作しない(例えばPentium用のプログラムがPowerPCでは動作しない)という現象をもたらしている。

構造
 機械語は、マイクロプロセッサーごとに千差万別で互換性はないが、基本的な構成は似通っており、概ね次のような構造を取る。
 オペコードが、命令の種類を表わす番号である。
 オペランドは、命令実行に必要な引数などの情報である。
 例えばRISCに多く見られる16ビット固定長などの場合は、この情報が16ビット中に配置される。CISCに多く見られる8ビット単位不定長の場合は、オペコードに続いてオペランドが置かれる形式が多い。

作成
 C言語アセンブリ言語などのプログラミング言語で書かれたプログラムは、コンパイルアセンブルという処理により機械語に変換され、実行される。
 これが現在の一般的なスタイルであるが、マイクロコンピューターが登場したばかりの頃はまだ一般的なプログラミング言語がなく、プログラムを作ることとは機械語の列を作りコンピューターに手入力することを意味していた時代もあった。

アセンブリ言語
 機械語に対し、ほぼ1対1で対応するように作られたプログラミング言語がアセンブリ言語である。
 その仕様は機械語に依存するため、やはりマイクロプロセッサーごとに、その仕様が大きく違う。
 最近ではめっきり減ったが、その昔はアセンブリ言語でプログラミングすることもあり、利便性を高めるためにマクロアセンブラーという多機能なアセンブラーが使われていた。更に昔はアセンブラーすらなく、紙に書いたプログラムを手作業で機械語に翻訳していた。これをハンドアセンブルという。

再検索