戻る アセンブラ (assembler)

アセンブラとは、「アセンブラ言語で書かれたプログラムを、機械語のプログラムに変換するプログラム」 です。



コンピュータのプログラムは、コンピュータが初めて作られて以来、しばらくの間は 「機械語」で書かれていました。 4 〜 50 年前のことです。

機械語は、コンピュータがそれを読み込んで、そのまま処理を進めることが出来るプログラムです。 下図の右が機械語プログラムの例ですが、まるで暗号のようです。
ここで、 0000, 0002, 0004, 0005, 0006 は、メモリのアドレスを表していて、 プログラムそのものは、 06, 0A, 3E, 00, 80, 05, 20, FC です。 これは、2進数の機械語プログラムを 16進数 で表したものですが、 このような機械語で直接プログラムを書くことは至難の業、だということは理解していただけるでしょう。

そこで作られたのが、アセンブラ言語です。
アセンブラ言語は機械語と1対1で対応していて、アセンブラ言語で書かれたプログラムは、 逐語訳のように機械語に翻訳されます。
そのため、やはりコンピュータのハードウェアに精通していないとプログラミングはできませんが、 "ADD" は加算であり、"LD" は LOAD の略だということを理解すれば、 機械語ほど難しくはありません。下図の左がアセンブラ言語で書かれたプログラムの例です。

こうして、アセンブラ言語で書かれたプログラムは、人には少し分かりやすくても、 コンピュータは全く理解できませんから、右の機械語に変換しなくてはなりません。
このためのプログラム、下図中央の 「矢印」 にあたる変換プログラムが 「アセンブラ」 です。

ソースファイル  
アセンブラ プログラム
(ソースファイル)

→  


(アセンブラ)
オブジェクトファイル       
機械語 プログラム
(オブジェクトファイル)


情報処理概論 に戻る   用語解説 に戻る   戻る

このページのプログラムは、Z80 という8ビットの CPU のためのものです。1 から 10 までの整数が 順次レジスタAに加算されるプログラムです。 実際の計算は、10 + 9 + 8 + ………+ 2 + 1 、という風におこなわれます。 詳しくは、アセンブラ言語 *Jアセンブラプログラム などをご覧下さい。

2001.02.20   ueyama@infonet.co.jp