• Nenhum resultado encontrado

A6-ModosEnderecamento

N/A
N/A
Protected

Academic year: 2021

Share "A6-ModosEnderecamento"

Copied!
41
0
0

Texto

(1)

Modos de Endereçamento

Instruções: especificação de modelos de acesso a espaços de memória.

(2)

Conceito - Operação

•  Maneira como as instruções direcionam o acesso às unidades de memória

•  O cálculo dos endereços são realizados simultaneamente a execução da instrução

•  Promove o acesso eficiente as estruturas de dados e especificam o endereço completo de memória

•  Utilizam menor número de bits no campo de endereço da instrução

•  Realiza o cálculo de endereços relativos

▫  Posição da instrução corrente

▫  Posição de base

▫  Independência de um determinado programa em relação à posição de memória onde é carregado pelo SO.

(3)

Objetivos

•  Tornar eficiente os acessos a: ▫  Estruturas de dados

  Matrizes, listas, pilhas.

▫  Constantes

▫  Variáveis

▫  Demais estruturas

(4)

Modos de endereçamento

que estudaremos

•  Imediato •  Direto •  Indireto •  Registrador •  Registrador Indireto •  Deslocamento (Indexado) •  Pilha •  Imediato

(5)

Imediato

•  O operando está dentro da instrução em execução a ele relacionada.

•  (fetch) No instante em que a CPU traz a

instrução para ser interpretada na UC, o operando também é alcançado.

(6)

Imediato

•  Pontos positivos

▫  A execução destes tipos de instruções é mais rápida

▫  Muito usado para iniciar variáveis com valores constantes, onde o valor binário compõe a própria instrução

▫  O acesso a memória é desnecessário

•  Limitação

▫  Número insuficiente de bits disponíveis na instrução para representar o valor da constante

(7)

Vamos lembrar de alguns

detalhes...

•  O que é Operando?

▫  Em código de máquina, operando é um valor, um argumento, no qual a instrução, nomeada por um procedimento mnemônico, atua.

▫  Pode ser um registrador, um endereço de memória, uma constante literal ou um label.

(8)

Vamos lembrar de alguns

detalhes...

•  Ops! E mnemônico?!

▫  Procedimento de substituição de códigos que

facilita a gravação na memória sem perda de precisão

▫  Método de memorização que consiste em um

conjunto de técnicas que estimulam o aprendizado, através dos mecanismos da memória

•  Faltou “Constante Literal”!

(9)

Imediato - Ilustração

Exemplo: ADD 8

CódOp Operando

Acumulador

+

(10)

Imediato

•  Aplicações:

▫  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).

(11)

Modos de endereçamento

que estudaremos

•  Imediato •  Direto •  Indireto •  Registrador •  Registrador Indireto •  Deslocamento (Indexado) •  Pilha •  Direto

(12)

Direto

•  Ocorre um acesso aleatório e direto a memória ▫  O operando já está contido na memória

▫  Requer somente uma (01) referência à memória para fetch do dado

•  O valor do operando indica o endereço do dado já conhecido pelo programador ou pelo compilador

(13)

Direto

•  É mais usado do que o modo imediato

•  Faz uso de valores variáveis

•  É mais rápido que o modo indireto

(14)

Direto

•  Dispensa a implementação de cálculos adicionais na busca do endereço efetivo

•  A área de endereçamento é limitada pelo campo

•  Endereço Efetivo (EE)

▫  Valor do campo N onde está o operando ou dado. Exemplo a seguir...

(15)

Direto - Ilustração

Exemplo: ADD N

CódOp Endereço N Acumulador

+

Instrução Memória Operando

(16)

Direto

•  Aplicação:

(17)

Modos de endereçamento

que estudaremos

•  Imediato •  Direto •  Indireto •  Registrador •  Registrador Indireto •  Deslocamento (Indexado) •  Pilha •  Indireto

(18)

Indireto

•  O campo operando contém um endereço de memória:

▫  Esse conteúdo é o endereço do dado a ser operado.

•  Há um duplo endereçamento

•  Permite implementar estruturas de organização de dados mais emaranhadas e sofisticadas

(19)

Indireto

•  Acaba com a limitação de células endereçáveis

•  Necessita de mais acessos à memória principal

▫  O que faz aumentar o tempo dispensado para execução da instrução

•  É utilizado para a manutenção de ponteiros de dados

•  O endereço intermediário é chamado de ponteiro (“pointer”)

(20)

Indireto - Ilustração

Exemplo: ADD (N)

CódOp Endereço N Acumulador

+

Instrução Memória Operando Endereço do Operando

(21)

Indireto

•  Aplicação:

(22)

•  Imediato •  Direto •  Indireto •  Registrador •  Registrador Indireto •  Deslocamento (Indexado) •  Pilha •  Registrador

Modos de endereçamento

que estudaremos

(23)

Registrador

•  São usados registradores para indicar a posição onde estão os dados.

•  Semelhante ao fluxo e funcionamento, quando comparados aos modelos direto e indireto.

•  A diferença é que o operando aponta para um registrador:

▫  Onde está o dado - endereçamento direto

▫  Ou referencia para a memória - endereçamento indireto

•  O campo ‘operando’ contém um endereço relativo a memória

(24)

Registrador

•  O operando está em um registrador indicado no campo de endereço da instrução.

•  A quantidade de registradores e o espaço de endereçamento são limitados.

•  O campo de endereço dispensa tamanho elevado ▫  As instruções são pequenas

▫  fetch a instrução e sua execução são mais rápidas

•  Mais registradores contribuem para o desempenho

▫  Isso requer bons compiladores ou uma boa programação assembly

(25)

Registrador Direto

O operando aponta para um registrador, onde está localizado o dado.

Registrador Indireto

O operando aponta para um registrador, onde está o endereço de memória (pointer) apontando para o dado.

(26)

Registrador - Ilustração

Exemplo: ADD R

CódOp Endereço do Registrador R

Acumulador

+

Instrução

Registradores

Operando

(27)

Registrador

•  Aplicação:

(28)

•  Imediato •  Direto •  Indireto •  Registrador •  Registrador Indireto •  Deslocamento (Indexado) •  Pilha •  Registrador Indireto

Modos de endereçamento

que estudaremos

(29)

Registrador Indireto

•  Faz um acesso a memória

•  O operando está na posição de memória indicada pelo do registrador apontado no campo de endereçamento

•  Quem será o EE?

(30)

Registrador - Ilustração

Exemplo: ADD (R)

CódOp Endereço do Registrador R

+

Instrução Registradores Endereço Acumulador

Indireto

Memória Operando

(31)

Vantagens x Desvantagens

•  (+) Bem aplicado na implementação de contadores

•  (+) Maior velocidade de execução

▫  O acesso ao registrador é muito mais rápido do que à memória

•  (+) Economia de espaço de armazenamento de instrução

▫  O tamanho da instrução é menor

▫  São poucos registradores

▫  Menos bits para endereçamento

•  (-) Inadequados para transferir variáveis da MP para ULA

•  (-) Pequeno número de registradores

▫  Insuficiência de registradores, no caso de haver muitos dados endereçados por registrador

(32)

•  Imediato •  Direto •  Indireto •  Registrador •  Registrador Indireto •  Deslocamento (Indexado) •  Pilha •  Deslocamento (Indexado)

Modos de endereçamento

que estudaremos

(33)

Deslocamento

•  O operando está na memória, em uma posição deslocada em relação ao endereço informado no campo ‘endereço’

•  O Endereço Efetivo é a junção dos conteúdos do operando e do registrador:

▫  Qualquer uma das variáveis podem guardar o endereço de base ou o conteúdo do deslocamento

(34)

Deslocamento - Ilustração

Exemplo: ADD A R

CódOp Registrador R

+

Instrução Registradores Endereço Base Acumulador Memória Operando Endereço A

+

(35)

Deslocamento - Ilustração

Exemplo: ADD A

CódOp

+

Instrução Registradores Endereço Base Acumulador Memória Operando Endereço A

+

(36)

•  Imediato •  Direto •  Indireto •  Registrador •  Registrador Indireto •  Deslocamento (Indexado) •  Pilha •  Pilha

Modos de endereçamento

que estudaremos

(37)

Pilha

•  Área da memória principal, endereçada pelo ponteiro de pilha (Stack Pointer)

•  O programa deve iniciar o Stack Pointer com o endereço base da pilha

▫  Na maioria das vezes, o mais alto disponível na MP

•  A pilha cresce decrementando o ponteiro da pilha

(38)

Pilha - Ilustração

Memória Principal Início da Pilha 0 Ponteiro da Pilha Processamento de Sub-Rotinas

(39)

Pilha

Exemplo de Processamento de sub-rotina e da pilha

▫  Execução linear do programa

▫  CALL instruction

  Chama uma sub-rotina

  O endereço da próxima instrução (conteúdo do CI) é

levado (push) para o topo da pilha

  Os registradores e flags são salvos na pilha (salva o

contexto do programa)

  O conteúdo do CI (ou Program Counter) é substituído

pelo endereço da sub-rotina

  A sub-rotina é então executada

  Ao final da execução da sub-rotina, é executada a

(40)

Pilha

Cotinua...

▫  RETURN instruction

  Os registradores e flags são restaurados.

Recompõe-se o contexto do programa call

  Retira (pop) o endereço anteriormente colocado no

topo da pilha

  Coloca este endereço no CI

(41)

Pilha

Importante!

Este processo admite ser repetitivo, em que uma determinada sub-rotina solicita uma segunda sub-rotina, e esta uma terceira, e assim por diante, repetindo sempre este processo.

Referências

Documentos relacionados

Renata Pires Pesce, Simone Gonçalves de Assis, Liana Wernersbach Pinto, Thiago de Oliveira Pires e Raquel de Vasconcellos Carvalhaes de Oliveira.. Anexo metodológico

Você pode usar um Cisco 7200 Series Router com uma configuração de adaptador de porta que exceda as diretrizes alistadas nesta seção; contudo, impedir anomalias quando o

O tempo de degradação de polímeros biocompatíveis é um dos principais critérios de seleção para aplicações biomédicas, dessa forma, neste trabalho, também foram

Grupos-alvo Grupos de Agricultura e comunidades rurais Filiação em rede/Federação/União FONGTIL, Rede HASATIL.. Principais parceiros/Financiadores CRS Timor

Quando necessitam desse complemento, os verbos são chamados de transitivo direto, transitivo indireto e... transitivo direto e indireto e, quando não necessitam de complemento, como

Ele permite a você visualizar os dados passados registrados de tendência a partir dos dados salvos no cartão Compact Flash no PC. Funções de display de dados de histórico

- Estrutura da narrativa: discurso direto, discurso indireto, discurso indireto livre.. -Figuras de

Quando analisada em conjunto com as demais informações financeiras, pode permitir que os investidores, credores e outros usuários avaliem a liquidez, a solvência,