Sistemi integrati - Registri SFR

Uno Special Function Register (o Special Purpose Register, o semplicemente Special Register) è un registro all'interno di un microprocessore che controlla o monitora le varie funzioni di un microprocessore. Poiché i registri speciali sono strettamente legati a qualche funzione o stato speciale del processore, potrebbero non essere direttamente scrivibili dalle normali istruzioni (come aggiungi, sposta, ecc.). Invece, alcuni registri speciali in alcune architetture di processori richiedono istruzioni speciali per modificarli.

Nell'8051, i registri A, B, DPTR e PSW fanno parte del gruppo di registri comunemente indicato come SFR (registri di funzioni speciali). È possibile accedere a un SFR tramite il suo nome o il suo indirizzo.

La tabella seguente mostra un elenco di SFR e i loro indirizzi.

Indirizzo byte Indirizzo 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 - - - AVANTI CRISTO BB BA B9 B8 IP
B0 B7 B6 B5 B4 B3 B2 B1 B0 P3
A2 AF - - corrente alternata AB aa A9 A8 IE
A0 A7 A6 A5 A4 A3 A2 A1 A0 P2
99 Non bit indirizzabile SBUF
98 9F 9E 9D 9C 9B 9A 99 98 SCON
90 97 96 95 94 93 92 91 90 P1
8D Non bit indirizzabile TH1
8C Non bit indirizzabile TH0
8B Non bit indirizzabile TL1
8A Non bit indirizzabile TL0
89 Non bit indirizzabile TMOD
88 8F 8E 8D 8C 8B 8A 89 88 TCON
87 Non bit indirizzabile PCON
83 Non bit indirizzabile DPH
82 Non bit indirizzabile DPL
81 Non bit indirizzabile SP
80 87 87 85 84 83 82 81 80 P0

Considera i seguenti due punti sugli indirizzi SFR.

  • Un registro di funzione speciale può avere un indirizzo compreso tra 80H e FFH. Questi indirizzi sono superiori a 80H, poiché gli indirizzi da 00 a 7FH sono gli indirizzi della memoria RAM all'interno dell'8051.

  • Non tutto lo spazio indirizzi da 80 a FF viene utilizzato dall'SFR. Le posizioni inutilizzate, da 80H a FFH, sono riservate e non devono essere utilizzate dal programmatore 8051.

CY PSW.7 Porta bandiera
corrente alternata PSW.6 Flag di trasporto ausiliario
F0 PSW.5 Flag 0 disponibile per l'utente per scopi generali.
RS1 PSW.4 Registra il selettore del banco bit 1
RS0 PSW.3 Registra il selettore del banco bit 0
OV PSW.2 Bandiera di overflow
- PSW.1 BANDIERA definibile dall'utente
P PSW.0 BANDIERE DI PARITÀ. Impostato / cancellato dall'hardware durante il ciclo di istruzione per indicare il numero pari / dispari di 1 bit nell'accumulatore.

Nell'esempio seguente, i nomi dei registri SFR vengono sostituiti con i relativi indirizzi.

CY corrente alternata F0 RS1 RS0 OV - P

È possibile selezionare il bit del banco di registro corrispondente utilizzando i bit RS0 e RS1.

RS1 RS2 Register Bank Indirizzo
0 0 0 00H-07H
0 1 1 08H-0FH
1 0 2 10H-17H
1 1 3 18H-1FH

La Program Status Word (PSW) contiene bit di stato che riflettono lo stato corrente della CPU. Le varianti 8051 forniscono un registro di funzioni speciali, PSW, con queste informazioni di stato. L'8251 fornisce due flag di stato aggiuntivi, Z e N, che sono disponibili in un secondo registro di funzioni speciali chiamato PSW1.