機能 |
書式 |
動作内容 |
フラグレジスタの変化 |
ロード |
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 |
なにも実行されない命令。 |
変化しない。 |