Na arquitetura de computadores, um modo de endereçamento de registrador é uma forma de especificar a localização de um operando em um registrador. Diferentes modos de endereçamento fornecem diferentes maneiras de acessar dados em registradores, oferecendo flexibilidade e eficiência na escrita de programas em linguagem assembly.
Aqui estão alguns modos comuns de endereçamento de registro:
1. Cadastre o Endereçamento Direto:
No endereçamento direto de registradores, o operando é o próprio registrador. O opcode da instrução especifica o registrador a ser usado. Exemplo:
```montagem
ADICIONE R1, R2; Adiciona o conteúdo de R2 a R1 e armazena o resultado em R1
```
2. Cadastre o Endereçamento Indireto:
No endereçamento indireto de registrador, o operando é o endereço de memória armazenado em um registrador. O conteúdo do registrador é usado como o endereço do qual o operando real é obtido. Exemplo:
```montagem
ADICIONAR (R1), R2; Adiciona o conteúdo do local de memória apontado por R1 a R2 e armazena o resultado em R2
```
3. Cadastre o Endereçamento Relativo:
No endereçamento relativo de registrador, um valor de deslocamento é adicionado ao conteúdo de um registrador para formar o endereço efetivo do operando. O deslocamento pode ser uma constante ou o valor de outro registro. Exemplo:
```montagem
ADICIONAR [R1+10], R2; Adiciona o conteúdo do local de memória no endereço R1+10 a R2 e armazena o resultado em R2
```
4. Registrar endereçamento de deslocamento:
No endereçamento de deslocamento de registrador, o conteúdo de um registrador é adicionado a um endereço base para formar o endereço efetivo do operando. O endereço base normalmente é uma constante. Exemplo:
```montagem
ADICIONAR [1000+R1], R2; Adiciona o conteúdo do local de memória no endereço 1000+R1 a R2 e armazena o resultado em R2
```
5. Endereçamento Indexado:
O modo de endereçamento indexado usa um registro de índice para modificar o endereço base. Combina o endereço base com o valor escalonado do registrador de índice. Exemplo:
```montagem
ADICIONAR [R1+R2], R3; Adiciona o conteúdo do local de memória no endereço R1+2*R2 a R3 e armazena o resultado em R3
```
6. Endereçamento de incremento automático/decremento automático:
No modo de endereçamento com incremento automático, o registro que contém o endereço é incrementado após o operando ser acessado. No modo de endereçamento com decremento automático, ele é decrementado antes de acessar o operando. Isso é comumente usado para operações iterativas. Exemplo:
```montagem
ADICIONAR [R1++], R2; Adiciona o conteúdo do local de memória no endereço R1 a R2 e incrementa R1
```
Estes são apenas alguns exemplos de modos de endereçamento de registradores. Diferentes arquiteturas de conjunto de instruções (ISAs) podem ter diferentes modos de endereçamento, cada um com suas próprias vantagens e usos.