戻る アセンブラ (assembler)



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


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

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

そこで作られたのがアセンブリ言語で、 下図の左がアセンブリ言語で書かれたプログラムの例です
これもコンピュータのハードウェアに精通していないとプログラムは書けませんが、 "LD" は LOAD の略、 "ADD" は加算を意味しています。 機械語に比べると遙かに楽です。
しかしアセンブリ言語で書かれたプログラムは、 コンピュータにはやはり理解できません。
アセンブリ言語のプログラムを機械語に変換するためのプログラム、 下図中央の 「矢印」 にあたる変換のプログラムが 「アセンブラ」 です。 アセンブリ言語は機械語と一対一で対応していて、 アセンブリ言語で書かれたプログラムは逐語訳のように機械語に翻訳されます。

ソースファイル  

機械語と一対一で対応しているプログラミング言語を 「低水準言語 (low-level language)」 といいます。
名前は "low level" ですが、 レベルが低くて劣っているという意味ではなく、 「機械語に近い」 ということを表しています。
逆に人の自然言語に近い記述ができるものを高水準言語といい、 C、 Java、 Perl など、 さまざまなものがあります。 通常コンピュータのプログラムは高水準言語を使ってプログラミングされています。




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


*1 このプログラムは Z80 という 8 ビットの CPU のためのものです。1 から 10 までの整数が順次レジスタ A に加算されます。 実際の計算は 10 + 9 + 8 + ………+ 2 + 1 という風におこなわれます。

自由利用マーク
update: 2012.12.18  address