Você está na página 1de 25

Organizao de Computadores

Aula 25 Conjunto de Instrues: Modos de Endereamento e Formatos Rodrigo Hausen 11 de novembro de 2011 http://cuco.pro.br/ach2034
Rodrigo Hausen - OCD 1/26

Apresentao
1. Bases Tericas 2. Organizao de computadores ... 2.4. Sistema de Memrias 2.5. Subsistema de Entrada/Sada (I/O) 2.6. Conjunto de Instrues

Aula de hoje: Stallings (5a. Edio), Captulo 10

Rodrigo Hausen - OCD

2/26

Modos de Endereamento

Como podemos nos referir a um operando em uma instruo? Imediato Direto (na memria) Indireto (na memria) Em registrador Indireto em registrador Por deslocamento: relativo, registrador-base, indexado Pilha

Rodrigo Hausen - OCD

3/26

Endereamento Imediato
Operando parte da instruo Operando substitui o campo de endereo p. ex. ADD 5 Some 5 ao contedo do acumulador 5 o operando Nenhuma referncia memria para obter dado Vantagem: Rpido Desvantagem: Tamanho do operando limitado pelo tamanho do campo de endereo

Modos de Endereamento:

Instruo opcode
Rodrigo Hausen - OCD

operando
4/26

Endereamento Direto
Campo de endereo contm endereo do operando Endereo Efetivo (EA) = campo de endereo (A) ex. ADD A Some contedo da posio A ao acumulador Busca na memria, no endereo A, pelo operando Vantagens: Requer apenas um acesso memria para acessar dado Nenhum clculo adicional para encontrar EA Desvantagem: Espao de endereamento limitado

Modos de Endereamento:

Rodrigo Hausen - OCD

5/26

Diagrama: Endereamento Direto


Instruo opcode A end. Memria

Modos de Endereamento:

...
A-2 A-1 A A+1 A+2

Operando

...
Rodrigo Hausen - OCD

...
6/26

...

Endereamento Indireto
Posio de memria indicada pelo campo de endereo contm o endereo do ( ponteiro para) operando end. efetivo EA = ponteiro para endereo [A] 1. Acesse endereo A 2. Acesse endereo apontado por contedo de A, denotado [A]

Modos de Endereamento:

3. Obtenha o operando

ex. ADD [A] Adicione o contedo da posio apontada pelo contedo do endereo A ao acumulador

Rodrigo Hausen - OCD

7/26

Diagrama: Endereamento Indireto


Instruo opcode A end. Memria

Modos de Endereamento:

...

A A+1

...

X X+1

operando

...

Rodrigo Hausen - OCD

...

...

...
X

8/26

Endereamento Indireto

Modos de Endereamento:

Pode ser em mltiplos nveis (aninhado ou em cascata): EA = [ [ [A] ] ] (para casa: desenhar diagrama)

Vantagem: Grande espao de endereamento

Endereamento indireto 1 nvel comum, com mais de 1 raro

Desvantagens: Mltiplos acessos memria para obter operando

2n , onde n o nmero de bits da palavra

ADD [A] - requer 2 acessos para obter operando Portanto, mais lento

Rodrigo Hausen - OCD

9/26

Em Registrador
Operando em registrador indicado no campo de endereo EA = R Desvantagem: nmero limitado de registradores (espao de endereamento extremamente limitado) Vantagens: Necessita de campo de endereo muito menor Instrues mais curtas Busca de instruo mais rpida Nenhuma busca memria para obter operando, portanto execuo muito rpida Neste modo, maior quantidade de registradores implica melhor desempenho requer uso parcimonioso dos registradores

Rodrigo Hausen - OCD 10/26

Modos de Endereamento:

Operando em Registrador
Instruo opcode Registradores R1 R2 Ri Ri

Modos de Endereamento:

Rn
Rodrigo Hausen - OCD 11/26

...

...
Operando

Indireto Em Registrador
Operando est na posio de memria apontada pelo contedo do registrador R EA = [R] Vantagens: grande espao de endereamento (2n) requer 1 acesso de memria a menos para busca de operando do que endereamento indireto simples

Modos de Endereamento:

Rodrigo Hausen - OCD

12/26

Diag: Indireto em Registrador


Instruo opcode Registradores R1 R2 Ri Ri end. 0 1 Memria

Modos de Endereamento:

...
X X+1

...

operando

...

Rodrigo Hausen - OCD

...

Rn

...

...

13/26

Por Deslocamento

Modos de Endereamento:

Operando est no endereo A adicionado a um deslocamento contido em um registrador EA = A + [R] Campo de endereo contm dois valores: A = endereo de memria R = registrador que contm o deslocamento um dos campos pode estar implcito

Rodrigo Hausen - OCD

14/26

Diagrama: por Deslocamento


Instruo opcode Ri A end. 0 1 Memria

Modos de Endereamento:

Registradores R1 R2 Ri

...
+ X+A

...

operando

...

Rodrigo Hausen - OCD

...
15/26

Rn

...

...

Por Deslocamento

Modos de Endereamento:

Verses do endereamento por deslocamento: 1. endereamento relativo:

deslocamento tomado implicitamente a partir do PC: EA = A + [PC] ou seja, obtenha o operando A posies a patir da instruo corrente explora conceito de localidade espacial: se a maioria das referncias memria so prximas, economiza bits no campo de endereo da instruo

Rodrigo Hausen - OCD

16/26

Por Deslocamento

Modos de Endereamento:

deslocamento tomado implicitamente a partir de um registrador de deslocamento registradores de segmento CS (code segment), DS (data segment) e SS (stack segment) em IA-32 Modo real IA-32: segmento 20 bits (16 bits deslocados 4 posies para direita), endereo 16 bits. Exemplo: Se CS = 3FA2 e PC = 2100, o endereo efetivo da instruo a ser buscada na memria ser 3FA20 = [CS] + 2100 = [PC] 41B20 = [CS:PC] = endereo efetivo memria mxima acessvel no modo real: FFFF0 + FFFF + 1 = 10FFF0 = 1114096 bytes 1,06 MB 17/26 Rodrigo Hausen - OCD

Verses do endereamento por deslocamento: 2. endereamento via registrador-base:

Por Deslocamento

Modos de Endereamento:

Verses do endereamento por deslocamento: 3. endereamento indexado:

mantm A fixo, varia o contedo de R EA = A + [R] til para acessar vetores A endereo do primeiro elemento do vetor R0 enquanto [R] < n acessa vetor[R] R [R]

Rodrigo Hausen - OCD

18/26

Pilha

Modos de Endereamento:

Operando(s) est(o) no topo da pilha (implicitamente) Ex.: ADD (retira as duas palavras do topo da pilha, soma e coloca o resultado no novo topo da pilha) Necessrio manter um apontador para o topo da pilha. Geralmente, apontador fica em um registrador chamado SP (stack pointer). Pilha geralmente cresce para cima instruo push X decrementa SP e coloca operando X na pilha pop X retira da pilha, colocando no operando X, e incrementa SP IA-32: esp (stack pointer, 32 bits), ebp (base pointer, base da pilha, 32 bits)
Rodrigo Hausen - OCD 19/26

Formatos de Instruo

Organizao dos bits em uma instruo Inclui opcode Inclui operandos (implcitos ou explcitos)

Rodrigo Hausen - OCD

20/26

Formatos de Instruo
Organizao dos bits em uma instruo Inclui opcode Inclui operandos (implcitos ou explcitos) Operando explcito referenciado usando-se um dos mtodos de endereamento descritos anteriormente. mtodos de endereamento diferentes podem ser determinados por opcodes diferentes ou por bits especficos dentro do campo de endereamento da instruo

Rodrigo Hausen - OCD

21/26

Formatos de Instruo
Organizao dos bits em uma instruo Inclui opcode Inclui operandos (implcitos ou explcitos) Operando explcito referenciado usando-se um dos mtodos de endereamento descritos anteriormente. mtodos de endereamento diferentes podem ser determinados por opcodes diferentes ou por bits especficos dentro do campo de endereamento da instruo Na maioria dos casos, usado mais de um formato de instruo (no IAS era um formato nico) p. ex. comprimento do opcode pode variar para instrues distintas de uma mesma arquitetura!

Rodrigo Hausen - OCD 22/26

Tamanho de Instruo

afetado por, e afeta: Tamanho da memria Organizao da memria Estrutura dos barramentos Complexidade da CPU Velocidade da CPU (instrues por segundo) Buscamos um compromisso entre um repertrio de instrues poderoso e economia de espao mais instrues e mais modos de endereamento, consequentemente mais opcodes, que implica que campo de opcode de cada instruo precisar de mais bits.
23/26

Rodrigo Hausen - OCD

Alocao de Bits

O nmero de bits em uma instruo afetado por: Quantidade de modos de endereamento Nmero de operandos Operando em registrador versus operando na memria

quanto menos registradores, menos bits necessrios para identificar cada um Nmero de conjuntos de registradores dividir registradores em conjuntos especializados, opcode determina implicitamente o banco usado Alcance do endereamento (quantos endereos?) Granularidade no endereamento endereamento por byte? endereamento por palavra maior que um byte?
24/26

Rodrigo Hausen - OCD

Formato de Instruo IA-32

Bytes

Rodrigo Hausen - OCD

25/26

Você também pode gostar