P1 OpCodes - Rev. 1.0.0 - 27 May 2010 - (C) 2010-2019 O.T., All Rights Reserved
|
AFFECTED FLAGS |
BIT |
INSTRUCTION |
||||||||||||||||||||||||||||||||
|
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
ASSEMBLY |
DESCRIPTION |
|
|
CY,Z |
0 |
0 |
0 |
0 |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
NOP |
Not Operation |
|
CY,Z |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
OPB |
OPB |
OPB |
OPB |
OPA |
OPA |
OPA |
OPA |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
A = OPA + OPB + CY |
Add OPB to OPA with carry |
|
CY,Z |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
OPB |
OPB |
OPB |
OPB |
OPA |
OPA |
OPA |
OPA |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
A = OPA + OPB |
Add OPB to OPA |
|
CY,Z |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
OPB |
OPB |
OPB |
OPB |
OPA |
OPA |
OPA |
OPA |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
A = OPA - OPB - CY |
Sub OPB to OPA with carry |
|
CY,Z |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
OPB |
OPB |
OPB |
OPB |
OPA |
OPA |
OPA |
OPA |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
A = OPA - OPB |
Sub OPB to OPA |
|
CY,Z |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
OPB |
OPB |
OPB |
OPB |
X |
X |
X |
X |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
A = OPB-- |
Dec OPB |
|
CY,Z |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
OPB |
OPB |
OPB |
OPB |
X |
X |
X |
X |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
A = OPB++ |
Inc OPB |
|
CY,Z |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
OPB |
OPB |
OPB |
OPB |
OPA |
OPA |
OPA |
OPA |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
A = OPB < OPA < CY |
Shift left OPB OPA times (CY > LSB) |
|
CY,Z |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
OPB |
OPB |
OPB |
OPB |
OPA |
OPA |
OPA |
OPA |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
A = OPB < OPA |
Shift left OPB OPA times (0 > LSB) |
|
Z |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
OPB |
OPB |
OPB |
OPB |
OPA |
OPA |
OPA |
OPA |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
A = OPB & OPA |
OPA AND OPB |
|
Z |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
OPB |
OPB |
OPB |
OPB |
OPA |
OPA |
OPA |
OPA |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
A = OPB | OPA |
OPA OR OPB |
|
Z |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
OPB |
OPB |
OPB |
OPB |
OPA |
OPA |
OPA |
OPA |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
A = OPB ^ OPA |
OPA XOR OPB |
| Z,LTE,GTE,NE,E,G,L |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
OPB |
OPB |
OPB |
OPB |
OPA |
OPA |
OPA |
OPA |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
CMP OPA,OPB |
Compare OPA with OPB |
|
Z |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
OPB |
OPB |
OPB |
OPB |
OPA |
OPA |
OPA |
OPA |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
A = OPA > OPB > CY |
Shift right OPB OPA times (CY > LSB) |
|
Z |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
OPB |
OPB |
OPB |
OPB |
OPA |
OPA |
OPA |
OPA |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
A = OPA > OPB |
Shift right OPB OPA times (0 > LSB) |
|
- |
0 |
0 |
1 |
0 |
X |
X |
X |
X |
OPB |
OPB |
OPB |
OPB |
CC |
CC |
CC |
CC |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
Jcc OPB/I |
Conditional or unconditional jump |
|
- |
0 |
0 |
1 |
1 |
X |
R |
R |
R |
OPB |
OPB |
OPB |
OPB |
X |
X |
X |
X |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
R = OPB/I |
Copy to register R the OPB contents |
|
- |
0 |
1 |
0 |
0 |
X |
0 |
0 |
0 |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
WAIT = I |
Preset Long Wait State timer |
|
- |
0 |
1 |
0 |
0 |
X |
0 |
0 |
1 |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
FLUSHOUT |
Request an USB transfer for FIFO read |
|
- |
0 |
1 |
0 |
0 |
X |
0 |
1 |
0 |
OPB |
OPB |
OPB |
OPB |
X |
X |
X |
X |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
WAIT OPB/I |
Start Short Wait State |
|
- |
0 |
1 |
0 |
0 |
X |
0 |
1 |
1 |
OPB |
OPB |
OPB |
OPB |
X |
X |
X |
X |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
AUX = OPB/I |
OPB contents to the AUX port |
|
- |
0 |
1 |
0 |
0 |
X |
1 |
0 |
0 |
OPB |
OPB |
OPB |
OPB |
X |
X |
X |
X |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
EA = OPB/I |
Set EA to the OPB contents |
|
- |
0 |
1 |
0 |
0 |
X |
1 |
0 |
1 |
OPB |
OPB |
OPB |
OPB |
X |
X |
X |
X |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
EB = OPB/I |
Set EB to the OPB contents |
|
- |
0 |
1 |
0 |
0 |
X |
1 |
1 |
0 |
OPB |
OPB |
OPB |
OPB |
X |
X |
X |
X |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
JOB OPB/I |
Jump on bit flag |
|
BIT |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
OPB |
OPB |
OPB |
OPB |
B |
B |
B |
B |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
BTZ OPB,B |
Test bit (0 is true) B on OPB |
|
BIT |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
OPB |
OPB |
OPB |
OPB |
B |
B |
B |
B |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
BTNZ OPB,B |
Test bit (1 is true) B on OPB |
|
- |
0 |
1 |
0 |
1 |
X |
P |
P |
P |
OPB |
OPB |
OPB |
OPB |
M |
X |
X |
X |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
P = OPB/I |
Move to peripheral P the OPB contents |
|
- |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
HALT |
HALT the processor |
|
- |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
OPB |
OPB |
OPB |
OPB |
POL |
P |
P |
P |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
MATCH |
WAIT until MATCH condition is satisfied |
|
- |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
OPB |
OPB |
OPB |
OPB |
X |
X |
X |
X |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
MTCHBIT |
Bit enable for MATCH instruction |
|
- |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
OPB |
OPB |
OPB |
OPB |
X |
X |
X |
X |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
X/I |
MTCHPOL |
Bit polarity for MATCH instruction |
OPA - OPB Codes
|
A-B |
ASSEMBLY |
DESCRIPTION |
|||
|
0 |
0 |
0 |
0 |
R0 |
Register 0 |
|
0 |
0 |
0 |
1 |
R1 |
Register 1 |
|
0 |
0 |
1 |
0 |
R2 |
Register 2 |
|
0 |
0 |
1 |
1 |
R3 |
Register 3 |
|
0 |
1 |
0 |
0 |
R4 |
Register 4 |
|
0 |
1 |
0 |
1 |
R5 |
Register 5 |
|
0 |
1 |
1 |
0 |
R6 |
Register 6 |
|
0 |
1 |
1 |
1 |
R7 |
Register 7 |
|
1 |
0 |
0 |
0 |
A |
ALU register contents |
|
1 |
0 |
0 |
1 |
FIFO |
FIFO data |
|
1 |
0 |
1 |
0 |
P0 |
Port 0 |
|
1 |
0 |
1 |
1 |
P1 |
Port 1 |
|
1 |
1 |
0 |
0 |
P2 |
Port 2 |
|
1 |
1 |
0 |
1 |
P3 |
Port 3 |
|
1 |
1 |
1 |
0 |
nnnn |
Immediate value |
|
1 |
1 |
1 |
1 |
EB |
External bus |
CC Jump Conditional Codes
|
CC |
FLAGS |
ASSEMBLY |
DESCRIPTION |
|||
|
0 |
0 |
0 |
0 |
NCY |
JNC OPB |
Carry is 0 |
|
0 |
0 |
0 |
1 |
CY |
JC OPB |
Carry is 1 |
|
0 |
0 |
1 |
0 |
L |
JL OPB |
Less |
|
0 |
0 |
1 |
1 |
G |
JG OPB |
Greather |
|
0 |
1 |
0 |
0 |
E |
JE OPB |
Equal |
|
0 |
1 |
0 |
1 |
NE |
JNE OPB |
Not Equal |
|
0 |
1 |
1 |
0 |
GTE |
JGTE OPB |
Greather Than Equal |
|
0 |
1 |
1 |
1 |
LTE |
JLTE OPB |
Less Than Equal |
|
1 |
0 |
0 |
0 |
NZ |
JNZ OPB |
Not zero |
|
1 |
0 |
0 |
1 |
Z |
JZ OPB |
Zero |
|
1 |
0 |
1 |
0 |
FE |
JFE OPB |
FIFO empty |
|
1 |
0 |
1 |
1 |
FF |
JFF OPB |
FIFO full |
|
1 |
1 |
0 |
0 |
TRUE |
JMP OPB |
Absolute jump |
|
1 |
1 |
0 |
1 |
NTXE |
|
Not FIFO empty |
|
1 |
1 |
1 |
0 |
NRXE |
|
Not FIFO full |
|
1 |
1 |
1 |
1 |
FALSE |
|
|
P Output Peripheral Codes
|
P |
ASSEMBLY |
DESCRIPTION |
||
|
0 |
0 |
0 |
P0 |
Port 0 |
|
0 |
0 |
1 |
P1 |
Port 1 |
|
0 |
1 |
0 |
P2 |
Port 2 |
|
0 |
1 |
1 |
P3 |
Port 3 |
|
1 |
0 |
0 |
FIFO |
FIFO output |
|
1 |
0 |
1 |
FIFO |
Read FIFO contents |
R R0:R7
B 0:15
X/I Indifferent or Immediate value
X Indifferent value (set to 0)
I Immediate value
EA External address
EB External bus (data)
M 0=Toggle, 1=Set
POL 0=1 is true, 1=0 is true