※「セキュリティ保護のため...」というメッセージが出る方・日本語が入力できない方へ
■アセンブラ■
アセンブラは機械語を読みやすい記号で記述したものです。
コンピュータの黎明期には初め機械語で全てプログラムを書いていましたが、
やはり数字の羅列ではわけがわからないので、それを記号で記述し、使う時
にそれを機械語に変換することが考えられたのです。これがアセンブル言語
の誕生です。
アセンブル言語は最初の段階では人手で機械語に翻訳していましたが、すぐ
に翻訳するプログラムが作られました。一般にプログラムを機械語に翻訳す
るソフトのことをコンパイラといいますが、アセンブル言語を機械語に翻訳
するソフトだけはアセンブラといいます。またアセンブル言語自体もアセン
ブラと呼ばれます。
【初期のアセンブラ記述列】
LOAD ZERO
STORE GOKEI
STORE CNT
YOMU: READ
STORE DATA
XOR STOPDATA
IFZERO OWARI
ADD GOKEI
LOAD ONE
ADD CNT
STORE CNT
JUMP YOMU
OWARI:HALT
※READはコンピュータのパネルのデータスイッチから読みとる。
結果はメモリの中身を直接読みとって得る。
。。。といったのがこの時期のやり方である。
しかし、後にアセンブラにはマクロ機能というものが追加されます。これは
一連の決まり切った手順のパターンを登録し、それを利用して記述するもの
です。たとえば
LOAD A
ADD B
STORE C
といった記述を COMPADD C,A,B などといったマクロで定義するわけです。
このマクロ機能が加わったことにより、事実上自分で勝手に命令をどんどん
作ることができます。多数の便利なマクロをあらかじめ定義しておけば、ア
センブラはあたかも高級言語であるかのような記述の仕方ができるようにな
ります。しかも1970年頃と1980年代後半とではCPU自体が持っている命令
の数が全然違います。そのため、1980年代後半頃のアセンブラというのは、
1970年代のFORTRANなどより、よほど書きやすい言語になっていました。また
マクロ命令をうまく使うことにより、COBOL,FORTRAN,BASIC,C++よりもよほど
移植性の良い記述の仕方が可能になっていました。
『アセンブラはマシンに依存しているから移植性が無い』などというのは
アセンブラを知らない人の唱える迷信にすぎません。むろんまるで移植性の
無い記述の仕方も可能です。移植性がよいかどうかはそれを書いたプログラ
マの腕次第でしょう。
【1988年頃のアセンブラ記述列】
FStrComp PROC fblok:DWORD,nstr:WORD,len:WORD
push es
cld
mov si,nstr
les di,fblok
mov cx,len
repe cmpsb
mov ax,cx
pop es
ret
FStrComp ENDP
現在ではアセンブラだけで全てのプログラムを記述することは特殊な分野を
のぞいてはなくなりつつありますが、C/C++の中にアセンブラの記述を
直接書けるようになっているため、Cでは書けない或いは書きにくい所だけ
をアセンブラで書くようになっています。
アセンブラはそういうわけで、最古かつ現在でも最強の開発言語です。