![]() |
How to Assembler | Return to Parent Menu |
Last Updated by 04/14/98(Tue) |
| |||
| |||
この Web ページのテーマである「アセンブリ言語 (Assembly language) 」は、コンピュータ界で最も原始的かつ芸術的なプログラミング言語です。 コンピュータ言語には、最初の位置にマシン語があり、このマシン語のことを一般に「第一世代言語」とよびます。 この「第一世代言語」の次のステップにあるのが、個々のマシン語をアルファベットの記号の組み合わせで表す「第二世代言語」、それが当 Web ページのテーマである、アセンブリ言語なのです。 部品を組み立てて目的の製品を作っていく行程を、「アセンブルする」といいます。このことから、工場などの組立作業ラインのことを「アセンブリライン (Assembly line) 」というのです。 アセンブリ言語の最大の特徴は、言語の基本仕様にあります。 アセンブリ言語はひとつひとつの命令が、一対一にマシン語の機械命令に対応しているのです。 「第三世代言語」以降の C 言語や Pascal 、 Fortran に代表される高級言語 (high-level language) では、プログラミング言語の一つの命令は複数のマシン語の機械命令を表しています。 この事からも解るとおり、アセンブリ言語は高度に緻密にきめ細やかなプログラムを記述する事ができ、高速かつ容量の小さなプログラムを生成できます。 しかし、アセンブリ言語はきめ細やかな記述ができるぶんだけ、全ての命令を自分自信で書かなくてはなりません、しかも CPU に直接命令を送るわけですから、どうしても機種依存という形を取らなくてはならないというデメリットもあります。 しかも現代では、 CPU やそのほか周辺機器のアクセススピードの向上で、高級言語での記述でも十分実用に耐えうるソフトウェアの開発ができること、そして Windows や Mac OS に代表される GUI 上での動作を求められることからも、アセンブリ言語での記述メリットが無くなってきているのが現状です。 どうしても速度が必要な部分には、 C 言語などにインラインアセンブラという埋め込み型のアセンブリ言語での記述法ができますので、アセンブリ言語オンリーでのプログラミングというのは開発効率が悪すぎるといえます。 アセンブリ言語でないと高品質なプログラムが作れないというような脅迫観念はなくなりつつあるのではないかと思います。 しかしながら、アセンブリ言語について理解を深めるという事は、コンピュータの構造の細部まで直接知るということで、誤解をなくすことにもつながります。 プログラマにとって理想的なことは、ハードウェア仕様を理解できることです。プログラムの不具合がどのように起こっているのかなど、ソフトウェア側からしか探れないのではなく、ハードウェアの原理からこういう構造だからこういう結果になったのだと理解できることが重要なのです。 アセンブリ言語を学ぶということはハードウェアを、コンピュータの内部を学ぶということなのです。 この Web ページでは、それをふまえ学習しようという事なのです。 |
▲ TOP |
| |||
当初、アセンブリ言語でかかれたプログラムは人間が一つ一つニーモニックとマシン語の対応表を見ながら 0 と 1 に変換してからコンピュータに入力していました。 本来「アセンブラ」とはアセンブリ言語で書かれたソースプログラムを実行可能(マシン語の集合)なプログラムに変換するプログラムのことなのです。 C 言語の処理系が「コンパイラ」であるように、アセンブリ言語の処理系は「アセンブラ」なのです。 元々、アセンブラとはアセンブリ言語を処理系(翻訳するソフト)の名称だったのですが、現在ではアセンブラという言葉がアセンブリ言語と同義語のように扱われています。 |
▲ TOP |
| |||
執筆中です。 |
e-mail: mist@e-net.or.jp | Structured Anchor Tree Return to Menu Return to Parent Menu |
Powered by Unit Missing Link. |