Document fait avec Nvu Document made with Nvu




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:

  • D7 constitue le sommet de la pile des données,
  • D6, D5 et D4 sont réservés aux calculs intermédiaires,
  • D3, D2, D1 et D0 sont libres,
  • A7 ou SP constitue le pointeur de la pile de retour,
  • A6 constitue le pointeur de la pile des données (il pointe donc le 2ième élément),
  • A4 et A5 sont réservés aux calculs intermédiaires,
  • A3, A2, A1 et A0 sont libres.

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.