文字の変換の仕方が、表(教科書p.13 JIS X0201)になっていたように、命令も 表になっている。教科書のp.213の命令語の構成に書かれている。全ての命令 がこの表に書かれている。40個弱しかないのである。
ただ、表の見方が、文字のコード表よりちょっと難しい。整数や文字は、16ビッ トのビットパターンであったが、命令の場合は16ビットであったり、32ビット だったりする。少し厄介であるが、慣れればたいしたことない。
それでは、実際の表の見方を示す。まずは、表の中央より右側に機械語命令が 書かれている。その左側がマシン語を表し、右側がその動作を記述している。 今は、動作はどうでもよいので、アセンブラの命令と機械語の対応を考える。 たとえば、LD命令を例にとる。表の機械語命令LDを見ると、 2つあることに気が付く。それは、
| LD | r,adr,x |
| LD | r1,r2 |
| r | 汎用レジスター | GR0〜GR7 | |
| r1 | 1つの命令で2つの汎用レジスターを使うときの一方 | GR0〜GR7 | |
| r2 | もう一方の汎用レジスター | GR0〜GR7 | |
| adr | アドレスを示す。 | レベル名が書かれることが多い。 | |
| x | アドレスをシフトするインデックスレジスタ。 | GR0〜GR7 |
たとえば、ラベルAが(A007)
として、LD GR1,A,GR2
という命令は、
| LD GR1,A,GR2 |
|
(1012)
|
| (A007)
|
| LD GR1,GR2 |
|
(1412)
|
これで、全て終わるのはまだ早い。賢い者は、LD GR1,A という命令 の変換方法に疑問が湧くであろう。インデックスレジスターが無い場合である。 これは、
| LD GR1,A |
|
(1010)
|
| (A007)
|
のプログラムを機械語に変換する。これ
をビットパターンに変換したものが、教科書のp.17の図2.4に書かれている。
ただし、この表には間違いがあるので、注意が必要である。プログラムの最初
のPGM STARTはアセンブラ命令と言って、機械語に変換されない。こ
れについては来週の授業で説明する。したがって、最初に機械語に変換される
命令は、LD GR1,Aとなる。その変換は、次のように行う。
| 命令 | 2進数 | 16進数 | ||
| LD GR1,A | 0001000000010000 | 1010 | ||
| 1010000000000111 | A007 |
このようにアセンブラー言語を人間が表を見ながら、マシン語に変換すること をハンドアセンブル(ほとんど死語か?)と言う。これは単純作業なので、通常 は、コンピューターの仕事である。ただし、コンピューターを学習する者にとっ ては、一度は経験しておきたいことである。