IC - UFF
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 limitado: queremos endereçar toda a memória virtual queremos endereçar determinadas estruturas
de dados mais facilmente queremos rapidez, enfim, queremos ...
COp Endereço
IC - UFF
Modos de endereçamento Imediato Direto Indireto Registrador Registrador indireto Deslocamento ...
IC - UFF
Imediato
Operando
Instrução
COp
IC - UFF
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
End
Memória
Instrução
Operando
COp
IC - UFF
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
End
Memória
Operando
COp
Apontador
IC - UFF
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
IC - UFF
Registrador
R
Registradores
Instrução
Operando
COp
IC - UFF
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
Operando
R
Registradores Memória
Instrução
COp
Apontador
IC - UFF
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
Operando
EndR
Registradores Memória
Instrução
Apontador
COp
IC - UFF
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
IC - UFF
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
Implícito
Apontador dapilha
Pilha
Memória
Registrador
IC - UFF
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
Top Related