Sistemas Embarcados - Registros SFR
Um registro de função especial (ou registro de propósito especial ou simplesmente registro especial) é um registro dentro de um microprocessador que controla ou monitora as várias funções de um microprocessador. Como os registradores especiais estão intimamente ligados a alguma função ou status especial do processador, eles podem não ser graváveis diretamente por instruções normais (como adicionar, mover, etc.). Em vez disso, alguns registros especiais em algumas arquiteturas de processador requerem instruções especiais para modificá-los.
No 8051, os registradores A, B, DPTR e PSW fazem parte do grupo de registradores comumente referido como SFR (registradores de função especial). Um SFR pode ser acessado por seu nome ou por seu endereço.
A tabela a seguir mostra uma lista de SFRs e seus endereços.
Endereço de Byte | Endereço 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 | - | - | - | AC | BB | BA | B9 | B8 | IP |
B0 | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 | P3 |
A2 | AF | - | - | AC | AB | AA | A9 | A8 | IE |
A0 | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 | P2 |
99 | Não é endereçável por bits | SBUF | |||||||
98 | 9F | 9E | 9D | 9C | 9B | 9A | 99 | 98 | SCON |
90 | 97 | 96 | 95 | 94 | 93 | 92 | 91 | 90 | P1 |
8D | Não é endereçável por bits | TH1 | |||||||
8C | Não é endereçável por bits | TH0 | |||||||
8B | Não é endereçável por bits | TL1 | |||||||
8A | Não é endereçável por bits | TL0 | |||||||
89 | Não é endereçável por bits | TMOD | |||||||
88 | 8F | 8E | 8D | 8C | 8B | 8A | 89 | 88 | TCON |
87 | Não é endereçável por bits | PCON | |||||||
83 | Não é endereçável por bits | DPH | |||||||
82 | Não é endereçável por bits | DPL | |||||||
81 | Não é endereçável por bits | SP | |||||||
80 | 87 | 87 | 85 | 84 | 83 | 82 | 81 | 80 | P0 |
Considere os dois pontos a seguir sobre os endereços SFR.
Um registro de função especial pode ter um endereço entre 80H e FFH. Esses endereços estão acima de 80H, pois os endereços de 00 a 7FH são os endereços da memória RAM dentro do 8051.
Nem todo o espaço de endereço de 80 a FF é usado pelo SFR. Os locais não usados, 80H a FFH, são reservados e não devem ser usados pelo programador 8051.
CY | PSW.7 | Carregar bandeira |
AC | PSW.6 | Bandeira de transporte auxiliar |
F0 | PSW.5 | Sinalizador 0 disponível para o usuário para fins gerais. |
RS1 | PSW.4 | Registro de banco seletor bit 1 |
RS0 | PSW.3 | Registro de banco seletor bit 0 |
OV | PSW.2 | Sinalizador de estouro |
- | PSW.1 | FLAG definível pelo usuário |
P | PSW.0 | Paridade FLAG. Energizado / apagado pelo hardware durante o ciclo de instrução para indicar o número par / ímpar de 1 bit no acumulador. |
No exemplo a seguir, os nomes dos registros SFR são substituídos por seus endereços.
CY | AC | F0 | RS1 | RS0 | OV | - | P |
---|
Podemos selecionar o bit do banco de registro correspondente usando os bits RS0 e RS1.
RS1 | RS2 | Banco de registro | Endereço |
---|---|---|---|
0 | 0 | 0 | 00H-07H |
0 | 1 | 1 | 08H-0FH |
1 | 0 | 2 | 10H-17H |
1 | 1 | 3 | 18H-1FH |
A palavra de status do programa (PSW) contém bits de status para refletir o estado atual da CPU. As variantes do 8051 fornecem um registro de função especial, PSW, com essas informações de status. O 8251 fornece dois sinalizadores de status adicionais, Z e N, que estão disponíveis em um segundo registro de função especial chamado PSW1.