Registres du 68000

 

 

Les registres de données et d'adresses

Il y a deux types de registres que l'on peut manipuler directement:

Les registres de données

Il s'agit de registres 32 bits, qui peuvent recevoir des valeurs mais ne seront pas utilisables pour pointer directement une zone mémoire de l'ordinateur. Mais ils pourront servir d'indexes.

Ces registres sont au nombre de 8 et se nomment D0, D1, D2, D3, D4, D5, D6 et D7.

 

Les registres d'adresses

Ces registres sont aussi sur 32 bits et seront utilisés pour pointer vers une adresse mémoire.

Ces registres sont là encore au nombre de 8 et se nomment A0, A1, A2, A3, A4, A5, A6 et A7.

Image non trouvée ! Le registre A7 est un peu particulier, car il est utilisé par le microprocesseur comme pointeur de pile. De ce fait, le registre A7 se nomme aussi SP (Stack Pointer). Il pointera suivant le mode de fonctionnement du microprocesseur soit vers la zone USP (User Stack Pointer), soit vers la zone SSP (Super-user Stack Pointer).

Image non trouvée !La modification de ce registre est possible, mais à vous de faire attention à ce que vous faîtes, car la moindre erreur de votre part provoquera certainement un plantage du système. Vous aurez besoin de modifier ce pointeur par exemple sur un Atari ST suite à l'appel aux fonctions GEMDOS, BIOS, XBIOS, ... pour dépiler les données passées à ces fonctions.

 

Autres registres


Il existe quatre autres registres:
PC le compteur ordinal sur 32 bits (Programme Counter). Il pointe sur la prochaine ligne de code à exécuter.
SR (registre d'état 16 bits, l'octet de poids faible est appelé CCR) détaillé plus loin...
USP pointeur de pile utilisateur 32 bits
SSP pointeur de pile superviseur 32 bits. Ce pointeur n'est pas accessible au mode utilisateur.

Image non trouvée !Le registre A7 ou SP pointe sur la zone indiquée par USP ou SSP suivant le mode d'exécution du microprocesseur.

 

Registre d'état SR(Stack register) et Registre de Codes Condition CCR:

Le registre d'état SR 16 bits se compose de deux octets distincts:

Poids faible : CCR accessible en mode utilisateur et superviseur.
Poids fort : Octet accessible uniquement en mode superviseur.

Ce registre reflète l'état du processeur après chaque instruction et va permettre de tester le résultat d'une opération pour un branchement conditionnel mais aussi d'autoriser ou interdire les interruptions.

Le registre SR est composé des bits suivants: T.S..III...XNZVC
Le registre CCR se limitera donc aux bits ...XNZVC

Octet Superviseur:
Bit 15 - T: mode Trace. Positionné, provoque une interruption à chaque instruction exécutée.
Bit 13 - S: état Superviseur. Positionné à 1, indique que le microprocesseur est en mode superviseur. Il est possible de le positionner pour repasser en mode utilisateur.
Bit 10 - I2: masque d'Interruption 2
Bit 9 - I1: masque d'Interruption 1
Bit 8 - I0: masque d'Interruption 0. Ces 3 bits permettent de masquer les niveaux d'interruptions matérielles.

Octet Utilisateur CCR:
Bit 4 - X: bit d'eXtension
Bit 3 - N: bit de signe (Negative)
Bit 2 - Z: bit de Zero
Bit 1 - V: bit de débordement (oVerflow)
Bit 0 - C: bit de retenue (Carry)