


|
Assembleurs 68000 et 68030
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 68000 et 68030
ni d'en donner un manuel d'utilisation. Je recommande 2 livres
très bien faits pour cela:
- "Mise en oeuvre du 68000" de Catherine VIEILLEFOND aux éditions
SYBEX,
- "Mise en oeuvre du 68030" du même auteur et chez le même
éditeur.
La documentation du constructeur es
disponible sur www.motorola.com.
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 de
mon 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"
- FORGET_ASSEMBLEUR -
Permet de retirer l'ensemble des instructions
dédiées à l'assembleur du vocabulaire.
Utilisation
L'assembleur de mon système
est un véritable assembleur 2 passes gérant une
table d'étiquettes. Comme indiqué dans la rubrique
correspondante, il ne comporte que 3 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.
- FORGET_ASSEMBLEUR libère
la mémoire occupée par l'assembleur lorsque celui-ci
n'est plus utile. L'espace mémoire occupé est de
32768 octets pour le 68000 et 65536 octets pour le 68030. Les
3 instruction FORTH liées à l'assembleur disparaîtron
du vocabulaire en même temps que la libération de
l'espace mémoire occupé.
Les étiquettes doivent impérativemen
commencer par une lettre majuscule. Les caractères suivants
peuvent être des lettres majuscules, des chiffres ou un
caractère "_". Aucune étiquette de doi
commencer par les mêmes lettres que les registres des processeurs.
- Registres 68000: D0, D1, D2, D3,
D4, D5, D6, D7, A0, A1, A2, A3, A4, A5, A6, A7 ou SP ou USP,
PC, SR, CCR.
- Registres supplémentaires
68030: ISP,
MSP, VBR, SFC, DFC, CACR, CAAR, TC, CRP, SRP, TT0, TT1, MMUSR.
Les registres du MC68030 (68000 pour
le mini système) 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 MOTOROLA. Les modes d'adressages sont les suivants:
- Modes d'adressages 68000: Dn; An; (An);
(An)+; -(An); (d16,An); (d8,An,Xn); Abs.W; Abs.L; (d16,PC); (d8,PC,Xn);
Imm.
- Suppléments 68030: (bd,An,Xn); ([bd,An,Xn],od);
([bd,An],Xn,od); (bd,PC,Xn); (bd,PC,Xn); ([bd,PC,Xn],od).
Pour le 68030, les instructions liées
aux coprocesseurs ne sont pas implémentées.
Exemple
Pour illustrer cette présentation,
rien ne vaut un bon exemple. Celui-ci est disponible sous forme
de fichier texte: sqrt.txt.
Il s'agit d'un programme permettan
l'extraction de la racine carrée d'un nombre entier positif
de 32 bits.
|
 |
 |