3 instruction set, Xvii - 16 – Panasonic MN101C77C User Manual
Page 516

Chapter 17 Appendices
XVII - 16
Instruction Set
1
7-3 Instruction Set
MN101C SERIES INSTRUCTION SET
Group
Data Move Instructions
Mnemonic
Operation
Flag
VF NF CF ZF
Code
Size
Cycle Re-
peat
Machine Code
Notes
1
2
3
4
5
6
7
8
9
10
11
Ext.
MOV
--
--
--
--
2
1
1010 DnDm
MOV imm8,Dm
imm8
→
Dm
--
--
--
--
4
2
1010 DmDm <#8.
...>
MOV Dn,PSW
Dn
→
PSW
3
3
1001 01Dn
0010
MOV PSW,Dm
PSW
→
Dm
--
--
--
--
3
2
0001 01Dm
0010
MOV (An),Dm
mem8(An)
→
Dm
--
--
--
--
2
2
0100 1ADm
MOV (d8,An),Dm
mem8(d8+An)
→
Dm
--
--
--
--
4
2
0110 1ADm ...> MOV (d16,An),Dm mem8(d16+An) → Dm -- -- -- -- 7 4 0110 1ADm .... .... ...> 0010 MOV (d4,SP),Dm mem8(d4+SP) → Dm -- -- -- -- 3 2 0110 01Dm MOV (d8,SP),Dm *1 *2 *3 mem8(d8+SP) → Dm -- -- -- -- 5 3 0110 01Dm ...> 0010 MOV (d16,SP),Dm mem8(d16+SP) → Dm -- -- -- -- 7 4 0110 00Dm .... .... ...> 0010 MOV Dn,(io8) Dn → mem8(IOTOP+io8) -- -- -- -- 4 2 0111 00Dn ...> MOV Dn,(abs8) Dn → mem8(abs8) -- -- -- -- 4 2 0101 01Dn MOV Dn,(abs12) Dn → mem8(abs12) -- -- -- -- 5 2 0101 00Dn ...> MOV Dn,(abs16) Dn → mem8(abs16) -- -- -- -- 7 4 1101 00Dn .... ...> 0010 MOV imm8,(io8) imm8 → mem8(IOTOP+io8) -- -- -- -- 6 3 0000 0010 ...> <#8. ...> MOV imm8,(abs8) imm8 → mem8(abs8) -- -- -- -- 6 3 0001 0100 <#8. ...> MOV imm8,(abs12) imm8 → mem8(abs12) -- -- -- -- 7 3 0001 0101 ...> <#8. ...> MOV imm8,(abs16) imm8 → mem8(abs16) -- -- -- -- 9 5 1101 1001 .... ...> <#8. ...> 0011 MOV Dn,(HA) Dn → mem8(HA) -- -- -- -- 2 2 1101 00Dn MOVW (abs16),DWm mem16(abs16) → DWm -- -- -- -- 7 5 1100 011d .... ...> 0010 MOVW (abs16),Am mem16(abs16) → Am -- -- -- -- 7 5 1100 010a .... ...> 0010 MOVW DWn,(Am) DWn → mem16(Am) -- -- -- -- 2 3 1111 00aD MOVW An,(Am) *4 An → mem16(Am) -- -- -- -- 3 4 1111 10aA 0010 MOVW DWn,(d4,SP) DWn → mem16(d4+SP) -- -- -- -- 3 3 1111 011D MOVW An,(d4,SP) An → mem16(d4+SP) -- -- -- -- 3 3 1111 010A MOVW DWn,(d8,SP) DWn → mem16(d8+SP) -- -- -- -- 5 4 1111 011D ...> 0010 MOVW An,(d8,SP) *2 *2 *3 *3 An → mem16(d8+SP) -- -- -- -- 5 4 1111 010A ...> 0010 MOVW DWn,(d16,SP) DWn → mem16(d16+SP) -- -- -- -- 7 5 1111 001D .... .... ...> 0010 MOVW An,(d16,SP) An → mem16(d16+SP) -- -- -- -- 7 5 1111 000A .... .... ...> 0010 MOVW DWn,(abs8) DWn → mem16(abs8) -- -- -- -- 4 3 1101 011D MOVW An,(abs8) An → mem16(abs8) -- -- -- -- 4 3 1101 010A MOVW DWn,(abs16) DWn → mem16(abs16) -- -- -- -- 7 5 1101 011D .... ...> 0010 MOVW An,(abs16) An → mem16(abs16) -- -- -- -- 7 5 1101 010A .... ...> 0010 MOVW DWn,(HA) DWn → mem16(HA) -- -- -- -- 2 3 1001 010D MOVW An,(HA) An → mem16(HA) -- -- -- -- 2 3 1001 011A MOVW imm8,DWm sign(imm8) → DWm -- -- -- -- 4 2 0000 110d <#8. ...> MOVW imm8,Am *5 *6 *1 d8 sign-extension *2 d4 zero-extension *4 A=An, a=Am *6 #8 zero-extension zero(imm8) → Am -- -- -- -- 4 2 0000 111a <#8. ...> MOVW imm16,DWm imm16 → DWm -- -- -- -- 6 3 1100 111d <#16 .... .... ...> MOVW (An),DWm MOVW mem16(An) → DWm -- -- -- -- 2 3 1110 00Ad MOVW (An),Am mem16(An) → Am -- -- -- -- 3 4 1110 10Aa 0010 MOVW (d4,SP),DWm mem16(d4+SP) → DWm -- -- -- -- 3 3 1110 011d MOVW (d4,SP),Am mem16(d4+SP) → Am -- -- -- -- 3 3 1110 010a MOVW (d8,SP),DWm mem16(d8+SP) → DWm -- -- -- -- 5 4 1110 011d ...> 0010 MOVW (d8,SP),Am *4 *2 *2 *3 *3 mem16(d8+SP) → Am -- -- -- -- 5 4 1110 010a ...> 0010 MOVW (d16,SP),DWm mem16(d16+SP) → DWm -- -- -- -- 7 5 1110 001d .... .... ...> 0010 MOVW (d16,SP),Am mem16(d16+SP) → Am -- -- -- -- 7 5 1110 000a .... .... ...> 0010 MOVW (abs8),DWm mem16(abs8) → DWm -- -- -- -- 4 3 1100 011d MOVW (abs8),Am mem16(abs8) → Am -- -- -- -- 4 3 1100 010a MOV (io8),Dm mem8(IOTOP+io8) → Dm -- -- -- -- 4 2 0110 00Dm ...> MOV (abs8),Dm mem8(abs8) → Dm -- -- -- -- 4 2 0100 01Dm MOV (abs12),Dm mem8(abs12) → Dm -- -- -- -- 5 2 0100 00Dm ...> MOV (abs16),Dm mem8(abs16) → Dm -- -- -- -- 7 4 1100 00Dm .... ...> 0010 MOV Dn,(Am) Dn → mem8(Am) -- -- -- -- 2 2 0101 1aDn MOV Dn,(d8,Am) Dn → mem8(d8+Am) -- -- -- -- 4 2 0111 1aDn ...> MOV Dn,(d16,Am) Dn → mem8(d16+Am) -- -- -- -- 7 4 0111 1aDn .... .... ...> 0010 MOV Dn,(d4,SP) Dn → mem8(d4+SP) -- -- -- -- 3 2 0111 01Dn MOV Dn,(d8,SP) *1 *2 *3 Dn → mem8(d8+SP) -- -- -- -- 5 3 0111 01Dn ...> 0010 MOV Dn,(d16,SP) Dn → mem8(d16+SP) -- -- -- -- 7 4 0111 00Dn .... .... ...> 0010 MOV Dn,Dm Dn → Dm
*3 d8 zero-extension
*5 #8 sign-extension