これまでの講義で,アセンブラ命令と機械語命令の学習を終えた.最後に残ったマクロ命
令をここで学習する(教科書 [
1]のp.83〜p.86).その前に,CASL IIの命令について,再度,見直しておく.
アセンブラ命令
教科書では,非実行文と書かれているものである.アセンブラーと
いう変換プログラムに対して,いろいろな指示を行う命令である.プログラム実行時には,
COMET IIのCPUの動作の指示は行う命令ではない.したがって,この命令は機械語に変換
されて特定のビットパターン(1と0の組み合わせ)に変換されることはない.
| |
START |
プログラムの先頭を定義 |
| |
|
プログラムの実行開始番地を定義 |
| |
|
他のプログラムで参照する入口名を定義 |
| |
END |
プログラムの終わりを明示 |
| |
DC |
定数を定義 |
| |
DS |
領域を確保 |
ただし,DC命令は,それに引き続く値にビットパターンに変換される.
DS命令はビットパターンに変換されないが,必要な領域を確保する.こ
の2つは,FORTRANの変数宣言と同じような働きをする.実際のプログラムでは,
データの値を定義することに使われる.
機械語命令
COMET IIのCPUに動作の指示を行う.そのため,この命令に対応した論理回路が,CPUの
中に組み込まれている.これら命令は,アセンブラーにより特定のビットパターンの機械
語に変換され,そのパターンに従い,論理回路が動作する.実行時には,そのビットパター
ンが主記憶装置に格納されている.
| |
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 |
その他 |
マクロ命令
マクロ命令とは,特定の機能を果たす,いくつかの機械語命令の集まりに名前を付けたも
のである.この名前を指定するだけで,これらの命令の集まりが実行できる.これにより,
頻繁に使われる定形的な命令群をマクロ命令にすることにより,同じようなプログラムを
いちいち書くことを省くことができ,便利である.多くの命令から構成されるため,アセ
ンブラーにより変換されるビットパターンは非常に多くなる.
| |
IN |
入力装置(キーボード)から,文字データを読み込む |
| |
OUT |
出力装置(ディスプレイ)に,文字データを書き込む |
| |
RPUSH |
汎用レジスターの内容を,GR1, GR2,
, GR7の順でスタッ
クに格納 |
| |
RPOP |
スタックの内容をGR7, GR6,
,GR1の順で汎用レジ
スターに格納 |
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
2006-02-08