Pages en mémoire

Le PIC a un espace programme coupé en pages de 256 instructions pour ce qui concerne l'accès au tables et sauts calculés, et en pages de 1k pour les instructions de saut et d'appel de routines. La pré-sélection de la page se fait avec le registre PCLATH qu'il faut initialiser avant l'instruction de modification du PC. PC est le "Program Counter" du processeur. APC est l'équivalent en assembleur. Jump APC est l'instruction qui saute à l'adresse ou elle est; il n'y a donc plus d'activité visible.

Ajouter un dessin?

La mémoire principale est structurée en page 8 bits concernant le registre d'adresse APC utilisé pour les tables, et en blocs de 1024 instructions pour les Call et Jump (si le processeur a assez de mémoire). Le registre PcLath doit être mis à jour (macro Setpage) et un test doit être fait à la fin de chaque page (voir Base.asi).

Pour les programmes dépassant 1024 instructions, voir www.didel.com/picg/doc/----

L'espace des variables a des banques de 128 bytes. Les variables utilisateurs se trouvent à partir de l'adresse 16'20, avec des différences importantes d'un processeur à l'autre concernant l'accès aux mêmes variables depuis les différentes banques.

Pour changer de banque, il est pratique de disposer de macros (à disposition dans Base.asi)
Bank0to1  Ne modifie que le bit RP0, on sait que l'on est en banque 0 au départ
Bank1        Modifie RP0 et RP1, on ne sait pas dans quelle banque on se trouve
                  (dans une routine d'interruption par exemple). Coûte une instruction de plus.
  etc.
Les registres et variables du PIC sont répartis sur 2 ou 4 banques. L'assembleur ne peut pas vérifier que l'on est dans la bonne banque lorsque l'on se réfère à une variable. Il faut parenthéser au plus près avec les macros Bank0to1 etc.