Modos de endereçamento
Eng. Armando Matsinhe
Acesso de dados
Uma instrução de máquina é um comando para uma operação
básica da Unidade Central de Processamento (UCP). Na visão
de Stallings (2003), uma instrução deve especificar o código
da operação que será realizada, a referência dos operandos
fonte e destino e o endereço da próxima instrução
Código de Operação (COp.): define o que fazer e como fazer
ao processador;
Operando: indica ao processador qual dado será manipulado.
COp Endereço
Eng. Armando Matsinhe
Modos de endereçamento
• Imediato
• Direto
• Indireto
• Registrador
• Registrador indireto
• Deslocamento (Relativo, Base e Filha)
• Indexação (Auto, Pós e Pré)
Eng. Armando Matsinhe
Modo imediato
• Operando é parte da instrução: campo de endereço
• Nenhum outro acesso à memória é feito além da
busca da instrução
• Maior rapidez
• Tamanho dos operandos é limitado ao tamanho do
campo de endereços
Eng. Armando Matsinhe
Imediato
Operando
Instrução
COp
Eng. Armando Matsinhe
Modo directo
• Campo de endereço contém o endereço efetivo do
operando
• Só uma referência à memória é feita
• Espaço de endereçamento limitado
Eng. Armando Matsinhe
Directo
End
Memória
Instrução
Operando
COp
Eng. Armando Matsinhe
Modo indireto
• Campo de endereço referencia um apontador em
memória, que referencia o operando
• Para uma palavra de tamanho N, um espaço de
endereçamento de 2N é acessível
• Duas referências à memória são feitas: mais lento
Eng. Armando Matsinhe
Indireto
Instrução
End
Memória
Operando
COp
Apontador
Eng. Armando Matsinhe
Modo registrador
• Similar ao endereçamento direto, contudo o campo de
endereço refere-se a um registrador em vez de memória
• Como há número limitado de registradores, campo de
endereço (por registrador) é pequeno
• Não há necessidade de referências à memória  maior
rapidez
Eng. Armando Matsinhe
Registrador
R
Registradores
Instrução
Operando
COp
Eng. Armando Matsinhe
Modo registrador indireto
• Similar ao endereçamento indireto
• Operando é obtido por referência de um apontador
mantido em registrador
• Maior espaço de endereçamento (2N) que o modo
registrador
• Uma referência de memória a menos que o modo
indireto
Eng. Armando Matsinhe
Registrador indireto
Operando
R
Registradores
Memória Pricinpal
Instrução
COp
Apontador
Eng. Armando Matsinhe
Modo deslocamento
• O endereço efetivo é obtido como:
• EndEf = End + (R)
• Os três modos mais comuns são:
• Endereçamento relativo
• Endereçamento registrador base
• Endereçamento indexado
Eng. Armando Matsinhe
Deslocamento Relativo
Operando
End
R
Registradores Memória
Instrução
Apontador
COp
Eng. Armando Matsinhe
Endereçamento relativo
• Há uma referência implícita ao contador de programa
• EndEf = End + (PC)
• Como referência é implícita, não há campo R 
campo End pode ser maior
• Explora o conceito de localidade de referências
Eng. Armando Matsinhe
Endereçamento registrador base
• O registrador contém o endereço base de memória
• O campo End contém um deslocamento em relação
a essa base
• Registrador pode ser implícito ou não
• É uma forma conveniente de implementar
segmentação (e.g., 80x86)
Eng. Armando Matsinhe
Eng. Armando Matsinhe
Endereçamento indexado
• Similar ao registrador base, contudo, campo de endereço
pode ser maior
• O registrador contém o deslocamento
• Interessante para acesso a arrays: há instruções da UCP para
incremento de registradores!
• Auto-indexação: incremento em um único ciclo de instrução
Eng. Armando Matsinhe
Pilha
Instrução
Implícito
Apontador da pilha
Pilha
Memória
Registrador
Eng. Armando Matsinhe
Modo pilha
• É uma forma de endereçamento implícito
• As instruções de máquina sempre atuam no(s)
operando(s) do topo da pilha
Eng. Armando Matsinhe
Formato das instruções
• Definição dos bits na instrução
• Formato inclui o código de operação e os operandos
• A alocação dos campos (bits) dependerá do número de
modos de endereçamento, do número de operandos, ...
• Múltiplos formatos em um único conjunto de instruções
Eng. Armando Matsinhe
Eng. Armando Matsinhe

Resumo Endereçamento de dados.pdf