機械語
読み:きかいご
外語:machine language
マイクロプロセッサー
が直接理解できる言語のこと。
目次
概要
特徴
互換性
構造
作成
アセンブリ言語
概要
マイクロプロセッサーが直接理解し実行できる、唯一の
プログラミング言語
である。
電子計算機
である
コンピューター
の機械語の実体は、
電圧
の高低で表現された2値の信号の集合で、これが
メモリー
に記録される。
現在は、これを8ビットまたは16ビットなどの長さを単位として扱い、
人間
が使うときは、2進数、8進数、16進数などで表記する。
特徴
互換性
機械語は、そのマイクロプロセッサーにとって最も都合が良いように設計される。
従って、マイクロプロセッサーごとに、その仕様が大きく違う。
異なるメーカーの異なる製品にあっては、仕様が全く違うことは半ば当然である。同じメーカーであっても、異なるコンセプトで設計された製品同士では、やはり全く違うことは珍しくない。
これが、パーソナルコンピューターにおいても、あるCPU用のプログラムが別のCPUで動作しない(例えば
Pentium
用のプログラムが
PowerPC
では動作しない)という現象をもたらしている。
構造
機械語は、マイクロプロセッサーごとに千差万別で互換性はないが、基本的な構成は似通っており、概ね次のような構造を取る。
オペコード
オペランド
オペコードが、命令の種類を表わす番号である。
オペランドは、命令実行に必要な
引数
などの情報である。
例えばRISCに多く見られる16ビット固定長などの場合は、この情報が16ビット中に配置される。CISCに多く見られる8ビット単位不定長の場合は、オペコードに続いてオペランドが置かれる形式が多い。
作成
C言語
や
アセンブリ言語
などのプログラミング言語で書かれたプログラムは、
コンパイル
や
アセンブル
という処理により機械語に変換され、実行される。
これが現在の一般的なスタイルであるが、マイクロコンピューターが登場したばかりの頃はまだ一般的なプログラミング言語がなく、プログラムを作ることとは機械語の列を作りコンピューターに手入力することを意味していた時代もあった。
アセンブリ言語
機械語に対し、ほぼ1対1で対応するように作られたプログラミング言語が
アセンブリ言語
である。
その仕様は機械語に依存するため、やはりマイクロプロセッサーごとに、その仕様が大きく違う。
最近ではめっきり減ったが、その昔はアセンブリ言語でプログラミングすることもあり、利便性を高めるためにマクロアセンブラーという多機能な
アセンブラー
が使われていた。更に昔はアセンブラーすらなく、紙に書いたプログラムを手作業で機械語に翻訳していた。これをハンドアセンブルという。
再検索