W : le registre =W. — Nbre : une constante. — Registre,Reg1,Reg2 : des adresses en RAM
W = 0   CLRW  
Registre = 0   CLRF Registre
W = Nbre   MOVLW Nbre
Registre = Nbre W = Nbre
Registre = W
MOVLW Nbre
MOVWF Registre
Registre = W   MOVWF Registre
W = Registre   MOVF Registre,W
Reg1 = Reg2 W = Reg2
Reg1 = W
MOVF Reg2,W
MOVWF Reg1
Addition
W = W + 1   ADDLW 1  
Registre = W + 1 W = W + 1
Registre = W
ADDLW 1
MOVWF Registre
W = Registre + 1   INCF Registre,W
Registre = Registre + 1   INCF Registre,F
W = W + Nbre   ADDLW Nbre
Registre = W + Nbre W = W + Nbre
Registre = W
ADDLW Nbre
MOVWF Registre
W = Registre + Nbre W = Nbre
W = W + Registre
MOVLW Nbre
ADDWF Registre,W
Registre = Registre + Nbre W = Nbre
Registre = W + Registre
MOVLW Nbre
ADDWF Registre,F
W = W + Registre   ADDWF Registre,W
Registre = W + Registre   ADDWF Registre,F
W = Reg1 + Reg2 W = Reg2
W = W + Reg1
MOVF Reg2,W
ADDWF Reg1,W
Reg1 = Reg1 + Reg2 W = Reg2
Reg1 = W + Reg1
MOVF Reg2,W
ADDWF Reg1,F
Soustraction
W = -W   SUBLW 0  
Registre = -W W = -W
Registre = W
SUBLW 0
MOVWF Registre
W = -Registre W = Registre
W = -W
MOVF Registre,W
SUBLW 0
Reg1 = -Reg2 W = Reg2
W = -W
Reg1 = W
MOVF Reg2,W
SUBLW 0
MOVWF Reg1
W = W-1 W = W + (-1) ADDLW 0xFF
Registre = W-1 W = W + (-1)
Registre = W
ADDLW 0xFF
MOVWF Registre
W = Registre-1   DECF Registre,W
Registre = Registre-1   DECF Registre,F
W = W-Nbre W = W + (-Nbre) ADDLW -Nbre
Registre = W-Nbre W = W + (-Nbre)
Registre = W
ADDLW -Nbre
MOVWF Registre
W = Nbre-W   SUBLW Nbre
Registre = Nbre-W W = Nbre-W
Registre = W
SUBLW Nbre
MOVWF Registre
W = Registre-Nbre W = Nbre
W = Registre-W
MOVLW Nbre
SUBWF Registre,W
Registre = Registre-Nbre W = Nbre
Registre = Registre-W
MOVLW Nbre
SUBWF Registre,F
W = Nbre-Registre W = Registre
W = Nbre-W
MOVF Registre,W
SUBLW Nbre
Registre = Nbre-Registre W = Registre
W = Nbre-W
Registre = W
MOVF Registre,W
SUBLW Nbre
MOVWF Registre
W = W-Registre W = Registre-W
W = -W
SUBWF Registre,W
SUBLW 0
Registre = W-Registre W = Registre-W
W = -W
Registre = W
SUBWF Registre,W
SUBLW 0
MOVWF Registre
W = Registre-W   SUBWF Registre,W
Registre = Registre-W   SUBWF Registre,F
W = Reg1-Reg2 W = Reg2
W = Reg1-W
MOVF Reg2,W
SUBWF Reg1,W
Reg1 = Reg1-Reg2 W = Reg2
Reg1 = Reg1-W
MOVF Reg2,W
SUBWF Reg1,F
Reg2 = Reg1-Reg2 W = Reg2
W = Reg1-W
Reg2 = W
MOVF Reg2,W
SUBWF Reg1,W
MOVWF Reg2
     
Opération Logique OU ( OR )
W = W OU Nbre   IORLW Nbre

Table de vérité fonction OU:

Permet en autre de passer des bits à 1.
si E2 = 1 alors S toujours à 1
si E2 = 0 alors S inchangé.

Registre = W OU Nbre W = W OU Nbre
Registre = W
IORLW Nbre
MOVWF Registre
W = Registre OU Nbre W = Registre
W = W OU Nbre
MOVF Registre,W
IORLW Nbre
Registre = Registre OU Nbre W = Nbre
Registre = Registre OU W
MOVLW Nbre
IORWF Registre,F
W = W OU Registre   IORWF Registre,W
Registre = W OU Registre   IORWF Registre,F
W = Reg1 OU Reg2 W = Reg2
W = W OU Reg1
MOVF Reg2,W
IORWF Reg1,W
Reg1 = Reg1 OU Reg2 W = Reg2
Reg1 = W OU Reg1
MOVF Reg2,W
IORWF Reg1,F
Opération Logique ET ( AND )
W = W ET Nbre   ANDLW Nbre

Table de vérité fonction ET:

Permet en autre de passer des bits à 0.
si E2 = 0 alors S toujours à 0
si E2 = 1 alors S inchangé.

Registre = W ET Nbre W = W ET Nbre
Registre = W
ANDLW Nbre
MOVWF Registre
W = Registre ET Nbre W = Registre
W = W ET Nbre
MOVF Registre,W
ANDLW Nbre
Registre = Registre ET Nbre W = Nbre
Registre = Registre ET W
MOVLW Nbre
ANDWF Registre,F
W = W ET Registre   ANDWF Registre,W
Registre = W ET Registre   ANDWF Registre,F
W = Reg1 ET Reg2 W = Reg2
W = W ET Reg1
MOVF Reg2,W
ANDWF Reg1,W
Reg1 = Reg1 ET Reg2 W = Reg2
Reg1 = W ET Reg1
MOVF Reg2,W
ANDWF Reg1,F
     
Opération Logique OU-Exclusif ( XOR )
W = W XOR Nbre   XORLW Nbre

Table de vérité fonction XOR:

Permet en autre de permuter des bits.
si E2 = 1 alors S = NOT S
si E2 = 0 alors S inchangé.

Registre = W XOR Nbre W = W XOR Nbre
Registre = W
XORLW Nbre
MOVWF Registre
W = Registre XOR Nbre W = Registre
W = W XOR Nbre
MOVF Registre,W
XORLW Nbre
Registre = Registre XOR Nbre W = Nbre
Registre = Registre XOR W
MOVLW Nbre
XORWF Registre,F
W = W XOR Registre   XORWF Registre,W
Registre = W XOR Registre   XORWF Registre,F
W = Reg1 XOR Reg2 W = Reg2
W = W XOR Reg1
MOVF Reg2,W
XORWF Reg1,W
Reg1 = Reg1 XOR Reg2 W = Reg2
Reg1 = W XOR Reg1
MOVF Reg2,W
XORWF Reg1,F
Opération Logique NON (NOT )
W = NOT W   XORLW 0xFF

Table de vérité fonction NOT:

Permet de permuter tous les bits.

Registre = NOT W W = NOT W
Registre = W
XORLW 0xFF
MOVWF Registre
W = NOT Registre   COMF Registre,W
Registre = NOT Registre   COMF Registre,F
Reg1 = NOT Reg2 W = NOT Reg2
Reg1 = W
COMF Registre,W
MOVWF Reg1
Affectation de bits avec b le numéro du bit de 0 à 7
W(b) = 0   ANDLW B'11111111'
avec le bit b à 0
Si vous avez plusieurs bits à modifier, il est préférable d'utiliser la fonction OU ou ET.
Registre(b) = 0   BCF Registre,b
W(b) = 1   IORLW B'00000000'
avec le bit b à 1
Registre(b) = 1   BSF Registre,b
Saut
Saut vers Label   GOTO Label  
Appel de la fonction Label   CALL Label
Retour d'une fonction   RETURN
Retour d'une fonction avec résultat W = Nbre
RETURN
RETLW Nbre
Saut conditionnel
Remarque : Pour simplifier le tableau, lorsque la condition est vraie, on exécute un saut ( GOTO ) mais vous pouvez le remplacer par un appel à une fonction ( CALL ) ou par une ligne de code et une seule.
si Registre(b) = 1 goto Label   BTFSC Registre,b
GOTO Label
 
si Registre(b) = 0 goto Label   BTFSS Registre,b
GOTO Label
Registre = Registre-1
si Registre <> 0 goto Label
  DECFSZ Registre,F
GOTO Label
 
W = Registre-1
si W <> 0 goto Label
  DECFSZ Registre,W
GOTO Label
Registre = Registre + 1
si Registre <> 256 goto Label
  INCFSZ Registre,F
GOTO Label
W = Registre + 1
si Registre <> 256 goto Label
  INCFSZ Registre,W
GOTO Label
Res représente le résultat de la dernière instruction.
si Res = 0 goto Label   BTFSC STATUS,Z
GOTO Label
 
si Res <> 0 goto Label   BTFSS STATUS,Z
GOTO Label
Après les instructions SUBWF ou SUBLW, vous pouvez tester :
si Res < 0 goto Label   BTFSS STATUS,C
GOTO Label
 
si Res >= 0 goto Label   BTFSC STATUS,C
GOTO Label
Après les instructions ADDWF ou ADDLW, vous pouvez tester :
si Res > 255 goto Label   BTFSC STATUS,C
GOTO Label
 
si Res <= 255 goto Label   BTFSS STATUS,C
GOTO Label
Autres cas courants ( Pour faire le saut lorsque la condition est fausse : remplacer BTFSC par BTFSS )
si W = 0 goto Label W = W + 0
si Res = 0 goto Label
ADDLW 0
BTFSC STATUS,Z
GOTO Label
 
si Registre = 0 goto Label W = Registre
si Res = 0 goto Label
MOVF Registre,W
BTFSC STATUS,Z
GOTO Label
si W = Nbre goto Label W = Nbre - W
si Res = 0 goto Label
SUBLW Nbre
BTFSC STATUS,Z
GOTO Label
si Registre = Nbre goto Label W = Nbre
W = Registre - W
si Res = 0 goto Label
MOVLW Nbre
SUBWF Registre,W
BTFSC STATUS,Z
GOTO Label
si W = Registre goto Label W = Registre - W
si Res = 0 goto Label
SUBWF Registre,W
BTFSC STATUS,Z
GOTO Label
si Reg1 = Reg2 goto Label W = Reg2
W = Reg1 - W
si Res = 0 goto Label
MOVF Reg2,W
SUBWF Reg1,W
BTFSC STATUS,Z
GOTO Label
si Registre < 0 goto Label   BTFSC Registre,7
GOTO Label
 
si Registre >= 128 goto Label   BTFSC Registre,7
GOTO Label
si W <= Nbre goto Label W = Nbre - W
si Res >= 0 goto Label
SUBLW Nbre
BTFSC STATUS,C
GOTO Label
si Registre >= Nbre goto Label W = Nbre
W = Registre - W
si Res >= 0 goto Label
MOVLW Nbre
SUBWF Registre,W
BTFSC STATUS,C
GOTO Label
si W <= Registre goto Label W = Registre - W
si Res >= 0 goto Label
SUBWF Registre,W
BTFSC STATUS,C
GOTO Label
si Reg1 >= Reg2 goto Label W = Reg2
W = Reg1 - W
si Res >= 0 goto Label
MOVF Reg2,W
SUBWF Reg1,W
BTFSC STATUS,C
GOTO Label
Rotation droite avec retenue   RLF Registre,W
ou RLF Registre,F
 
Rotation gauche avec retenue   RRF Registre,W
ou RRF Registre,F
Pas d'action   NOP
Permutation   SWAPF Registre,W
ou SWAPF Registre,F
Clear Watchdog   CLRWDT
Mode sleep   SLEEP