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のCPUの動作の指
示を行う.そのため,この命令に対応した論理回路が,CPUの中に組み込まれ
ている.これら命令は,アセンブラーにより特定のビットパターンの機械語に
変換され,そのパターンに従い,論理回路が動作する.
実行時には,そのビットパターンが主記憶装置に格納されている.ビットパター
ンへの変換は,以前の授業で説明したハンドアセンブラーと同じことをする.
CASL IIには,以下の28個の機械語命令(教科書のP.203)があり,そんなに多くない.
|
LD, ST, LAD |
データの移動 |
|
ADDA, SUBA, ADDL, SUBL |
加算・減算 |
|
AND, OR, XOR |
論理演算 |
|
SLA, SRA, SLL, SRL |
シフト演算 |
|
CPA, CPL |
比較演算 |
|
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
2006-02-08