«

»

Instructions PIC16 (Enhanced Mid-Range)

 

RESET Software device Reset 00 0000 0000 0001
Description : Exécute un Reset matériel et un redémarrage du micro-contrôleur.
Équivalent avec les instructions PIC16 / Mid-Range :
.            ; Remise à jour (Set ou Reset) des indicateurs

.            ; initialisés au démarrage
.            …
.            goto    0x0    ; Redémarrage du micro-contrôleur
Notes :
– Le codage [00 0000 0000 0001] occupe la place laissée libre de l’instruction CLRW de la famille Mid-Range [00 0000 0xxx xxxx] avec xxx xxxx = 000 0001.
– Permet de gagner un bon nombre d’instructions d’initialisation des indicateurs.
TRIS f
Load TRIS register with W 00 0000 0110 0fff
Description : Affectation d’un registre TRIS f avec (W) ; (W) -> TRIS register ‘f’
Équivalent avec les instructions PIC16 / Mid-Range :
.            movlw   B’11111000′   ; PORTA<7:3> In and PORTA<2:0> Out
.            movf    TRISA
Notes :
– Le codage [00 0000 0110 0fff] occupe la place laissée libre de l’instruction CLRW de la famille Mid-Range [00 0000 0xxx xxxx] avec xxx xxxx = 110 0fff.
– Cette instruction n’est pas conseillée. Utiliser plutôt MOVWF TRIS[ABC…] qui est plus explicite.
ADDFSR n,k
Add Literal k to FSRn 11 0001 0nkk kkkk
Description : Addition signée (-31 à +31) avec un des 2 registres FSR0 ou FSR1 avec (W) ; FSR(n) + k -> FSR(n)
Équivalent avec les instructions PIC16 / Mid-Range : Applicable partiellement sur le seul registre FSR sur lequel une seule incrémentation / décrémentation à la fois est possible :
.            ; Incrémentation de 2 positions de l’adresse de recopie
.            incf    FSR
.            incf    FSR
Notes :
– Le codage [11 0001 0nkk kkkk] occupe la place laissée libre de l’instruction MOVLW de la famille Mid-Range [11 00xx kkkk kkkk] avec xx = 01.
– Simplifie grandement les recopies de données d’une zone vers une autre zone et permet une gestion linéaire de cette recopie. De plus, cette instruction MOVIW s’exécute en 1 seul cycle.
MOVIW n mm
MOVIW k[n]
Move Indirect FSRn to W with pre/post inc/dec modifier, mm
Move INDFn to W, Indexed Indirect
00 0000 0001 0nmm
11 1111 0nkk kkkk
Description :Manipulation
Équivalent avec les instructions PIC16 / Mid-Range : Applicable partiellement sur les seuls registres FSR et INDF sur lequels une seule incrémentation / décrémentation à la fois est possible.
- Les codages [00 0000 0001 0nmm] et [11 1111 0nkk kkkk] occupent les places laissées libres des instructions CLRW [00 0000 0xxx xxxx] avec xxx xxxx = 001 0nmm et ADDLW [11 111x kkkk kkkk] avec x = 1.
– Simplifie grandement les recopies de données d’une zone vers une autre zone et permet une gestion linéaire de cette recopie. De plus, cette instruction MOVIW s’exécute en 1 seul cycle.
MOVWI n mm
MOVWI k[n]
Move W to Indirect FSRn with pre/post inc/dec modifier, mm
Move W to INDFn, Indexed Indirect
00 0000 0001 1nmm
11 1111 1nkk kkkk
Description :
Équivalent avec les instructions PIC16 / Mid-Range : Applicable partiellement sur les seuls registres FSR et INDF sur lequels une seule incrémentation / décrémentation à la fois est possible.
Notes :
– Les codages [00 0000 0001 1nmm] et [11 1111 1nkk kkkk] occupent les places laissées libres des instructions CLRW [00 0000 0xxx xxxx] avec xxx xxxx = 001 1nmm et ADDLW [11 111x kkkk kkkk] avec x = 1.
– Simplifie grandement les recopies de données d’une zone vers une autre zone et permet une gestion linéaire de cette recopie.