Buscar

Endereçamento de Memórias

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
*
*
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
Arquitetura e organização de computadores
Endereçamento de memória.
Aula 04
Prof. Diovani Milhorim
*
*
*
Endereçamento de memória
Interpretação de endereços de memória
*
*
*
Endereçamento de memória
Interpretação de endereços de memória
Ordem dos bytes
*
*
*
Endereçamento de memória
Interpretação de endereços de memória
Modos de endereçamento
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo registrador
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo registrador
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo registrador
Modo por registrador direto O operando aponta para um registrador, o qual contém o dado.  Modo por registrador indireto O operando aponta para um registrador, o qual contém um endereço de memória (ponteiro) para o dado. 
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo registrador
Vantagens  Maior velocidade / rapidez de execução - o acesso ao registrador é muito mais rápido que o acesso à memória. Economia de espaço de armazenamento de instrução (o tamanho da instrução é menor porque como são poucos registradores, são menos bits para seus endereços). Desvantagem Pequeno número de registradores - se forem muitos os dados endereçados por registrador, os registradores disponíveis podem não ser suficientes.
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo registrador
Exemplos  Os exemplos usam instruções do Intel 8080: 
ADD r (add register) ==> (ACC) <--- (ACC) + (r) - soma o conteúdo do registrador r ao conteúdo do acumulador (endereçamento por registrador, direto)  ADD M (add memory) ==> (ACC) <--- (ACC) + ((M)) - soma o conteúdo da posição de memória indicada pelo registrador M ao conteúdo do acumulador (endereçamento por registrador, indireto)  INR M (increment memory) ==> ((M)) <--- ((M)) + 1 - incrementa o conteúdo da posição de memória indicada pelo registrador M (endereçamento por registrador, indireto)  
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo registrador
Exemplos  Os exemplos usam instruções do Intel 8080: 
DCR r (decrement register) ==> (r) <--- (r) - 1 - decrementa o conteúdo do registrador r (endereçamento por registrador, direto)  MOV r1, r2 (move register) ==> (r1) <--- (r2) - o conteúdo do registrador r2 é copiado para o registrador r1 (endereçamento por registrador, direto).  MOV M, r (move to memory) ==> ((M)) <--- (r) - o conteúdo do registrador r é copiado para a posição de memória cujo endereço está no registrador M (endereçamento por registrador, indireto).  
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo Imediato
*
*
*
Endereçamento de memória
Modos de endereçamento
MODO IMEDIATO O valor do campo operando é o próprio dado. É usado para trabalhar com valores constantes. O operando é dito operando imediato (o operando é o próprio valor a ser operado, ou seja, é o próprio dado a ser processado). 
*
*
*
Endereçamento de memória
Modos de endereçamento
MODO IMEDIATO 
	Vantagem O operando é obtido durante o ciclo de busca, em apenas 1 acesso. Não é necessário fazer nenhum acesso à MP no ciclo de execução, acarretando maior rapidez na execução.  
*
*
*
Endereçamento de memória
Modos de endereçamento
MODO IMEDIATO 
	Desvantagens a) Este modo de endereçamento não permite flexibilidade para alterar dados que variam a cada execução do programa, portanto não é adequado para variáveis repetidamente operadas com diferentes valores a cada execução do programa.
	b) O tamanho do dado fica limitado ao número de bits do operando (campo operando da instrução). A limitação de tamanho do campo operando reduz o valor máximo do dado que pode ser armazenado. 
*
*
*
Endereçamento de memória
Modos de endereçamento
MODO IMEDIATO 
	No Intel 8080, o campo Operando tem 8 bits, portanto o maior valor deste campo será limitado a 28 = 256. 
	Existem instruções que permitem carregar doublewords, isto é, palavras duplas que ocupam 2 células de memória, em que o maior valor será limitado a 216 = 65.536 (64 k). 
*
*
*
Endereçamento de memória
Modos de endereçamento
MODO IMEDIATO 
	 Utilização - Inicialização de contadores - Constantes - Armazenamento de ponteiros em registradores - Indicação de quantidade de posições em operações de deslocamento de bits (multiplicação e divisão) Exemplos Obs.: Instruções do Intel 8080. LDI Op ==> ACC <--- Op = carrega o valor (hexadecimal) do operando no acumulador. LDI 50 (load immediate) ==> ACC <---- 50 (carrega o valor hexadecimal 50 no acumulador) 
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo Direto ou Absoluto
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo Direto ou Absoluto
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo Direto ou Absoluto
Vantagens a) É aplicado em mais situações que o modo imediato;  b) Requer apenas uma referência à memória para busca do dado (além de uma para a busca da instrução), sendo mais rápido que o modo indireto.
Desvantagens a) Limitação do endereço da MP que pode ser indicado pelo tamanho do campo operando.  b) É mais lento que o modo imediato.
Utillização Quando o dado varia de valor a cada execução
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo Direto ou Absoluto
 Exemplos de Instruções do Intel 8080: LDA Op (”load accumulator”), sendo Op um endereço na memória ==> ACC <--- (Op)  
	(carrega o conteúdo da posição de memória indicada pelo operando no acumulador).
 LDA 978A ===> ACC <--- (978A) = carrega no acumulador o conteúdo da posição de memória 978A. 
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo Direto ou Absoluto
 Exemplos de Instruções do Intel 8080: JMP Op ("jump") ==> CI <--- (Op)  JMP 1000H ==> CI<--- (1000H) = causa um desvio para o endereço contido nas posições 1000 e 1001 (hexadecimal) da memória, carregando o conteúdo das posições 1000 e 1001H no CI 
	Obs: como no processador 8080 o C I contém 16 bits (um endereço), serão necessárias DUAS células de memória (uma célula contém 8 bits), o que requer dois ciclos de busca à memória.
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo Direto ou Absoluto
Exemplos de Instruções do Intel 8080:
 MOV R, Op ==> R <--- (Op)  MOV B, 7AC1 ==> B <--- (7AC1), move o conteúdo da posição de memória (8 bits) indicada pelo operando - 7AC1 - para o registrador B (8 bits).
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo indireto de memória
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo indireto de memória
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo indireto de memória
Exemplo:  
		LDID Op ==> ACC <--- ((Op)) São necessários 3 ou mais acessos à memória: 1 para buscar o opcode, 1 (ou 2, quando for uma referência à memória) para buscar o operando (Op) e mais 1 para buscar o dado ((Op)) propriamente dito (ou 2, quando o dado for um endereço de memória; por exemplo, quando for uma instrução de desvio). 
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo indireto de memória
Vantagem  a) Permite implementar estruturas de organização de dados mais complexas, mais sofisticadas. b) Elimina a limitação de células endereçáveis.
Desvantagem Requer maior quantidade de acessos à MP para completar o ciclo de execução da instrução, acarretando que o tempo requerido para a execução da instrução é maior. Obs.1: É possível haver várias indireções. Em algumas máquinas, existe 1 bit que sinaliza no caso de existirem várias Indireções.
Enquanto este bit for 0, continua com as indireções, até encontrá-lo ligado.
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo indireto de memória
	Utilização Manutenção de ponteiro de dados Exemplo:  Relação de dados a serem movimentados para novas posições de memória (por exemplo, elementos de vetores), basta modificar o valor da célula endereçada pela instrução (não é necessário mudar o valor do operando).
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo indireto registrador
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo indireto registrador
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo indireto registrador
Vantagens  Maior velocidade / rapidez de execução - o acesso ao registrador é muito mais rápido que o acesso à memória. Economia de espaço de armazenamento de instrução (o tamanho da instrução é menor porque como são poucos registradores, são menos bits para seus endereços). Desvantagem Não são adequados para transferência de variáveis da MP para ULA. Pequeno número de registradores - se forem muitos os dados endereçados por registrador, os registradores disponíveis podem não ser suficientes
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo indireto registrador
Utilização  Implementação de contadores. Exemplo de uso:  vetor E(1) ... E (100) Ri contém E ( i ) para incrementar e percorrer o vetor Obs.: No Intel 8080, a identificação do registrador envolvido na operação faz parte do próprio opcode. 
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo indireto registrador
Exemplos  Os exemplos usam instruções do Intel 8080: ADD r (add register) ==> (ACC) <--- (ACC) + (r) - soma o conteúdo do registrador r ao conteúdo do acumulador (endereçamento por registrador, direto) 
 ADD M (add memory) ==> (ACC) <--- (ACC) + ((M)) - soma o conteúdo da posição de memória indicada pelo registrador M ao conteúdo do acumulador (endereçamento por registrador, indireto)
  INR M (increment memory) ==> ((M)) <--- ((M)) + 1 - incrementa o conteúdo da posição de memória indicada pelo registrador M (endereçamento por registrador, indireto) 
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo indireto registrador
 Exemplos  DCR r (decrement register) ==> (r) <--- (r) - 1 - decrementa o conteúdo do registrador r (endereçamento por registrador, direto)  
	MOV r1, r2 (move register) ==> (r1) <--- (r2) - o conteúdo do registrador r2 é copiado para o registrador r1 (endereçamento por registrador, direto).
  MOV M, r (move to memory) ==> ((M)) <--- (r) - o conteúdo do registrador r é copiado para a posição de memória cujo endereço está no registrador M (endereçamento por registrador, indireto).
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo deslocamento
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo deslocamento
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo deslocamento
	Utiliza um registrador chamado Registrador de Base, que contém o endereço base na MP e um operando, que contém o deslocamento do dado em relação à base. Utilização É usado para relocação de programas: define endereço inicial da área do programa e o endereço inicial da área de dados (pode ser utilizado um registrador para endereços e um para dados) Nota: Os microprocessadores Intel (após 8086/8) usam registradores específicos como registradores-base. Estes Registradores de Base são utilizados para implementar o endereçamento de memória e a segmentação da memória em páginas de 64 kbytes. 
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo indexado
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo indexado
	O endereço de cada elemento é obtido através da soma do campo Operando com o conteúdo de um registrador (Registrador de Índice). O endereço de cada elemento (por exemplo, de um vetor) é a soma (antes da colocação do endereço no REM) do valor do campo operando com o conteúdo de um registrador (escolhido como registrador índice). Vantagem Rapidez na execução das instruções de acesso aos dados (a alteração dos endereços é realizada na UCP. Utilização Manipulação de estruturas de dados mais sofisticadas (vetores).
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo indexado
	Vantagem Rapidez na execução das instruções de acesso aos dados (a alteração dos endereços é realizada na UCP. Utilização Manipulação de estruturas de dados mais sofisticadas (vetores).
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo indexado
Obs.: O Intel 8080 não possui nenhuma instrução com modo de endereçamento indexado, o qual somente foi introduzido na família Intel a partir do 8086. Exemplos LDX Ri, Op ==> ACC <--- ((Op) + (Ri)) ADX Ri, Op ==> ACC <--- ACC + ((Op) + (Ri))
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo auto incremento
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo auto decremento
*
*
*
Endereçamento de memória
Modos de endereçamento
Modo escalonado
*
*
*
Endereçamento de memória
Modos de endereçamento
IDENTIFICAÇÃO DO MODO DE ENDEREÇAMENTO DA INSTRUÇÃO 
O Código de Operação identifica o modo de endereçamento, através de seu mnemônico e do correspondente código binário.
Determinados bits no opcode podem indicar o modo de endereçamento ou a instrução pode possuir um campo específico para indicar o modo de endereçamento, através de códigos em bits. O registrador utilizado no endereçamento também pode ser indicado por bits determinados no opcode. 
*
*
*
Endereçamento de memória
Modos de endereçamento
Efeitos de Temporização dos Modos de Endereçamento
O modo de endereçamento afeta o tempo requerido para executar uma instrução e a memória requerida para seu armazenamento
Instruções que usam endereçamento implícito ou por registrador são executadas muito rápido, pois trabalham direto com o hardware do processador e seus registradores. A instrução toda pode ser buscada (“fetched”) em um único ciclo de busca (um único acesso à memória). O número de acessos à memória é o mais importante fator no consumo de tempo de execução da instrução.
*
*
*
Endereçamento de memória
Modos de endereçamento
Exercício:
Qual será o valor carregado no acumulador quando forem executadas as seguintes instruções:
	LDI Op ==> (ACC) <--- Op (modo de endereçamento Imediato) LDA Op ==> (ACC) <--- (Op) (modo de endereçamento direto) LDID Op ==> (ACC) <--- ((Op)) (modo de endereçamento Indireto) LDR Op ==> (ACC) <--- (R) (modo de endereçamento Direto por Registrador) LDIR Op ==> (ACC) <--- ((R)) (modo de endereçamento Indireto por Registrador) LDX Op ==> (ACC) <--- ((Ri) + (Op)) (modo de endereçamento Indexado) LDB Op ==> (ACC) <--- ((Rb) + (Op)) (modo de endereçamento Base + Deslocamento)
*
*
*
Endereçamento de memória
Modos de endereçamento
Exercício:
*
*
*
Endereçamento de memória
Modos de endereçamento
Exercício:

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais