Pag. 12
Nella tabella sono riportati il simbolo, il nome e I'indirizzo di ciascun registro de11' 8051.
| Simbolo | Nome | Indirizzo |
| ACC | Accumulatore | (*) OE0H |
| B | Registro B | (*) OF0H |
| PSW | Registro di stato (FLAG) | (*) OD0H |
| SP | Stack pointer | 81H |
| DPTR | Puntatore dati (2 byte) | |
| DPL | parte bassa | 82H |
| DPH | parte alta | 83H |
| PO | Porta O | (*) 80H |
| P1 | Porta 1 | (*) 90H |
| P2 | Porta 2 | (*) 0A0H |
| P3 | Porta 3 | (*) OB0H |
| IP | Registro priorità interrupt | (*) OB8H |
| IE | Registro abilitazione interrupt | (*) OA8H |
| TMOD | Modo contatore/timer | 89H |
| TCON | Controllo contatore/timer | (*) 88H |
| THO | Contatore/timer 0 byte alto | 8CH |
| TLO | Contatore/timer 0 byte basso | 8AH |
| THI | Contatore/timer 1 byte alto | 8DH |
| TL1 | Contatore/timer 1 byte basso | 8BH |
| SCON | Controllo porta seriale | (*) 98H |
| SBUF | Buffer dati porta seriale | 99H |
| PCON | Controllo alimentazione | 97H |
* I bit di questi registri sono indirizzabili singolarmente, vedi istruzioni sui bit.
ACC: è il registro accumulatore e viene utilizzato nelle operazioni logico-aritmetiche e di trasferimento. Viene indicato semplicemente con A nei codici mnemonici delle istruzioni.
B: viene utilizzato durante le operazioni di moltiplicazione e divisione e come registro generico per contenere dati.
PSW: il registro di stato contiene i seguenti flag:
| CY | AC | F0 | RS1 | RS0 | OV | - | P |
I bit del registro di stato sono indirizzabili separatamente:
CY (PSW.7) : CarrY flag, ossia flag di riporto. Questo bit viene utilizzato come accumulatore dalle istruzioni che operano sui singoli bit. In tal caso il bit suddetto viene indicato con la lettera C.
AC(PSW.6) : Auxiliary Carry ovvero flag di riporto ausiliario; utilizzato nelle operazioni in BCD, rappresenta il riporto che si può verificare tra il 40 e il 5" bit di un dato da 1 byte.
FO (PSW.5) : Flag 0 utilizzabile dall'utente.
RS1 (PSW.4) : Register bank Selector bit 1.
RSO (PSW.3) : Register bank Selector bit 0. Insieme a RS1 seleziona il banco di 8 registri. R0 - R7 nella memoria RAM interna da 128 byte:
Pag. 13
| RS1 | RS0 | REGISTER BANK ADDRESS |
| 0 | 0 | 00H-07H |
| 0 | 1 | 08H-0FH |
| 1 | 0 | 10H-17H |
| 1 | 1 | 18H-1FH |
OV(PSW.2) : OVerflow; flag che indica il superamento dei limiti dell 'operando.
- (PSW. 1) : flag definibile dall'utente.
P (PSW.O) : Parity flag flag di parità. I1 suo valore rispecchia direttamente il numero di 1 presenti nell'accumulatore. P = 1 se il numero di bit ad 1 nell'accumulatore è dispari; P = O se il numero di bit ad 1 nell'accumulatore è pari.
SP: è lo stack pointer; è un registro ad 8 bit, dunque può indirizzare uno stack delle dimensioni massime di 256 byte. Benché lo stack pointer possa puntare in qualunque zona di memoria RAM interna il suo valore viene automaticamente impostato a 07H dopo un reset. Lo stack di conseguenza inizia alla locazione 08H. Infatti ne11'8051 lo SP viene incrementato prima dell'operazione di PUSH (o operazioni analoghe sullo stack). Lo stack cresce verso gli indirizzi alti della memoria RAM interna.
DPTR: è il cosiddetto Data PoinTeR. Consiste di due registri ad 8 bit (DPH e DPL). La sua funzione è quella di contenere indirizzi a16 bit negli accessi a dati residenti nella memoria RAM esterna (fino a 64 k indirizzabili).
PO, P1, P2, P3: costituiscono i latch di uscita delle porte 0, 1, 2 e 3. Non sono invece presenti latch per i dati in ingresso alle quattro porte.
I bit delle porte PO - P3 sono indirizzabili individualmente
(ad esempio il bit 3 della porta PO viene indicato con P0.3).
Dopo un reset i bit delle porte PO-P3 sono tutti a 1
IP, IE: registri di controllo interruzioni.
TMOD , TCON : registri di controllo contatori/timers.
SCON: registro di controllo porta seriale.
PCON: registro di controllo risparmio energetico.
THO, TLO e TH1, TL1: sono i registri di conteggio a 16 bit (coppie a 8 bit) dei contatori/timer interni.
SBUF: è costituito da
due registri separati, un registro buffer di trasmissione ed un
registro buffer di ricezione. Quando un dato viene trasferito
in SBUF, va nel buffer di trasmissione e vi viene mantenuto per
la trasmissione seriale (la scrittura in SBUF fa anche iniziare
la trasmissione). Quando un dato viene letto da SBUF proviene dal
buffer di ricezione.