Il Set di istruzioni dei PIC18
|
LITERAL OPERATIONS
Le operazioni con literal comprendono ora :
- una LSFR per il carico diretto di un valore nel registro di
indirizzamento indiretto
- MOVLB che modifica direttamente i bit di switch dei banchi.
- una istruzione di moltiplicazione a 8 bit (MULLW), che consente di
operare tra il registro W ed un numero fisso.
La sintassi di base delle istruzioni non è modificata rispetto alla famiglia
16F, così pure sono usati i vecchi mnemonici .
Va però notato che l' istruzion LSFR si sviluppa su due word a 16 bit
ciascuna, in modo da avere un campo di indirizzamento diretto di 12 bit (FFFh,
4 kword).
Mnemonici
e
Operandi
|
Schema
operativo |
Cicli |
16-Bit
Instruction Word |
Status
Affected
|
Note |
LITERAL
OPERATIONS |
ADDLW k |
Add Literal and WREG |
1 |
0000 1111 kkkk kkkk |
C,DC,Z
OV, N |
|
ANDLW k |
AND Literal with WREG |
1 |
0000 1011 kkkk kkkk |
Z,N |
|
IORLW k |
Inclusive OR Literal with WREG |
1 |
0000 1001 kkkk kkkk |
Z,N |
|
LFSR
f,k |
Move Literal (12-bit)
1st word
2nd word to FSR(f)
|
2 |
1110 1110 00ff kkkk
1111 0000 kkkk kkkk |
- |
|
MOVLB k |
Move Literal to BSR<3:0> |
1 |
0000 0001 0000 kkkk |
- |
|
MOVLW k |
Move Literal to WREG |
1 |
0000 1110 kkkk kkkk |
- |
|
MULLW k |
Multiply Literal with WREG |
1 |
0000 1101 kkkk kkkk |
- |
|
SUBLW k |
Subtract WREG from Literal |
1 |
0000 1000 kkkk kkkk |
C,DC,Z
OV, N |
|
XORLW k |
Exclusive OR Literal with WREG |
1 |
0000 1010 kkkk kkkk |
Z,N |
|
DATA MEMORY <-> PROGRAM
MEMORY OPERATIONS
Del tutto nuove le istruzioni relative al trattamento di tabelle, non
presenti nel set 16F.
Mnemonici
e
Operandi
|
Schema
operativo |
Cicli |
16-Bit
Instruction Word |
Status
Affected
|
Note |
DATA
MEMORY <-> PROGRAM MEMORY
OPERATIONS |
TBLRD* |
Table Read |
2 |
0000 0000 0000 1000 |
- |
|
TBLRD*+ |
Table Read with Post-Increment |
|
0000 0000 0000 1001 |
- |
|
TBLRD*- |
Table Read with Post-Decrement |
|
0000 0000 0000 1010 |
- |
|
TBLRD+* |
Table Read with Pre-Increment |
|
0000 0000 0000 1011 |
- |
|
TBLWT* |
Table Write |
2 |
0000 0000 0000 1100 |
- |
|
TBLWT*+ |
Table Write with Post-Increment |
|
0000 0000 0000 1101 |
- |
|
TBLWT*- |
Table Write with Post-Decrement |
|
0000 0000 0000 1110 |
- |
|
TBLWT+* |
Table Write with Pre-Increment |
|
0000 0000 0000 1111 |
- |
|