[
Previous:
6 主記憶装置とレジスタ
] [
Up:
これまでの復習(後期中間試験に向けて)
] [
Next:
8 アセンブラ言語(CASL IIの書き方)
]
7
アセンブラ言語をマシン語に変換
プログラムは,命令とデータから構成される.プログラムを実行するためには, アセンブラ言語を0と1のビットパターンのマシン語に変換する必要がある.命令 とデータをビットパターンに変換するのである.
リスト
1
は,3+5を計算するプログラムである.これを,ビットパター ンに変換すると,図
9
のようになる.
教科書のp.213の命令語の構成に従って,命令のビットパターンに変換できる.こ れは,問題文に載せるので憶える必要は無い.
この命令語の構成に書かれているオペランドを簡単にまとめると,次のようになる.
r
汎用レジスター
GR0
〜
GR7
r1
1つの命令で2つの汎用レジスターを使うときの一方
GR0
〜
GR7
r2
もう一方の汎用レジスター
GR0
〜
GR7
adr
アドレスを示す.
レベル名が書かれることが多い.
x
アドレスをシフトするインデックスレジスタ.
GR1
〜
GR7
最初に機械語に変換される命令は,
LD GR1,A
である.その変換は,次の ように行う.
LD
という命令から,16進数4桁の表示の最上位の桁は (1)
と分かる.
次の桁は,
LD
には,(0)
か(4)
である.ここで は,
LD r,adr,x
のパターンとなっているので,次の桁は (0)
と分かる.
次の桁は,汎用レジスターを示す.ここで使われている汎用レジスターは,
GR1
なので,(1)
となる.
次の桁は,インデックスレジスターを示す.インデックスレジスターは無いので, その桁は(0)
となる.
ここの命令は,
LD r,adr,x
のパターンであるので,命令語長は2語である.最初 の1語は今示したとおり,(1010)
である.次の1語は,ラベル
のアドレスである. これは,プログラムが格納されるアドレスに依存する.ここでは,教科書(p.17の図2.4) に沿って,(A000)
からプログラムは格納されるとすると,
のアドレスは (A007)
となる.これが第2 語のビットパターンとなる.
[caption=CASL IIのプログラム例.3+5を系算する,label=prog:add] program/add.cas
図 9:
アセンブラ言語をマシン語へ変換
ホームページ:
Yamamoto's laboratory
著者:
山本昌志
Yamamoto Masashi
2005-11-25