アセンブリ言語
プログラミング へ戻る
大学生のための数学 へ戻る
2014.09.12


  昔の16ビットパソコンは、 同時に処理できる情報の大きさが16ビットでした。 1 ビットというのは、 0 か 1 かの情報です。 16ビットパソコンは、 2進数の16桁の各位の数が 0 か 1 なのかを同時に判定して処理することができるのです。 情報は 1 バイト = 8ビット 毎にメインメモリ上にある情報収納庫に入れられていきます。 情報収納庫には通し番号が付けられており、 それをアドレスといいます。 1 バイトの情報は2進数では8桁で表されますが、 16進数では2桁で表されます。 コンピューターは2進数しか解りませんが、 各情報収納庫の中にどんな情報が入っているのかを人に解りやすく示すために16進法で表示します。

  コンピューターが解る2進数の並びによる 「 機械語 」 に最も近い言語は、 低級言語と言われる 「 アセンブリ言語 」 です。 「 アセンブリ言語 」 はアセンブラによって簡単に 「 機械語 」 に変換することができます。 「 アセンブリ言語 」 でかかれるプログラムの命令にはいろんな種類がありますが、 その中でも次の3つは、 コンピューターの仕組みを理解する上で大切です。
   データ転送命令 : メインメモリとCPU ( 中央制御装置 ) の間で情報を移動させる
   順路命令 : 処理の道順を命令する
   演算命令 : 算術や論理的な演算をする

たとえば、 次のようなアセンブリ言語で書かれたプログラムがあります。
    ORG  9030H
    LD  A , 15H
    LD  C , 03H
    ADD  A , C
    LD  ( 9120H ) , A
    RET


  これをアセンブラによって機械語に変換します。 そして、 それをダンプという手法を用いて除いて見ますと、 次のように見えます。
   アドレス 9030 から 9038 まで :
     3E 15 0E 03 81 32 20 91 C9
   アドレス 9120 から 9121 まで :
     18 00

  2行目の命令 LD は アドレス 9011 の情報収納庫に入っている 15 という16進数の情報をCPUの A という場所に移せと言っています。 それは、 機械語に翻訳されると、 3E 15 になります。 4行目の命令 ADDA の場所の数としての情報を「 A の場所の数としての情報 に C の場所の数としての情報 を加えたもの 」に変換せよと言っています。 結局、 このプログラムは、 アドレス 9011 の情報収納庫に入っている 15 という16進数 と アドレス 9013 の情報収納庫に入っている 3 という16進数 とを加えた値を アドレス 9120 の情報収納庫に収納せよという命令するものなのです。

 < 警 告 >