Document fait avec Nvu Document made with Nvu



specificationsinstructionslogicielsutilisationemulateurs

Instructions spécifiques

Voici la description des instructions qui sont liées à l'architecture des processeurs 16 bits de MICROCHIP constituant la base du micro système FORTH.

Ces processeurs disposent de 2 plans mémoires:
- la mémoire vive dont une partie est réservée au registres SFR,
- la mémoire FLASH contenant le programme.

La mémoire vive est adressée par un pointeur de 16 bits avec une capacité maximal de 65536 octets ou bien 32768 mots de 16 bits. Ceci justifie le choix d'une pile de données au format 16 bits permettant de gérer directement les adresses de la mémoire vive. Le pointeur HERE, dédié au déclaration des différentes variables FORTH, est donc au format 16 bits.

La mémoire FLASH est adressée par un compteur de programme 24 bits pointant les instructions de 24 bits complétées par un octet à 0 pour un format de 32 bits. Le compteur de programme s'incrémente de 2 pour pointer l'instruction suivante. La taille maximale de la zone de programme est donc de 8388608 instructions ou bien 25165824 octets. Il faut donc ajouter des instructions FORTH spécifiques pour manipuler la mémoire FLASH: ++, --, MEM_PRGHERE, PRGHERE, >PRGHERE, PRG@, PRG!, et PRG,.

Des instructions supplémentaires permettent la gestion des interfaces TIMER1 et UART1 utilisés par le noyau FORTH.

Vous pouvez aussi ouvrir la page consacrée à la description détaillée de toutes les instructions du noyau FORTH. Pour celles qui sont crées dans les différents logiciels applicatifs, les fichiers comportent cette description dans leurs commentaires.

n1h,n1l,n2h,n2l ++ (n1+n2)h,(n1+n2)l

Adition au format 32 bits

n1h,n1l,n2h,n2l -- (n1-n2)h,(n1-n2)l

Soustraction au format 32 bits

- IDLE -

Désactivation de l'horloge du processeur

- SLEEP -

Désactivation de toutes les horloges

- ITRX1 adresse

Adresse d'un programme de remplacement pour l'interruption de réception de l'UART1 (2 mots de 16 bits)

- TELEC adresse

Adresse de la durée en milliseconde avant la fin d'un téléchargement

- CNTITP adresse

Adresse d'un compteur d'interruptions parasites initialisé à 0 au RESET

- MEM_PRGHERE adresse

Adresse de la valeur de "PRGHERE" (2 mots de 16 bits)

- PNT_PRG adresse

Adresse d'une variable de 32 bits contenant le pointeur du bloc de mémoire FLASH en cours de modification

- PRGHERE adrh,adrl

Dépose sur la pile l'adresse de compilation

adrh,adrl >PRGHERE -

Initialise l'adresse de compilation

adrh,adrl PRG@ nh,nl

Lecture d'un mot de 24 bits de la mémoire FLASH

nh,nl,adrh,adrl PRG! -

Ecriture d'un mot de 24 bits dans la mémoire FLASH

nh,nl PRG, -

Compilation d'un mot de 24 bits
L'adresse de compilation (PRGHERE) est incrémenté de 2

- TIMER1_UART1_INIT -

Initialisation du TIMER1 et de l'UART1