• Adopter une règle de nommage des définitions des registres de travail. En effet, pour éviter d’accéder depuis un mauvais bank à un registre SFR (Special Function Register) ou à un registre propre, il est conseillé de les (re)nommer en les préfixant d’une information indiquant leur appartenance à un bank donné ou accessible à partir de plusieurs banks.
Exemples de préfixes:
| SFR_0_ | Registre SFR accessible depuis le Bank0 uniquement |
SFR_0_PORTA |
| SFR_1_ | Registre SFR accessible depuis le Bank1 uniquement | SFR_1_TRISA |
| SFR_1_3_ | Registre SFR accessible depuis les Bank1 et Bank3 | SFR_1_3_OPTION |
| SFR_ | Registre SFR accessible depuis tous les Banks | SFR_INDF |
| R_0_ | Registre accessible depuis le Bank0 uniquement |
R_0_STATES |
| R_ | Registre accessible depuis tous les Banks | R_SAVE_WREG |
| FLG_1_ | Flag accessible depuis le Bank1 uniquement |
FLG_1_ERROR |
Ainsi, leur emploi s’en trouve facilité aussi bien en écriture qu’en lecture du code du programme. De plus, cette méthode évite d’utiliser avant l’accès au registre, la directive « banksel <nom du registre> » qui est très couteuse en code [inutilement] généré comme le montre l’exemple suivant:
| bcf 0x3, 0x5 banksel SFR_0_RCSTA ; Accès à RCSTA (BANK0) |
| bcf 0x3, 0x6 |
| movlw 0x90 movlw 0x90 |
| movf 0x18, f movf SFR_0_RCSTA |
| bsf 0x3, 0x5 banksel SFR_1_OPTION_REG ; Accès à OPTION_REG (BANK1) |
| bcf 0x3, 0x6 ; Le bit RP1 est déjà à 0 ! |
| movlw 0xc1 movlw B’11000001′ |
| movf 0x1, f movf SFR_1_OPTION_REG |
Pages: 1 2