| 機能 |
書式 |
動作内容 |
フラグレジスタの変化 |
| ロード |
LD r1,r2 |
レジスタr2の値をレジスタr1にコピー |
コピーされた値に従い以下のようになる。
|
OF |
0:常にゼロが設定される |
|
SF |
1:負の時(第15ビットが1) |
|
|
0:正の時(第15ビットが0) |
|
ZF |
1:ゼロの時(全てのビットが0) |
|
|
0:ゼロ以外
|
|
| LD r,adr[,x] |
アドレスadr[,x]の主記憶の内容をレジスタrにコピー
|
| ストア |
ST r,adr[,x] |
レジスタrの内容を主記憶装置のアドレスadr[,x]にコピーする |
変化なし |
| ロードアドレス |
LAD r,adr[,x] |
主記憶装置のアドレス値adr[,x]をレジスタrにコピーする。 |
変化なし |
| 算術加算 |
ADDA r1,r2 |
レジスタr1とr2の符号付き加算
r1
r1+r2 |
演算結果の値に従い以下のようになる。
| OF |
1:結果が-32768〜32767の範囲外 |
|
0:範囲内 |
| SF |
1:負(第15ビットが1) |
|
0:正(第15ビットが0) |
| ZF |
1:ゼロ(全てのビットが0) |
| |
0:ゼロ以外 |
|
| ADDA r,adr[,x] |
レジスタrと主記憶装置(アドレスadr[,x])の内容を符号付加算
r
r+adr[,x]の内容 |
|
算術減算 |
SUBA r1,r2 |
レジスタr1とr2の符号付き減算
r1
r1-r2 |
|
SUBA r,adr[,x] |
レジスタrと主記憶装置(アドレスadr[,x])の内容を符号付減算
r
r-adr[,x]の内容 |
|
論理加算 |
ADDL r1,r2 |
レジスタr1とr2の符号無し加算
r1
r1+r2 |
演算結果の値に従い以下のようになる。
| OF |
1:結果が0〜65535の範囲外 |
|
0:範囲内 |
| SF |
1:第15ビットが1)のとき |
|
0:第15ビットが0)のとき |
| ZF |
1:ゼロ(全てのビットが0) |
| |
0:ゼロ以外 |
|
| ADDL r,adr[,x] |
レジスタrと主記憶装置(アドレスadr[,x])の内容を符号無し加算
r
r+adr[,x]の内容 |
| 論理減算 |
SUBL r1,r2 |
レジスタr1とr2の符号無し減算
r1
r1-r2 |
|
SUBL r,adr[,x] |
レジスタrと主記憶装置(アドレスadr[,x])の内容を符号無し減算
r
r-adr[,x]の内容 |
| 論理積 |
AND r1,r2 |
レジスタr1とr2のビット毎の論理積を計算。結果はr1に格納。 |
演算結果の値に従い以下のようになる。
| OF |
0:常にゼロが設定される。 |
| SF |
1:第15ビットが1)のとき |
|
0:第15ビットが0)のとき |
| ZF |
1:ゼロ(全てのビットが0) |
|
0:ゼロ以外 |
|
| AND r,adr[,x] |
レジスタrと主記憶装置(アドレスadr[,x])の内容のビット毎の論理積を計算。結果は
r1に格納。 |
| 論理和 |
OR r1,r2 |
レジスタr1とr2のビット毎の論理和を計算。結果はr1に格納。 |
| OR r,adr[,x] |
レジスタrと主記憶装置(アドレスadr[,x])の内容のビット毎の論理和を計算。結果は
r1に格納。 |
| 排他的論理和 |
XOR r1,r2 |
レジスタr1とr2のビット毎の排他的論理和を計算。結果はr1に格納。 |
|
XOR r,adr[,x] |
レジスタrと主記憶装置(アドレスadr[,x])の内容のビット毎の排他的論理和を計算。結果は
r1に格納。 |
|
算術比較 |
CPA r1,r2 |
レジスタr1とr2を符号付き整数として比較を行う。比較の結果は、FRに設定。 |
2つの整数の比較(以下の演算)を行う。r1-r2
| r-adr[,x]の内容 |
|
| OF |
0:常にゼロが設定される。 |
| SF |
1:負(第15ビットが1)のとき) |
|
0:正(第15ビットが0)のとき) |
| ZF |
1:等しい(全てのビットが0) |
|
0:等しくない |
|
|
CPA r,adr[,x] |
レジスタrと主記憶装置(アドレスadr[,x])を符号付き整数として比較。比較の結果は、FRに設定。 |
|
論理比較 |
CPL r1,r2 |
レジスタr1とr2を符号無し整数として比較。比較の結果は、FRに設定。 |
|
CPL r,adr[,x] |
レジスタrと主記憶装置(アドレスadr[,x])を符号無し整数として比較。比較の結果は、FRに設定。 |
|
算術左シフト |
SLA r,adr[,x] |
レジスタrの内容を符号ビットを除き、adr[,x]の番地分、各ビットを左へシフト。空いたビットには0が入る。 |
| OF |
:最後に送り出されたビットの値 |
| SF |
1:負の時(第15ビットが1) |
|
0:正の時(第15ビットが0) |
| ZF |
1:ゼロの時(全てのビットが0) |
|
0:ゼロ以外 |
|
| 算術右シフト |
SRA r,adr[,x] |
レジスタrの内容を符号ビットを除き、adr[,x]の番地分、各ビットを右へシ
フト。空いたビットには符号ビットと同じ値が入る。 |
| 論理左シフト |
SLL r,adr[,x] |
レジスタrの内容を、adr[,x]の番地分、各ビットを左へシ
フト。空いたビットには0が入る。 |
| 論理右シフト |
SRL r,adr[,x] |
レジスタrの内容を、adr[,x]の番地分、各ビットを左へシ
フト。空いたビットには0が入る。 |
| 正分岐 |
JPL adr[,x] |
フラグレジスタのSFとZFの両方が0の時(比較の結果、正)、adr[,x]のアドレスへ分岐(実行が移動)する。 |
変化無し |
| 負分岐 |
JMI adr[,x] |
フラグレジスタのSFが1の時(比較の結果、負)、adr[,x]のアドレスへ分岐(実行が移動)する。 |
|
非零分岐 |
JNZ adr[,x] |
フラグレジスタのZFが0の時(比較の結果、等しくない)、adr[,x]のアドレスへ分岐(実行が移動)する。 |
|
零分岐 |
JZE adr[,x] |
フラグレジスタのZFが1の時(比較の結果、等しい)、adr[,x]のアドレスへ分岐(実行が移動)する。 |
|
オーバーフロー分岐 |
JOV adr[,x] |
フラグレジスタのOFが1の時(オーバーフロー)、adr[,x]のアドレスへ分岐(実行が移動)する。 |
|
無条件分岐 |
JUMP adr[,x] |
無条件に、adr[,x]のアドレスへ分岐(実行が移動)する。 |
|
プッシュ |
PUSH adr[,x] |
スタック領域に、adr[,x]のアドレスを格納する。 |
変化無し |
|
ポップ |
POP r |
スタック領域からデータを取りだし、レジスタrに格納 |
| コール |
CALL adr[,x] |
サブルーチンを呼び出す。adr[,x]に実行が移る。 |
変化無し |
| リターン |
RET |
サブルーチンから呼び出し元のルーチンへ実行が移る。 |
| スーパーバイザーコール |
SVC adr[,x] |
OSの機能を呼び出す。マクロ命令のINやOUTで使われている。 |
不定。OSに依存する。 |
| ノーオペレーション |
NOP |
なにも実行されない命令。 |
変化しない。 |