Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
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:
5/26
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
7/26
Modos de Endereamento:
...
A A+1
...
X X+1
operando
...
...
...
...
X
8/26
Endereamento Indireto
Modos de Endereamento:
Pode ser em mltiplos nveis (aninhado ou em cascata): EA = [ [ [A] ] ] (para casa: desenhar diagrama)
ADD [A] - requer 2 acessos para obter operando Portanto, mais lento
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
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:
12/26
Modos de Endereamento:
...
X X+1
...
operando
...
...
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
14/26
Modos de Endereamento:
Registradores R1 R2 Ri
...
+ X+A
...
operando
...
...
15/26
Rn
...
...
Por Deslocamento
Modos de Endereamento:
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
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
Por Deslocamento
Modos de Endereamento:
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]
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)
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
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!
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
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
Bytes
25/26