Modos de endereçamento do microprocessador 8086 O microprocessador 8086 suporta uma ampla variedade de modos de endereçamento, permitindo acessar dados e locais de memória de maneira flexível. Esses modos de endereçamento determinam como o endereço efetivo de um operando é calculado com base nas informações fornecidas na instrução. O 8086 oferece vários modos de endereçamento, cada um com suas características únicas:
1. Registrar modo de endereçamento: - Este modo de endereçamento utiliza um dos registradores de uso geral (AX, BX, CX, DX) para especificar o operando.
- O operando está localizado diretamente no registrador especificado.
2. Modo de endereçamento imediato: - O operando está incluído diretamente na própria instrução.
- Este modo é útil para carregar um valor constante ou dados em um registro.
3. Modo de endereçamento direto: - O operando está localizado em um local de memória cujo endereço é especificado explicitamente na instrução.
- O endereço efetivo é determinado pelo endereço de 16 bits fornecido.
4. Registrar modo de endereçamento indireto: - Neste modo, o operando está localizado em um local de memória apontado pelo conteúdo de um registrador de uso geral.
- O registrador especificado contém o endereço do local da memória.
5. Modo de endereçamento indireto de registro baseado: - Semelhante ao endereçamento indireto de registro, mas adiciona um registro base (BP ou BX) ao valor de deslocamento armazenado em um registro de uso geral.
- O endereço efetivo é calculado somando o conteúdo da base registradora ao offset.
6. Modo de endereçamento indexado: - Utiliza uma combinação de um registrador base (BP ou BX) e um registrador de índice (SI ou DI) para calcular o endereço efetivo.
- O registro de índice é escalonado em 1, 2, 4 ou 8, dependendo do atributo de tamanho especificado, e adicionado ao valor do registro base.
7. Modo de endereçamento indexado baseado: - Combina endereçamento indireto de registro baseado com endereçamento indexado.
- O endereço efetivo é calculado somando o conteúdo do registrador base (BP ou BX), o registrador de índice escalonado (SI ou DI) e um valor de deslocamento.
8. Modo de endereçamento de string: - Projetado especificamente para operações de string, este modo de endereçamento usa o registro DS como registro base e o registro SI ou DI como registro de índice.
- É comumente usado para operações de transferência de dados de memória para memória.
9. Modo de endereçamento relativo: - Usado para saltos e ramificações, onde o operando especifica uma distância relativa da instrução atual.
- O endereço efetivo é calculado adicionando o valor do deslocamento relativo ao contador de programa atual (PC).
10. Modo de endereçamento implícito: - Neste modo o operando está implícito ou inerente à própria instrução.
- Nenhum endereço explícito é especificado, pois a instrução opera em operandos implícitos.
Esses modos de endereçamento fornecem ao microprocessador 8086 a flexibilidade de acessar e manipular dados de diferentes locais de memória e registros. A escolha do modo de endereçamento depende da instrução específica, do tipo de dados que está sendo acessado e dos objetivos de otimização do programador.