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 |
- |
|