コンピュータの仕組み(機械語〜アセンブリ、高級言語)
先日、なぜか@putanとプログラム言語の中身の話をする機会あったんですが、ふと、以前書いコンピュータの仕組み(基本論理回路〜機械語) - yokkunsの日記の続きを書いてないことに気付いたので、まとめることにしました
機械語からアセンブリ言語
前回、無事回路と機械語がつながりましたが、機械語は、コンピュータにとっては快適な言語ですが、
我々人間にとっては、大変つらい言語です。
そこで、命令番号を意味のある単語の頭文字で置き換えてプログラムを書く方法が考えられした。
このような記法を「ニーモニック」と言います。
オペレーションコード | ニーモニック | 命令の種類 |
00000000 | ADD | 加算 |
00000001 | SUB | 減算 |
00000010 | AND | AND |
00000011 | OR | OR |
00000101 | LD | メモリからACCへ (Load) |
00000110 | ST | ACCからメモリへ (Store) |
これを使って、前回の例を記述すると、
LD 2 # メモリから 2を ACCに保存 ADD 3 # ACCにある2と3を加算して結果をACCに保存 ST 4 # ACCから結果を取って,メモリの4番地に保存
いくらか、人間にとってもマシな状態になってきました。このニーモニックで書かれたプログラムを「アセンブリ言語」、コンピュータが分かる0と1のプログラムに変換するプログラムを「アセンブラ」と言います。
アセンブリ言語から高級言語へ
0と1の世界より、いくらかマシにしてくれたアセンブリ言語ですが、まだ大きな問題があります。
0と1よりはマシというくらいで、普通の数式とは程遠いし、機械語はハードウェア毎に異なるので、ハードウェアが変わると、アセンブリで書いたプログラムは動きません。
そこで、ハードウェアに依存せずにプログラムを書くために発明されたのが、「コンパイラ」です。
コンパイラの登場により、ハードウェアに依存せず、しかも、かなり人間にやさしい文法でプログラムを書けるようになり、開発効率もぐっと上がりました。
ちなみに、アセンブリのようにハードウェアに近い言語を低級言語、C言語やJavaなど人間に近い言語を高級言語と言います。
参考
以下の書籍を参考にしました.
- 作者: 手塚慶一
- 出版社/メーカー: 昭晃堂
- 発売日: 1993/12
- メディア: 単行本
- 購入: 2人 クリック: 10回
- この商品を含むブログ (1件) を見る
- 作者: 高田美樹
- 出版社/メーカー: 技術評論社
- 発売日: 2009/04/25
- メディア: 大型本
- 購入: 1人 クリック: 36回
- この商品を含むブログ (5件) を見る