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