それでは、命令の種類と、それがどのようにメモリーに格納される調べる。そ
のためには、実際のプログラムで、それを見るのが良いであろう。次のような
CASL IIのプログラムを考ることにする。これで、CASL IIの3種類の命令の違
いを理解する。
- 加算をするプログラムである。内容は、
- 加算をする3と5をメモリーに格納しておきます。
- それを引き出して、加算を行います。
- 加算の結果を、メモリーに戻します。
- そして、最後に"END"と出力装置に表示します。
である。
これを実現するCASL IIのプログラムは、図
2のようになる。合わせて、フロー
チャートも示しているので、内容を理解すること。
実行文ではないため、フローチャートには書かなかったが、命令コードの
DCとDSには、
|
A DS 3 |
|
アドレスAに数値の3を格納 |
|
D DC 'END' |
|
アドレスDに文字'E'を格納 |
|
|
|
続いて、アドレスD+1に文字'N'を格納 |
|
|
|
最後に、アドレスD+2に文字'D'を格納 |
|
C DS 1 |
|
アドレスCを先頭に、1ワード分のメモリー領域を確保 |
|
|
|
|
の役割がある。これは、アセンブラーがメモリーの中身を決めたり、確保
するために必要である。
それでは、このCASL IIがアセンブラーでどのように機械語に変換されるか見
る。シミュレーターWCASL-II2で変換すると、図3のよう
なマシン語になる。以下のことが重要である。
- アセンブラ命令は、マシン語に変換されていない。
- 機械語命令は、1対1の対応でマシン語に変換される。対応については、
前々回のハンドアセンブルで、学習した通りである。
- マクロ命令は、複数のマシン語に変換される。変換されるマシン語は、
OSやアセンブラーに依存する。したがって、マクロ命令のマシン語へ
の変換については、ここでの学習の範囲外である。この変換を考えるため
には、OSとアセンブラーの設計が必要である。
図 2:
アセンブラ命令、機械語命令、マクロ命令があるプログラム例と
フローチャート
|
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
平成16年9月7日