2010年1月26日火曜日

プログラム言語について -アセンブラ-

今日は、アセンブラについてお話します。アセンブラとは、コンピュータのCPUが動作する機械語と1対1に対応するものです。FortranやCobolと言った高級プログラム言語が人間に分かり易く設計されているのに対し、アセンブラは、機械に分かり易く設計されていると言った方が分かり易いかも知れません。
初期のパソコンでは、MS-DOSやCP/MなどのOSとアセンブラしかなく、FortranやCobolなどのコンパイラが提供されていませんでした。そのため、これらの開発環境では、場合には、このアセンブラを使ってプログラムを書いていました。
私もCPM(8ビットのパソコン用オペレーティングシステム)で、Basicインタプリターやデータ入力システムなどを開発しました。
通常のCPUでは、メモリからCPUが持っているレジスタにデータを取り出したり、レジスタの内容をメモリに書き戻したり、レジスタ上で演算(比較を含む)などを行います。
通常は、命令と呼ばれる部分(レジスタ同士の計算、メモリからレジスターへのロード、レジスターからメモリへの書き込み)とオペランドと呼ばれる部分(命令の対象となるレジスタやメモリを指定する)から構成されます。
最初にソフト会社に入った時の教育でミニコンでのアセンブラプログラム教育がありましたが、全く動作しませんでした。その後、CPMでデバッガーが会いアセンブラでのプログラミングできるようになり、最後には再帰呼び出しのプログラムもアセンブラで書くようになり、結局、昔のAPPLE IIに搭載されていた6502, Z80,インテル8086,モトローラ68000,SunのSPARCチップなどのアセンブラによるプログラム作成を行いました。
また、アセンブラでプログラムを書くようになると、それぞれのCPUの特色が分かり、その点もメリットがあったと今でも思っています。

アセンブラによるプログラムを行うには、非常に根気の要る作業で、プログラマー35才定年説も個々から出たのかもしれません。しかし、現在では、javaなどの高級言語のお陰で、私のような実際の定年近くになる老人でもプログラムが可能になっています。



0 件のコメント:

コメントを投稿