Assembleur PIC et dsPIC 16 bits
Instructions
Utilisation
Exemple
Principe
L'assembleur est un compilateur qui
permet d'écrire un programme en utilisant les instructions
spécifiques du microprocesseur servant de coeur à
l'ordinateur. L'assembleur est indispensable à l'écriture
des instructions de base des langages de haut niveau (FORTH, Pascal,
C, ...) qui sont eux-mêmes ainsi indépendants de
la plate-forme utilisée. Pour parler plus technique, les
langages de haut niveau sont portables alors que l'assembleur
ne l'est pas (à moins de réaliser un logiciel de
simulation...).
Le but de cette page n'est pas de
recenser toutes les instructions des processeurs 16 bits PIC et dsPIC
ni d'en donner un manuel d'utilisation. Tout ceci est disponible sur le site du constructeur MICROCHIP.
Par contre, le contenu de cette page
permettra aux développeurs les plus avertis de réaliser
leur propres programmes en assembleur dans l'environnement du micro système.
Instructions
- RAZ_ASSEMBLEUR -
Permet de ré initialiser la table
des étiquettes
- ASSEMBLEUR -
Assemblage du texte qui suit cette instruction
jusqu'à la directive "END"
- [>" chemin/nom" -
Permet de générer un fichier source assemblé pour le micro système FORTH.
- FORGET_ASSEMBLEUR -
Permet de retirer l'ensemble des instructions
dédiées à l'assembleur du vocabulaire.
Utilisation
L'assembleur du micro système, uniquement utilisable avec le Coeur FORTH,
est un véritable assembleur 2 passes gérant une
table d'étiquettes. Comme indiqué dans la rubrique
correspondante, il ne comporte que 4 instructions FORTH:
- RAZ_ASSEMBLEUR efface la table des
étiquettes. Cet effacement est automatiquement réalisé
à l'installation du logiciel. Il ne faut pas omettre l'exécution
de cette instruction au début du code source car, en cas
de ré assemblage, il évitera l'apparition du message
"Etiquette déjà déclarée".
- ASSEMBLEUR fait passer l'interpréteur
FORTH en assembleur. A partir de cette instruction, la syntaxe
des lignes suivantes doit suivre celle de l'assembleur jusqu'à
l'apparition de la directive "END" qui indique à
l'assembleur de retourner en mode interprétation FORTH
à l'issue de la deuxième passe.
- [>" permet de générer un fichier source assemblé pour le micro système FORTH pour enrichir son vocabulaire temps réel.
- FORGET_ASSEMBLEUR libère
la mémoire occupée par l'assembleur lorsque celui-ci
n'est plus utile. Les 4 instructions FORTH liées à l'assembleur disparaîtront
du vocabulaire en même temps que la libération de
l'espace mémoire occupé.
Les étiquettes doivent impérativement
commencer par une lettre majuscule. Les caractères suivants
peuvent être des lettres majuscules, des chiffres ou un
caractère "_". Aucune étiquette ne doit
commencer par les mêmes lettres que les registres des processeurs.
- Registres PIC24x: W0 (ou WREG), W1, W2, W3, W4, W5, W6, W7, W8, W9, W10, W11, W12, W13, W14 (ou WFP), W15 (ou WSP),
PC, SR,TBLPAG,PSVPAG.
- Registres supplémentaires dsPIC3x: A,B.
- Registres supplémentaires PIC24E et dsPIC33E: DSRPAG et DSWPAG au lieu de PSVPAG.
Les registres des PIC et dsPIC du micro système FORTH sont utilisés de la manière
suivante:
Les instructions doivent être
écrites en lettres majuscules. La syntaxe est la même
que celle de MICROCHIP. Les modes d'adressages sont les suivants:
- PIC: Wn; [Wn]; [Wn--]; [Wn++]; [--Wn]; [++Wn]; [Wn+Wm]; [Wn+lit]; f; #lit; #bit; Expr; rPAG.
- Suppléments dsPIC: Acc; Wn*Wn; Wn*Wm; [Wn+=d]; [Wn-=d].
Il existe une directive d'assemblage permettant de filtrer les instructions en fonction du coeur choisi:
- PIC24F ou PIC24H (coeur par défaut),
- PIC24E,
- DSPIC30F ou dsPIC33F,
- DSPIC33E.
Exemple
Pour illustrer cette présentation,
rien ne vaut un bon exemple. Celui-ci est disponible sous forme
de fichier texte: sqrt_source.txt.
Il s'agit d'une instruction FORTH permettant
l'extraction de la racine carrée d'un nombre entier non signé
de 16 bits (SQRT) et de 32 bits (DSQRT).
Le résultat est le fichier sqrt.txt pouvant être téléchargé dans le micro système FORTH via son lien de communication.