Subsections
CASL IIの命令を大きき分けると,アセンブラ命令と機械語命令,マクロ命令の3種類ある.
プログラムを書く場合,これらがどのようになっているか,理解する必要がある.命令の
具体的な内容は,次回以降の授業で学習すが,ここでは簡単に概要を述べる.
教科書のP.28〜P.35で説明している非実行文と書かれているものである.アセンブラーと
いう変換プログラムに対して,いろいろな指示を行う命令である.プログラム実行時には,
COMET IIのCPUの動作の指示は行う命令ではない.したがって,この命令は機械語に変換
されて特定のビットパターン(1と0の組み合わせ)に変換されることはない.
CASL IIには,次の4個のアセンブラ命令がある.
|
START |
プログラムの先頭を定義 |
|
|
プログラムの実行開始番地を定義 |
|
|
他のプログラムで参照する入口名を定義 |
|
END |
プログラムの終わりを明示 |
|
DC |
定数を定義 |
|
DS |
領域を確保 |
ただし,
DC命令は,それに引き続く値にビットパターンに変換される.
DS命令はビットパターンに変換されないが,必要な領域を確保する.こ
の2つは,FORTRANの変数宣言と同じような働きをする.実際のプログラムでは,
データの値を定義することに使われる.
教科書のP.40〜P.82で説明している.この命令は,COMET IIのCCPUの動作の指
示を行う.そのため,この命令に対応した論理回路が,CPUの中に組み込まれ
ている.これら命令は,アセンブラーにより特定のビットパターンの機械語に
変換され,そのパターンに従い,論理回路が動作する.
実行時には,そのビットパターンが主記憶装置に格納されている.ビットパター
ンへの変換は,先々週の授業で説明したハンドアセンブラーと同じことをする.
CASL IIには,以下の28個の機械語命令がある(教科書のP.203).
|
LD, ST, LAD |
データの移動 |
|
ADDA, SUBA, ADDL, SUBL |
算術演算 |
|
AND, OR, XOR |
論理演算 |
|
CPA, CPL |
比較演算 |
|
SLA, SRA, SLL, SRL |
シフト演算 |
|
JPL, JMI, JNZ, JZE, JOV, JUMP |
分岐処理 |
|
PUSH, POP |
スタック操作 |
|
CALL, RET |
サブルーチンの呼び出しと戻り |
|
SVC, NOP |
その他 |
教科書のP.83〜P.86で説明している.マクロ命令とは,特定の機能を果たす,
いくつかの機械語命令の集まりに名前を付けたものである.この名前を指定す
るだけで,これらの命令の集まりが実行できる.これにより,頻繁に使われる
定形的な命令群をマクロ命令にすることにより,同じようなプログラムをいち
いち書くことを省くことができ,便利である.
多くの命令から構成されるため,アセンブラーにより変換されるビットパター
ンは非常に多くなる.
CASL IIには,以下の4個のマクロ命令がある(教科書のP.203).
|
IN |
入力装置(キーボード)から,文字データを読み込む |
|
OUT |
出力装置(ディスプレイ)に,文字データを書き込む |
|
RPUSH |
汎用レジスターの内容を,GR1, GR2,
,GR7の順でスタックに格納 |
|
RPOP |
スタックの内容をGR7, GR6,
,GR1の順で汎用レジスターに格納 |
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
2005-11-25