neverjpのぶらり日記

コンピューター関連の記事とぶらりと出かけた先の写真など

アセンブリ言語とアセンブラ



1と0だけでプログラムを記述するのは、人間にとってはあまりにも過酷な作業です。そこでCPUの命令や、命令に指定する引数などを、人間にも分かりやすい名前や数値、文字列で記述する方法が考え出されました。このような記述方法を「アセンブリ言語*1」と呼び、CPUの命令を人間にも理解可能な英数字の組み合わせに変換したものを「ニーモニック*2」と呼びます。アセンブリ言語はCPUの命令と1対1に対応する人間向けの記法に過ぎないため、ニーモニックもCPUごとに異なります 。例えばCPUでZ80という8ビットのものがあります。このCPUにはザイログ系とインテル系の2つのアセンブラが存在するのです。勿論命令語のそれぞれに違ったニーモニックが対応しています。従って「機械語」同様、「アセンブリ言語」という言語が規定されているわけではありません。アセンブリ言語はあくまで人間向けの記法に過ぎないので、CPUがアセンブリ言語で記述されたプログラムを実行するには、誰かがアセンブリ言語で記述された内容をビット列に変換しなければなりません。当初、この変換は人間の手によって行われていましたが、まもなくこの変換を自動的に行うソフトウェアである「アセンブラ*3」が開発されました。アセンブラアセンブリ言語のプログラムを読み取り、対応する機械語プログラムを出力します*4。現在でもアセンブリ言語は、CPUの機能を極限まで利用しなければならないような局面や、アセンブリ言語が唯一の開発言語となるような局面*5で、広く利用されています。

人気blogランキングへ←人気blogランキングに参加しています。よろしければ1票を!


*1:assembly language

*2:mnemonic

*3:assembler

*4:これを「アセンブル(assemble)と呼びます

*5:組み込み用のソフトウェア開発など