220 likes | 305 Views
Parte 1: Organização de Computadores. 6. Modos de endereçamento Texto base: capítulo 10 Computer Organization and Architecture W. Stallings. Acessando dados. Questão: como especificar os operandos? Em um formato de instrução típico, o espaço de endereçamento é bem limitado:
E N D
Parte 1:Organização de Computadores 6. Modos de endereçamento Texto base: capítulo 10 Computer Organization and Architecture W. Stallings
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
Modos de endereçamento • Imediato • Direto • Indireto • Registrador • Registrador indireto • Deslocamento • ...
Operando Instrução COp Imediato
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
Instrução End COp Operando Memória Direto
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
Instrução End COp Apontador Operando Memória Indireto
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
Instrução R COp Operando Registradores Registrador
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
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
Instrução R COp Operando Apontador Registradores Memória Registrador indireto
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
Instrução End R COp Operando Apontador Registradores Memória Deslocamento
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
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
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)
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
Pilha Implícito Registrador Memória Apontador da pilha Pilha Instrução
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
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