Systèmes embarqués - Registres SFR

Un registre de fonction spéciale (ou registre à usage spécial, ou simplement registre spécial) est un registre dans un microprocesseur qui contrôle ou surveille les diverses fonctions d'un microprocesseur. Comme les registres spéciaux sont étroitement liés à une fonction ou à un état spécial du processeur, ils peuvent ne pas être directement inscriptibles par des instructions normales (comme ajouter, déplacer, etc.). Au lieu de cela, certains registres spéciaux dans certaines architectures de processeur nécessitent des instructions spéciales pour les modifier.

Dans le 8051, les registres A, B, DPTR et PSW font partie du groupe de registres communément appelés SFR (registres de fonctions spéciales). Un SFR est accessible par son nom ou par son adresse.

Le tableau suivant présente une liste des SFR et leurs adresses.

Adresse d'octet Adresse de bit
FF
F0 F7 F6 F5 F4 F3 F2 F1 F0 B
E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC
D0 D7 D6 D5 D4 D3 D2 - D0 PSW
B8 - - - avant JC BB BA B9 B8 IP
B0 B7 B6 B5 B4 B3 B2 B1 B0 P3
A2 UN F - - AC UN B AA A9 A8 C'EST À DIRE
A0 A7 A6 A5 A4 A3 A2 A1 A0 P2
99 Pas de bit adressable SBUF
98 9F 9E 9D 9C 9B 9A 99 98 SCON
90 97 96 95 94 93 92 91 90 P1
8D Pas de bit adressable TH1
8C Pas de bit adressable TH0
8B Pas de bit adressable TL1
8A Pas de bit adressable TL0
89 Pas de bit adressable TMOD
88 8F 8E 8D 8C 8B 8A 89 88 TCON
87 Pas de bit adressable PCON
83 Pas de bit adressable DPH
82 Pas de bit adressable DPL
81 Pas de bit adressable SP
80 87 87 85 84 83 82 81 80 P0

Considérez les deux points suivants concernant les adresses SFR.

  • Un registre de fonction spéciale peut avoir une adresse entre 80H et FFH. Ces adresses sont supérieures à 80H, car les adresses de 00 à 7FH sont les adresses de la mémoire RAM à l'intérieur du 8051.

  • Tout l'espace d'adressage de 80 à FF n'est pas utilisé par le SFR. Les emplacements inutilisés, 80H à FFH, sont réservés et ne doivent pas être utilisés par le programmateur 8051.

CY PSW.7 Porter un drapeau
AC PSW.6 Drapeau de transport auxiliaire
F0 PSW.5 L'indicateur 0 est disponible pour l'utilisateur à des fins générales.
RS1 PSW.4 Enregistrer le bit 1 du sélecteur de banque
RS0 PSW.3 Enregistrer le bit 0 du sélecteur de banque
VO PSW.2 Indicateur de débordement
- PSW.1 FLAG définissable par l'utilisateur
P PSW.0 DRAPEAU de parité. Activé / effacé par le matériel pendant le cycle d'instructions pour indiquer un nombre pair / impair de 1 bit dans l'accumulateur.

Dans l'exemple suivant, les noms des registres SFR sont remplacés par leurs adresses.

CY AC F0 RS1 RS0 VO - P

Nous pouvons sélectionner le bit de banque de registres correspondant à l'aide des bits RS0 et RS1.

RS1 RS2 Enregistrer la banque Adresse
0 0 0 00H-07H
0 1 1 08H-0FH
1 0 2 10H-17H
1 1 3 18H-1FH

Le mot d'état du programme (PSW) contient des bits d'état pour refléter l'état actuel de la CPU. Les variantes 8051 fournissent un registre de fonctions spéciales, PSW, avec ces informations d'état. Le 8251 fournit deux indicateurs d'état supplémentaires, Z et N, qui sont disponibles dans un deuxième registre de fonctions spéciales appelé PSW1.