Anda di halaman 1dari 22

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: COp Endereço

 queremos endereçar toda a memória virtual


 queremos endereçar determinadas estruturas
de dados mais facilmente
 queremos rapidez, enfim, queremos ...
IC - UFF
Modos de endereçamento
 Imediato
 Direto

 Indireto

 Registrador

 Registrador indireto

 Deslocamento

IC - UFF  ...
Imediato

Instrução

COp Operando

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
Instrução

COp End

Operando

Memória
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

COp End

Apontador

Operando

Memória
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
Instrução

COp R

Operando

Registradores
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
Instrução

COp R

Operando

Apontador

Registradores Memória
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
Instrução

COp R End

Operando

Apontador

Registradores Memória
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

Pilha
Implícito

Registrador

Apontador da Memória
IC - UFF pilha
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

Anda mungkin juga menyukai