Modos de endereçamento

Propaganda
Parte 1:
Organização de Computadores
6. Modos de endereçamento
Texto base: capítulo 10
Computer Organization and Architecture
W. Stallings
IC - UFF
Acessando dados


Questão: como especificar os operandos?
Em um formato de instrução típico, o
espaço de endereçamento é bem
COp
Endereço
limitado:



IC - UFF
queremos endereçar toda a memória virtual
queremos endereçar determinadas estruturas
de dados mais facilmente
queremos rapidez, enfim, queremos ...
Modos de endereçamento
Imediato
 Direto
 Indireto
 Registrador
 Registrador indireto
 Deslocamento
 ...

IC - UFF
Imediato
Instrução
COp
IC - UFF
Operando
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
IC - UFF
Direto
Instrução
COp
End
Operando
IC - UFF
Memória
Modo direto



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
IC - UFF
Indireto
Instrução
COp
End
Apontador
Operando
Memória
IC - UFF
Modo indireto



IC - UFF
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
Registrador
Instrução
COp
Operando
IC - UFF
Registradores
R
Modo registrador (1)



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
IC - UFF
Modo registrador (2)


É importante que dados sejam mantidos
nos registradores: se trazidos e levados
de/para a memória  ineficência!
Papel do compilador e do programador
em linguagem de montagem
IC - UFF
Registrador indireto
Instrução
COp
R
Operando
Apontador
IC - UFF
Registradores
Memória
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
IC - UFF
Deslocamento
Instrução
COp
R
End
Operando
Apontador
IC - UFF
Registradores
Memória
Modo deslocamento

O endereço efetivo é obtido como:


EndEf = End + (R)
Os três modos mais comuns são:



IC - UFF
endereçamento relativo
endereçamento registrador base
endereçamento indexado
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
IC - UFF
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)
IC - UFF
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
IC - UFF
Pilha
Instrução
Pilha
Implícito
Registrador
IC - UFF
Apontador da
pilha
Memória
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
IC - UFF
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
IC - UFF
Download