1 / 23

Representação de instruções

Representação de instruções. Livro Introdução à Organização de Computadores Capítulo: 8 – Representação de instruções. Representação de instruções. Processadores aceitam somente instruções simples. Combinando diversas instruções simples é possível criar programas mais complexos.

nelia
Download Presentation

Representação de instruções

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Representação de instruções Livro Introdução à Organização de Computadores Capítulo: 8 – Representação de instruções

  2. Representação de instruções Processadores aceitam somente instruções simples. Combinando diversas instruções simples é possível criar programas mais complexos.

  3. Representação de instruções Formato de instruções de máquina Elementos levados em consideração: Quais os elementos requeridos Que tipos de dados serão manipulados Localização dos dados Valores inteiros ou fracionários? Outros Cod. Operação Operando(s)

  4. Representação de instruções Campo do código de operação Tem usualmente tamanho fixo. Cada código representa uma operação a ser executada (ADD, MOV, JMP, JCD, PUSH, POP, outros). O tamanho deste campo define quantas operações é possível implementar na arquitetura. Cod. Operação Operando(s)

  5. Representação de instruções Campo(s) operando(s) O campo do operando pode armazenar diretamente o valor a ser tratado, indicar o registrador que contém a informação ou então a posição da memória. Dois aspectos são importantes: número de operandos e modo de endereçamento Cod. Operação Operando(s)

  6. Representação de instruções Número de operandos Modelos mais modernos tipicamente usam no máximo 3 instruções. Cod. Operação Operando 1 Operando 2 Operando 3 End. próx. instrução Instruções SEAC (1949)

  7. Representação de instruções Instruções com 3 operandos. ADD A, B, X (X) <- (A) + (B) Exemplo: Como efetuar a operação: X = A * ( B + C * D – E / F ) MPY C,D,T1 DIV E,F,T2 ADD B,T1,X SUB X,T2,X MPY A,X,X

  8. Representação de instruções Instruções com 2 operandos. ADD A, B (A) <- (A) + (B) Exemplo: Como efetuar a operação: X = A * ( B + C * D – E / F ) MPY C,D DIV E,F ADDB,C SUB B,E MPY A,B MOVE X,A

  9. Representação de instruções Problema: As variáveis são destruídas no processo. Pode ser evitado fazendo cópias antes: MOVE X,C MPY X,D MOVE T1,E DIV T1,F ADD X,B SUB X,T1 SUB X,T1 MPY X,A

  10. Representação de instruções Instruções com 1 operando Todas as operações pressupõem o acumulador como um dos operandos. ADD A ACC <- ACC + (A) Duas novas instruções se fazem necessárias: LDA op. ACC <- op. STA op. Op. <- ACC

  11. Representação de instruções LDA C (X = A * ( B + C * D – E / F ) MPY D STA X LDA E DIV F STA T1 LDA B ADD X SUB T1 MPY A STA X

  12. Representação de instruções Comparações de custo e tamanho:

  13. Representação de instruções

  14. Representação de instruções Instruções com zero operando (pilha) Duas novas instruções: PUSH e POP. As demais operações pressupõem valores contidos na pilha: ADD, SUB, DIV, MPY

  15. Representação de instruções Instruções com zero operando (pilha) Exemplo: X = A * B + C PUSH A PUSH B MPY PUSH C ADD POP X

  16. Representação de instruções Modos de endereçamento Existentes (nem todos são usados hoje): Imediato Direto Indireto Por registrador Indexado Base mais deslocamento

  17. Representação de instruções Modo Imediato: O valor a ser usado está no próprio operador. Útil para inicializar contadores, constantes matemáticas, armazenar ponteiros em registradores ou operações de shift Desvantagem: limitado pelo tamanho do campo de operando. Exemplo: MOVE EBX, 33445566H (copiar o valor hexadecimal 33445566 para o registrador EBX)

  18. Representação de instruções Modo Direto: Os operandos apontam diretamente o endereço dos dados Desvantagem: endereços podem ter 32 ou mesmo 64 bits, implicando que os operandos terão este tamanho

  19. Representação de instruções Modo indireto: Operando indica uma posição da memória. No entanto, esta posição não tem o dado, e sim novo endereço, e este sim contém o dado. A vantagem é que elimina a limitação de tamanho do modo direto, mas tem um custo de mais acessos à memória, tornando-se lento. Pouco usado hoje.

  20. Representação de instruções Modo de Endereçamento por Registrador: Neste caso um dos operandos é um dos registradores internos ao processador. Tem a vantagem de ser muito mais rápido (a informação já está no processador) e enxuto (basta apontar para um registrador). A desvantagem é que o número de registradores no processador é limitado. Pode ser direto ou indireto (o próprio registrador pode estar apontando para uma posição de memória)

  21. Representação de instruções Modo Indexado: Utiliza ponteiros para acessar vetores de dados, ou seja, matrizes. O endereço de um dado é a soma do valor do operando e o de um valor armazenado em um dos registradores do processador (usualmente denominado registrador índice), e que é incrementado para acesso a cada elemento.

  22. Representação de instruções Modo Base mais Deslocamento: Cada endereço é obtido através da soma de um registrador-base com o valor do campo da instrução. Diversos registradores base podem ser utilizados. Permite a economia no tamanho dos operadores e facilita a relocação das posições do programa na memória.

  23. Representação de instruções Considerações sobre conjuntos de instruções: Arquitetura IA-32 descende da IA-16 Memória real vs. memória protegida Instruções de multimídia (MMX, SSE,...)

More Related