Chapter 16
Appendix
XVI - 18 Instruction Set
CALL label
PC + 5 → mem32(SP),D0 → mem32(SP-4),
D1→ mem32(SP-8),A0→ mem32(SP-12),
A1→ mem32(SP-16),MDR→ mem32(SP-20),
LIR→ mem32(SP-24),LAR→ mem32(SP-28),
SP - imm8(zero_ext) → SP,PC + 5 → MDR,
PC + d16(sign_ext) → PC
PC + 5 → mem32(SP),reg1→ mem32(SP-4),
D0→ mem32(SP-8),D1→ mem32(SP-12),
A0→ mem32(SP-16),A1→ mem32(SP-20),
MDR→ mem32(SP-24),LIR→ mem32(SP-28),
LAR→ mem32(SP-32),
SP - imm8(zero_ext) → SP,PC + 5 → MDR,
PC + d16(sign_ext) → PC
PC + 5 → mem32,(SP)reg1→ mem32(SP-4),
reg2 → mem32(SP-8),D0→ mem32(SP-12),
D1→ mem32(SP-16),A0→ mem32(SP-20),
A1→ mem32(SP-24),MDR→ mem32(SP-28),
LIR→ mem32(SP-32),LAR→ mem32(SP-36),
SP - imm8(zero_ext) → SP,PC + 5 → MDR,
PC + d16(sign_ext) → PC
PC + 5 → mem32(SP),reg1→ mem32(SP-4),
reg2→ mem32(SP-8),reg3→ mem32(SP-12),
D0→ mem32(SP-16),D1→ mem32(SP-20),
A0→ mem32(SP-24),A1→ mem32(SP-28),
MDR→ mem32(SP-32),LIR→ mem32(SP-36),
LAR→ mem32(SP-40),
SP - imm8(zero_ext) → SP,PC + 5 → MDR,
PC + d16(sign_ext) → PC
PC + 5 →mem32(SP),D2→ mem32(SP-4),
D3→ mem32(SP-8),A2→ mem32(SP-12),
A3→ mem32(SP-16),D0→ mem32(SP-20),
D1→ mem32(SP-24),A0→ mem32(SP-28),
A1→ mem32(SP-32),MDR→ mem32(SP-36),
LIR→ mem32(SP-40),LAR→ mem32(SP-44)
SP - imm8(zero_ext) → SP,PC + 5 → MDR,
PC+d16(sign_ext) → PC,
PC+7 → mem32(SP),
SP - imm8(zero_ext) → SP,PC + 7 → MDR,
PC + d32 → PC
PC + 7 → mem32(SP),reg1 → mem32(SP-4),
SP - imm8(zero_ext) → SP,PC + 7 → MDR,
PC + d32 → PC
Group
Mnemonic
Operation Notes
MN1030/MN103S SERIES INSTRUCTION SET
CALL
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
5
5
5
5
5
7
7
9
10
11
12
13
4*
4*
S4
S6
1
1100
1101
2
1101
1101
3
<d16.
<d32
4
....
....
5
....
....
6
....>
....
Machine Code
Flag
Code
Size
Cycle
For
-mat
7
<regs
....
8
....>
....
9
<imm8
....
10
....>
....>
11
<regs
12
....>
13
<imm8
14
....>
VF
CF NF
ZF
If label = (d16,PC),
registers specified with regs = 7
If label = (d16,PC),
registers specified with regs = 8
If label = (d16,PC),
registers specified with regs = 9
If label = (d16,PC),
registers specifiied with regs = 10
If label = (d16,PC),
registers specified with regs = 11
If label = (d32,PC),
registers specified with regs = 0
*: 5 cycyles for AM30
If label = (d32,PC),
register specified with regs = 1
*: 5 cycles for AM30