Subsections
今まで,学習したCOMET IIの命令は,次の通りである.これを思い出して,本日の学習内
容と絡めて,理解を深める必要がある.
開始 |
START |
プログラムの先頭を示し,入口名と実行開始番地を定義 |
終了 |
END |
プログラムの終わりを明示 |
領域確保 |
DS |
プログラムで使うメインメモリーを予約 |
定義 |
DC |
メインメモリーの初期値設定 |
- データ転送命令
データ転送 |
LD |
メインメモリーやレジスターの内容を汎用レジスタに転送 |
データ転送 |
ST |
汎用レジスタのデータをメインメモリーへ転送 |
アドレス転送 |
LAD |
実効アドレスを汎用レジスターへ転送 |
- 算術,論理演算
算術加算 |
ADDA |
1語のデータを符号付き整数と見なし,加算を行う. |
論理加算 |
ADDL |
1語のデータを符号無し整数と見なし,加算を行う. |
算術減算 |
SUBA |
1語のデータを符号付き整数と見なし,減算を行う. |
算術減算 |
SUBL |
1語のデータを符号無し整数と見なし,減算を行う. |
論理積 |
AND |
1語のデータのビット毎の論理積の演算を行う. |
論理和 |
OR |
1語のデータのビット毎の論理和の演算を行う. |
排他的論理和 |
XOR |
1語のデータのビット毎の排他的論理和の演算を行う. |
- シフト
算術左シフト |
SLA |
レジスタの内容を符号ビットを除き左にシフト.空きには0が入る. |
算術右シフト |
SRA |
レジスタの内容を符号ビットを除き左にシフト.空きには符号ビットが入る |
論理左シフト |
SLL |
1語全てを,左にシフト.空きには0が入る |
論理右シフト |
SRL |
1語全てを,右にシフト.空きには0が入る |
- 比較
算術比較 |
CPA |
データは符号付き整数と見なし,比較を行う. |
論理比較 |
CPL |
データは符号無し整数と見なし,比較を行う. |
- 分岐
正分岐 |
JPL |
SFとZFがともに0の時,指定の実効アドレスに分岐 |
負分岐 |
JMI |
SFが1の時,指定の実効アドレスに分岐 |
非零分岐 |
JNZ |
ZFが0の時,指定の実効アドレスに分岐 |
零分岐 |
JZE |
ZFが1の時,指定の実効アドレスに分岐 |
オーバーフロー分岐 |
JOV |
OFが1の時,指定の実効アドレスに分岐 |
無条件分岐 |
JUMP |
無条件に,指定の実効アドレスに分岐 |
教科書 [
1]のp.76〜p.82までである.
スタックの操作は.サブルーチンを呼び出すときにデータを待避させる時に主に使う.
プッシュ |
PUSH |
スタックにデータを入れる(プッシュする) |
ポップ |
PUSH |
スタックにデータを取り出す(ポップする) |
比較とジャンプ命令は,セットで使われることが多く,数の比較を行い,その結果を受け
て,処理の実行を変える.FORTRANやC言語では,
コール |
CALL |
サブルーチンを呼び出す(コールする) |
リターン |
RET |
呼び出し元へ復帰する(リターンする) |
スーパーバイザーコール |
SVC |
OSの機能を呼び出す |
ノンオペレーション |
NOP |
なにも実行しない |
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
2006-02-08