Utiliser les PIC 16F et 18F/Annexe/Les instructions du 16FXXX
Les opérandes peuvent être de plusieurs types:
- f : adresse mémoire de registres (register file address) de 00 à 7F
- W : registre de travail
- d : sélection de destination : d=0 vers W, d=1 vers f
- pp : numéro de PORT entre 1 et 3 sur deux bits
- bbb : adresse de bit dans un registre 8 bits (sur 3 bits)
- k : champ littéral (8, ou 11 bits)
- PC compteur programme
Opérations orientées octets entre registre et mémoire
modifierOpérations orientées octets entre registre et mémoire (File en anglais) | |||||
Mnémonique
Opérande |
Description | Cycles | 14 bits Opcode | status affected | notes |
ADDWF f,d | Additionne W et f | 1 | 00 0111 dfff ffff | C,DC,Z | 1,2 |
ANDWF f,d | ET bit à bit W et f | 1 | 00 0101 dfff ffff | Z | 1,2 |
CLRF f | mise à 0 de f | 1 | 00 0001 1fff ffff | Z | 2 |
CLRW - | mise à 0 de W | 1 | 00 0001 0xxx xxxx | Z | |
COMF f,d | Complément de f | 1 | 00 1001 dfff ffff | Z | 1,2 |
DECF f,d | Décrémente f | 1 | 00 0011 dfff ffff | Z | 1,2 |
DECFSZ f,d | Décrémente f (saute si 0) | 1,(2) | 00 1011 dfff ffff | Z | 1,2,3 |
INCF f,d | Incrémente f | 1 | 00 1010 dfff ffff | Z | 1,2 |
INCFSZ f,d | Incrémente f (saute si 0) | 1,(2) | 00 1111 dfff ffff | Z | 1,2,3 |
IORWF f,d | Ou inclusif de f | 1 | 00 0100 dfff ffff | Z | 1,2 |
MOVF f,d | déplacement de f (adressage direct) | 1 | 00 1000 dfff ffff | Z | 1,2 |
MOVWF | déplacement de W vers f | 1 | 00 0000 1fff ffff | ||
NOP - | pas d'opération | 1 | 00 0000 0xx0 0000 | ||
RLF f,d | Rotation gauche avec la retenue | 1 | 00 1101 dfff ffff | C | 1,2 |
RRF f,d | Rotation droite avec la retenue | 1 | 00 1100 dfff ffff | C | 1,2 |
SUBWF f,d | soustrait W de f | 1 | 00 0010 dfff ffff | C,DC,Z | 1,2 |
SWAPW f,d | inverser les quartets dans f | 1 | 00 1110 dfff ffff | 1,2 | |
XORWF f,d | Ou exclusif de f | 1 | 00 0110 dfff ffff | Z | 1,2 |
Opérations orientées bits sur les registres
modifierOpérations orientées bits sur les registres | |||||
Mnémonique
Opérande |
Description | Cycles | 14 bits Opcode | status affected | notes |
BCF f,b | mise à 0 du bit b dans f | 1 | 01 00bb bfff ffff | 1,2 | |
BSF f,b | mise à 1 du bit b dans f | 1 | 01 01bb bfff ffff | 1,2 | |
BTFSC f,b | test du bit b 0 de f saute si 0 | 1,(2) | 01 10bb bfff ffff | 1,2 | |
BTFSS f,b | test du bit b 0 de f saute si 1 | 1,(2) | 01 11bb bfff ffff | 1,2 |
Opérations littérales (adressage immédiat) et de contrôles
modifierOpérations littérales (adressage immédiat) et de contrôles | |||||
Mnémonique
Opérande |
Description | Cycles | 14 bits Opcode | status affected | notes |
ADDLW k | Addition de W et k | 1 | 11 111x kkkk kkkk | C,DC,Z | |
ANDLW k | Et logique de W et k | 1 | 11 1001 kkkk kkkk | Z | |
CALL k | appel du sous programme k | 2 | 10 0kkk kkkk kkkk | ||
CLRWDT - | mise à 0 du timer watchdog | 1 | 00 0000 0110 0100 | /TO,/PD | |
GOTO k | aller à l'adresse | 2 | 10 1kkk kkkk kkkk | ||
IORLW | Ou inclusif littéral | 1 | 11 1000 kkkk kkkk | Z | |
MOVLW | chargement de W en littéral | 1 | 11 00xx kkkk kkkk | ||
RETFIE | Retour d'interruption | 2 | 00 0000 0000 1001 | ||
RETLW k | retour avec le littéral dans W | 2 | 11 01xx kkkk kkkk | ||
RETURN | retour de sous-programme | 2 | 00 0000 0000 1000 | ||
SLEEP | aller au mode standby | 1 | 00 0000 0110 0011 | /TO,/PD | |
SUBLW k | retire W du littéral | 1 | 11 110x kkkk kkkk | C,DC,Z | |
XORLW | Ou exclusif avec littéral | 1 | 11 1010 kkkk kkkk | Z |