1.1 オートマトンと状態遷移図

6.2 機械語
(1)ハードウェア命令の形式の例
レジスタは4ビット表現(8個)なお、インデックスレジスタとしてR0は使えない
(2)命令の種類例
コード
LOAD
STOR
LI
ADD
SUB
MULT
DIV
AND
OR
XOR
EQV
IMP
ADDI
SUBI
MULTI
DIVI
ANDI
ORI
XORI
EQVI
IMPI
A0
A2
B0
81
82
83
84
88
89
8A
8B
8C
91
92
93
94
98
99
9A
9B
9C
例
LOAD
STOR
LI
ADD
SUB
MULT
DIV
AND
OR
XOR
EQV
IMP
ADDI
SUBI
MULTI
DIVI
ANDI
ORI
XORI
EQVI
JMPI
示
Label,1,2
Label,1,2
Label,1,2
Label,1,2
Label,1,2
Label,1,2
Label,1,2
Label,1,2
Label,1,2
Label,1,2
Label,1,2
Label,1,2
Label,1,2
Label,1,2
Label,1,2
Label,1,2
Label,1,2
Label,1,2
Label,1,2
Label,1,2
Label,1,2
意
味
(X2)+Labelのアドレスの内容をレジスタX1にロード
レジスタX1の内容を(X2)+Labelのアドレスに格納
(X2)+Labelの値をレジスタX1にロード
レジスタX1に(X2)+Labelの内容を加算
レジスタX1から(X2)+Labelの内容を減算
レジスタX1に(X2)+Labelの内容を乗算
レジスタX1を(X2)+Labelの内容で除算
レジスタX1と(X2)+Labelの内容でAND演算
レジスタX1と(X2)+Labelの内容でOR演算
レジスタX1と(X2)+Labelの内容でXOR演算
レジスタX1と(X2)+Labelの内容でEQV演算
レジスタX1と(X2)+Labelの内容でIMP演算
レジスタX1に(X2)+Labelの値を加算
レジスタX1から(X2)+Labelの値を減算
レジスタX1に(X2)+Labelの値を乗算
レジスタX1を(X2)+Labelの値で除算
レジスタX1と(X2)+Labelの値でAND演算
レジスタX1と(X2)+Labelの値でOR演算
レジスタX1と(X2)+Labelの値でXOR演算
レジスタX1と(X2)+Labelの値でEQV演算
レジスタX1と(X2)+Labelの値でIMP演算
(2)命令の種類例
コード
例
示
JMP
JP
E0 JMP
E1 JP
Label,1,2
Label,1,2
JZ
E2 JZ
Label,1,2
JM
E3 JM
Label,1,2
OUT
IN
MOVR
MINUS
NOT
SVC
60
61
50
21
28
01
1
1
1,2
1
1
0
OUT
IN
MOVR
MINUS
NOT
SVC
(以下、アセンブラ命令)
DC
-- DC
5
DA
-- DA
6
意
味
(X2)+Labelのアドレスにジャンプ
現ステータスが正であれば(X2)+Labelのアドレスに
ジャンプ
現ステータスが零であれば(X2)+Labelのアドレスに
ジャンプ
現ステータスが負であれば(X2)+Labelのアドレスに
ジャンプ
レジスタX1を表示
レジスタX1に入力
レジスタX2の内容をレジスタX1に移す
レジスタX1の符号を逆転
レジスタX1のNOT
スーパバイザCALL
(エミュレータではプログラム終了のみサポート)
1ワードの領域を宣言し,その値を5にする
6ワードの領域を宣言する
(エミュレータでは初期値は0設定される)