- 1792 octets (16F84A)
- 3584 octets (16F628A)
- 7168 octets (16F88)
- 14 336 octets (16F876A - 16F886)
- 1024 instructions (16F84A)
- 2048 instructions (16F628A)
- 4096 instructions (16F88)
- 8192 instructions (16F876A - 16F886)
- Jeu d'instructions
Mnémonique , opérande
|
Description
|
bit du registre STATUSaffecté
|
nombre de cycles
|
MOVLW k | k (8 bits) est chargé dans (W) |
-
|
1
|
ADDLW k | Additionne k (8 bits) et (W) et place le résultat dans (W) |
C, DC , Z
|
1
|
SUBLW k | Soustrait W de k (8 bits) et place le résultat dans (W) k - (W) -> (W) |
C, DC , Z
|
1
|
ANDLW k | Réalise un ET logique entre k (8 bits) et (W), et place le résultat dans (W) |
Z
|
1
|
IORLW k | Réalise un OU logique (inclusif) entre k (8 bits) et (W), et place le résultat dans (W) |
Z
|
1
|
XORLW k | Réalise un OU exclusif entre k (8 bits) et (W), et place le résultat dans (W) |
Z
|
1
|
Mnémonique , opérande
|
Description
|
bit du registre STATUS affecté
|
nombre de cycles
|
GOTO L | Branchement à l'adresse L |
-
|
2
|
CALL L | Appelle un sous-programme (subroutine) situé à l'adresse L |
-
|
2
|
RETURN | Retour de sous-programme |
-
|
2
|
RETLW k | Retour de sous-programme, avec chargement de la valeur littérale k (8 bits) dans (W) |
-
|
2
|
RETFIE | Retour de sous-programme d'interruption |
-
|
2
|
CLRWDT | Efface le Watchdog |
/TO, /PD
|
1
|
SLEEP | Place le microcontrôleur en mode sommeil |
/TO, /PD
|
1
|
Mnémonique , opérande
|
Description
|
bit du registre STATUS affecté
|
nombre de cycles
|
BCF f , b | Mise à 0 du b ème bit du registre f |
-
|
1
|
BSF f , b | Mise à 1 du b ème bit du registre f |
-
|
1
|
BTFSC f , b | Si le b ème bit du registre f est égal à 0, alors l'instruction suivante est ignorée, et une instruction NOP est exécutée à la place (soit 2 cycles) |
-
|
1 ou 2
|
BTFSS f , b | Si le b ème bit du registre f est égal à 1, alors l'instruction suivante est ignorée, et une instruction NOP est exécutée à la place (soit 2 cycles) |
-
|
1 ou 2
|
Mnémonique , opérande
|
Description
|
bit du registre STATUS affecté
|
nombre de cycles
|
MOVWF f | (W) est chargé dans (f) |
-
|
1
|
MOVF f , d | (f) (8 bits) est chargé dans (destination) |
Z
|
1
|
ADDWF f , d | Additionne le contenu du registre f (8 bits) et (W), et place le résultat dans (destination) |
C, DC , Z
|
1
|
SUBWF f , d | Soustrait (W) de (f) (8 bits) et place le résultat dans (destination). (f) - (W) ->(destination) |
C, DC , Z
|
1
|
ANDWF f , d | Réalise un ET logique entre (f) (8 bits) et (W), et place le résultat dans (destination) |
Z
|
1
|
IORWF f , d | Réalise un OU logique (inclusif) entre (f) (8 bits) et (W), et place le résultat dans (destination) |
Z
|
1
|
XORWF f , d | Réalise un OU exclusif entre (f) (8 bits) et (W), et place le résultat dans (destination) |
Z
|
1
|
COMF f , d | Réalise le complément logique de (f) (8 bits), et place le résultat dans (destination) |
Z
|
1
|
DECF f , d | Décrémente (f) et place le résultat dans (destination). (f) - 1 -> (destination) |
Z
|
1
|
DECFSZ f , d | Décrémente (f) et place le résultat dans (destination). Si le résultat est 0, alors l'instruction suivante est ignorée, et une instruction NOP est exécutée à la place (soit 2 cycles) |
-
|
1 ou 2
|
INCF f , d | Incrémente (f) et place le résultat dans (destination). (f) + 1 -> (destination) |
Z
|
1
|
INCFSZ f , d | Incrémente (f) et place le résultat dans (destination). Si le résultat est 0, alors l'instruction suivante est ignorée, et une instruction NOP est exécutée à la place (soit 2 cycles) |
-
|
1 ou 2
|
CLRF f | Efface le contenu du registre (f). Remarque : le bit Z est donc mis à 1. |
Z
|
1
|
CLRW | Efface le contenu de l'accumulateur (W). Remarque : le bit Z est donc mis à 1. |
Z
|
1
|
RLF f , d | Réalise une rotation circulaire à gauche : |
C
|
1
|
RRF f , d | Réalise une rotation circulaire à droite : |
C
|
1
|
SWAPF f , d | Les 4 bits de poids forts et les 4 bits de poids faibles de (f) sont échangés. Le résultat est placé dans (destination). |
-
|
1
|
NOP | Cette instruction ne fait rien (durée 1 cycle). |
-
|
1
|