トップ-> アセンブラ入門:はじめに

←前ページへ : トップへ : 次ページへ→



はじめに



  巷では完全にMS-Windowsの天下ですね。AppleもiMacでがんばってはいますが。そんな 世の中にアセンブリ言語を学ぼうという人はほとんどいないでしょうね。よく人から 「アセンブラなんて使うの?」なんてことを言われます。答えは「Yes」 であり、「No」でもあります。

  趣味でプログラミングをする人でアセンブラをやる人は、現在はほとんどいないでしょう。 世の中のパソコンが進歩したからです。昔のパソコンはメモリーも少なく、処理も遅かった ので、何かの処理を速くやりたい場合や、ドライバーなどの常駐プログラムを作る場合は アセンブラが主流だったのです。

  しかし、技術の進歩は速いもので、メモリーは膨大に増え、処理速度も速くなってきたので、 そんなことを考えてプログラムを作るより、機能をあげたほうがいいと考えられているからです。 では、アセンブラは最近は必要なくなったのでしょうか? 今回の質問の答えはNo!です。

  アセンブラとはコンピュータの命令1つ(2進数の数字)を、人間が理解しやすくしたもので、 アセンブラの命令1つがマシン語の1つに対応しています。C言語などの高級言語は、 高級言語の命令1つは、マシン語の命令が複数集まってできています。例えば、C言語 でディスプレイに文字を表示するという命令や、文字を入力する命令は、誰かがマシン語で あらかじめ作ってくれて、C言語のプログラマーは、それらを組み合わせているだけなのです。

  ディスプレイやキーボードは古くからあるデバイス(装置)なので、これを操作する マシン語のプログラムはC言語のコンパイラーを買った時に標準でついてきます。しかし、 新しいデバイス(装置)を作った場合、これを操作するプログラムはC言語にはないので、 誰かが作らなければなりません。何で作るのでしょう? C言語には用意されていないので、 C言語では作れません。もちろん他の高級言語にも用意されていないので、アセンブラで 書くしかないのです。したがって、趣味で使う人は少なくなっても、デバイスメーカーは アセンブラなくしては、製品の開発ができないのです。

  もう少しわかりやすい例を出します。IntelはPentiumというCPUを作りました。 その次にMMX-Pentiumというのを作りました。MMXとは「Multi Media  Extention Technology」の略で、マルチメディアを扱うのに便利な新しい 命令を数百増やしたCPUです。CPU自体の命令を増やしても使わなくては仕方がありません。 C言語でそのMMX命令を使うためには、アセンブラでC言語用の命令を作らなければなりません。 このような観点からアセンブラは無くてはならない言語です。

  また、パソコンが進化してきたと言っても、まだまだ小さいコンピュータは使われています。 例えば、洗濯機や冷蔵庫、炊飯器にカメラさらにはテレビやそのリモコンまで。 電気や電池を必要とするもののほとんどにコンピュータは使われています。 しかし、それらは値段が高くては誰も買ってくれないので、必要最小限のコンピュータしか 使いません。そうするとPentiumなんて使うわけにはいきません。せいぜい4bitCPUとかです。 当然、メモリーも必要最小限です。少ないメモリー、遅いCPUでプログラムを書くのに、 高級言語なんて使えません。やはりアセンブラの登場と言うことになります。

  このように趣味でアセンブラをやる人は少なくなりましたが、この世の中には 必要な言語です。


  ここで、アセンブラの特徴(?)を紹介します。

  • コンピュータの仕組みを学ぶにはアセンブラが1番
  • 高級言語は裏で何しているかわからん!!
  • 高級言語はバカな処理をすることがある!!
  • CPUが変わると命令も変わるが、基本は一緒
  • パズル好きな人向け
  • 「この世で信用できるのは自分だけ!!」という人向け


←前ページへ : トップへ : 次ページへ→