M32の仕様


諸元命令形式実効番地命令セットその他

o  M32の諸元

  1. 32ビット/語.
  2. アドレスは20ビット.(アドレス空間は1M語)
  3. レジスタは8個 (r0〜r7). ただし, r7はスタックポインタとして使用.
  4. プログラムカウンタはPC.
  5. 条件コードレジスタ (Condition Code Register)は4種類.
    N: negative,Z: zero, V: overflow, C: carry
[ 構成図 ]


o  命令形式


o  番地指定方式の種類

間接番地指定 相対番地指定 インデックス修飾  記法   実効番地  JAVAによるデモ
I R X EA 背景あり 背景なし
--- --- --- A A デモ デモ
--- --- あり A(x) A+(x) デモ デモ
--- あり --- %A .+1+A デモ デモ
--- あり あり %A(x) .+1+A+(x) デモ デモ
あり --- --- @A (A) デモ デモ
あり --- あり @A(x) (A+(x)) デモ デモ
あり あり --- @%A (.+1+A) デモ デモ
あり あり あり @%A(x) (.+1+A+(x)) デモ デモ


o  命令セット

ニーモニック 命令コード 動作の説明 条件コード
NZVC
LOAD 0000 (EA) → r **00
STORE 0001 (r) → EA **00
ADD 0010 (r) + (EA) → r ****
SUB 0011 (r) - (A) → r ****
AND 0100 (r) ∧ (EA) → r **00
OR 0101 (r) ∨ (EA) → r **00
EX 0110 (r) ○+ (EA) → r **00
CMP 0111 (r) - (EA) ****
ADDR 1000000 (rd) + (rs) → rd ****
SUBR 1000001 (rd) - (rs) → rd ****
MOVR 1000010 (rs) → rd **00
ANDR 1000011 (rd) ∧ (rs) → rd **00
ORR 1000100 (rd) ∨ (rs) → rd **00
EXR 1000101 (rd) ○+ (rs) → rd **00
CMPR 1000110 (rd) - (rs) ****
COMR 1000111 ¬(rs) → rd **00
NEGR 1001000 ¬(rs) → rd ****
SLL 1001001 (r)をCビット左論理シフト→ r **0*
SRL 1001010 (r)をCビット右論理シフト→ r **0*
SLA 1001011 (r)をCビット左算術シフト→ r ****
SRA 1001100 (r)をCビット右算術シフト→ r ****
RL 1001101 (r)をCビット左回転シフト→ r **0*
RR 1001110 (r)をCビット右回転シフト→ r **0*
INCRI 1010000 (r) + C → r ****
DECRI 1010001 (r) - C → r ****
LOADI 1010010 C → r **00
JUMP 1100000 EA → PC ----
JOP 1100000 ¬N ∧ ¬Z ⇒  EA → PC ----
JOZ 1100001 Z  ⇒  EA → PC ----
JON 1100010 N  ⇒  EA → PC ----
JNP 1100100 N ∨ Z  ⇒  EA → PC ----
JNZ 1100101 ¬Z  ⇒  EA → PC ----
JNN 1100110 ¬N  ⇒  EA → PC ----
JSR 1101000 (r7) - 1 → r7, ・ + 1 → (r7),
EA → PC
----
JOC 1101001 C  ⇒  EA → PC ----
JOV 1101010 V  ⇒  EA → PC ----
JNC 1101011 ¬C  ⇒  EA → PC ----
JNV 1101100 ¬V  ⇒  EA → PC ----
RFS 1110000 ((r7)) → PC, (r7) + 1 → r7 ----
RFI 1110000 ((r7)) → PSR, (r7) + 1 → r7,
((r7)) → PC, (r7) + 1 → r7
****
INTEN 1111010 1 → INTMODE ----
INTDIS 1111011 0 → INTMODE ----
TRAP 1111100 (r7 - 1 → r7, ・ + 1 → (r7),
(r7) - 1 → r7, PSR → (r7),
0 → INTMODE, (EA) → PC
----
HALT 1111111 実行を停止する ----


o  参考文献

所真理雄著:『計算システム論』, 岩波書店.1990.