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

1 ) - 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.

 

2 ) -  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.

attention   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). 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.

 

 

3 ) - Les 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.

attentionLe 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

 Registre etat

 

a ) - 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.

 

b ) - 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)


 source : http://supertos.free.fr/supertos.php?page=1136