MOVLB k | Move literal to BSR | 00 0000 001k kkkk |
|||
Description : Affectation des 5 bits du registre Bank Select Register ; k -> BSR | |||||
Équivalent avec les instructions PIC16 / Mid-Range : Pas directement applicable compte tenu de ce nouveau registre BSR qui remplace les bits RPx du registre STATUS. | |||||
Notes : – Le codage [00 0000 001k kkkk] occupe la place laissée libre de l’instruction CLRW de la famille Mid-Range [00 0000 0xxx xxxx] avec xxx xxxx = 01k kkkk. – Gain en terme d’optimisation de code et opération atomique. |
MOVLP k | Move literal to PCLATH | 11 0000 1kkk kkkk |
|||
Description : Affectation des 7 bits du registre PCLATH ; k -> PCLATH | |||||
Équivalent avec les instructions PIC16 / Mid-Range : . movlw VALUE ; VALUE dans la plage [0x00..0x1F] . movf PCLATH |
|||||
Notes : – Le codage [11 0000 1kkk kkkk] occupe la place laissée libre de l’instruction MOVLW de la famille Mid-Range [11 00xx kkkk kkkk] avec xx = 00. – Permet de gagner un cycle à chaque affectation et opération atomique. |
BRA k | Relative Branch | 11 001k kkkk kkkk |
|||
Description : Saut relatif signé (-256 à +255) ; (PC) + k -> PC | |||||
Équivalent avec les instructions PIC16 / Mid-Range : Non applicable. | |||||
Notes : – Le codage [11 001k kkkk kkkk] occupe la place laissée libre de l’instruction MOVLW de la famille Mid-Range [11 00xx kkkk kkkk] avec xx = 1k. – Permet d’écrire des parties de programmes translatables au niveau binaire dans la limite de 512 instructions. |
BRW | Relative Branch with W |
00 0000 0000 1011 |
|||
Description : Saut relatif non signé (0 à +255) ; (PC) + (W) -> PC | |||||
Équivalent avec les instructions PIC16 / Mid-Range : . addwf PCL ; Attention au changement de page |
|||||
Notes : – Le codage [00 0000 0000 1011] occupe la place laissée libre de l’instruction CLRW de la famille Mid-Range [00 0000 0xxx xxxx] avec xxx xxxx = 000 1011. – Évite de manipuler le registre PCL et permet d’implémenter facilement le concept switch / case du Langage C. |
CALLW | Call Subroutine with W | 00 0000 0000 1010 |
|||
Description : Appel à une sous-routine dont les 8 derniers bits de l’adresse sont (W) | |||||
Équivalent avec les instructions PIC16 / Mid-Range : Pas directement applicable mais une séquence comme celle-ci est possible : . movlw 0x02 ; Exécution de ‘treatment_2′ . call treatments . … treatments . addwf PCL ; Saut au traitement fonction de W . goto treatment_0 ; W = 0 . goto treatment_1 ; W = 1 . goto treatment_2 ; W = 2 . … |
|||||
Notes : – Le codage [00 0000 0000 1010] occupe la place laissée libre de l’instruction CLRW de la famille Mid-Range [00 0000 0xxx xxxx] avec xxx xxxx = 000 1010. – Évite de manipuler le registre PCL et permet d’implémenter facilement le concept switch / case du Langage C. |
OPTION | Load OPTION_REG register with W | 00 0000 0110 0010 |
|||
Description : Affectation du registre OPTION avec (W) ; (W) -> OPTION | |||||
Équivalent avec les instructions PIC16 / Mid-Range (exemple tiré du Projet Programmateur PIC24) : . banksel OPTION_REG ; Accès au registre OPTION . movlw B’11000001′ ; PORTB Pull-up Disable + RB0<bit 6> . movwf OPTION_REG ; Int falling:0 rising:1 + TMR0 Rate = 1:4 |
|||||
Notes : – Le codage [00 0000 0110 0010] occupe la place laissée libre de l’instruction CLRW de la famille Mid-Range [00 0000 0xxx xxxx] avec xxx xxxx = 110 0010. – Pour maintenir la compatibilité ascendante, il est conseillé de ne pas utiliser cette instruction. |