Você está na página 1de 3

Registrador (informática)

Na arquitetura de computadores, um registrador é uma pequena porção de memória


localizada no processador central. Os registradores permitem acessos muito rápidos a
dados e são usados para aumentar a velocidade de execução de programas. A maioria
das modernas arquiteturas de computadores operam transferindo dados da memória
principal para os registradores, onde estes são processados e o resultado é devolvido à
memória principal - é a chamada arquitetura de carregamento-armazenamento.

Os registradores estão no topo da hierarquia da memória e propiciam ao sistema o modo


mais rápido de acessar dados. O termo geralmente é usado para designar apenas o grupo
de registradores que podem ser utilizados diretamente para entradas ou saídas através de
instruções definidas no conjunto de instruções do processador. O conjunto de instruções
da arquitetura x86, por exemplo, define um conjunto de 8 registradores de 32 bits, mas
uma CPU deste tipo possui mais registradores do que apenas estes.

Categorias de Registradores

Os registradores são medidos pelo número de bits que podem conter. Atualmente as
máquinas possuem registradores de 32 ou 64 bits. De acordo com o conteúdo, os
registradores podem ser classificados em registradores de uso geral, de segmento, de
ponteiro e de estado.

Registradores de uso geral

Registrado Aplicação Uso mais comum


r
EAX Acumulador Acessar portas de entrada/saída, realizar operações
aritméticas, fazer chamada de interrupções, etc.
EBX Base Ponteiro base para acessar a memória. Recebe alguns
valores de retorno.
ECX Contador Contador para loops e deslocamentos (shift). Recebe
alguns valores de interrupção.
EDX Dados Acessar portas de entrada/saída, realizar operações
aritméticas, fazer algumas chamadas de interrupção.

Registradores de segmento

Registrado Aplicação Uso mais comum


r
CS Segmento de Contém o segmento de código no qual o programa está
Código rodando. Mudar seu valor pode pendurar o computador.
DS Segmento de Contém o segmento de dados que o programa acessa.
Dados Mudar seu valor pode resultar em dados errados.
SS Segmento da Contém o segmento de pilha usado pelo programa.
Pilha (Stack) Algumas vezes tem o mesmo valor que DS. Mudar seu
valor pode levar a resultados imprevisíveis, geralmente
relacionados aos dados.
ES, FS, GS Segmentos Estes registradores de segmento estão disponíveis para
Extras endereçamentos distantes (far pointer) como, por
exemplo, memória de vídeo.

Registradores de ponteiro

Registrado Aplicação Uso mais comum


r
ESI Índice de É usado para copiar strings de arrays da memória.
Origem
EDI Índice de É usado para copiar strings, copiar e configurar arrays de
Destino memória e, juntamente com ES, para endereçamento
distante (far pointer).
EBP Base da Contém o endereço da base da pilha (stack).
Pilha
ESP Ponteiro da Contém o endereço do topo da pilha.
Pilha

Registradores de estado

Um registrador de estado é uma coleção de bits que indicam o estado de várias


operações matemáticas. Os bits são comumente chamados de flags (bandeiras) e são
usados durante testes de condição e ramificação de programas. A número de bits, sua
ordem e a interpretação dada a eles depende de cada processador. Nos processadores
Intel as flags mais importantes do principal registrador de estado têm o seguinte
significado:

Número Nome Uso


0 CF - Carry É a flag do "vai um" numa soma ou do "empresta um"
Flag numa subtração feito no bit mais significativo da ALU
(unidade aritmético-lógica).
1 - Contém o valor 1.
2 PF - Parity Flag de Paridade: indica se o número de bits de um
Flag resultado é par ou ímpar.
3 - Contém o valor 0.
4 AF - Auxiliary Flag Auxiliar.
Flag
5 - Contém o valor 0.
6 ZF - Zero Flag Indica se o resultado foi zero.
7 SF - Sign Flag Indica se o resultado é positivo ou negativo.
8 TF - Trap Flag -
9 IF - Indica se houve uma solicitação de interrupção.
Interruption
Flag
10 (0A) DF - Direction Usada em todas as instruções que usam o prefixo REP
Flag (repetição), como MOVS, MOVSD, MOVSW, etc.
11 (0B) OF - Overflow Indica quando o resultado de uma operação precisa de mais
Flag bits do que os disponíveis no registrador.

Você também pode gostar