CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP)

Documentos relacionados
Unidade 1: O Computador

Conteúdos: Debora, Edcarllos, livros! slides disponíveis!

Organização de Computadores 1

Antes de deixarmos o hardware (1) Nível da Arquitetura do Conjunto das Instruções

Sistemas Operacionais. Rodrigo Rubira Branco

Organização e Arquitetura de Computadores I

ARQUITETURA DE COMPUTADORES. Professor: Clayton Rodrigues da Siva

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

ARQUITETURA DE COMPUTADORES

Notas de Aula Guilherme Sipahi Arquitetura de Computadores. Arquitetura de von Neumann

Banco de Dados I. Prof. Edson Thizon

Sistemas Numéricos. Tiago Alves de Oliveira

Data Path / Control Path Controle do MIPS

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I

ULA Sinais de Controle enviados pela UC

O Funcionamento do Processador

Arquitetura de Computadores. Tipos de Instruções

Introdução à Informática

10. CPU (Central Processor Unit) Conjunto das instruções Estrutura interna Formato das instruções...

Introdução aos Computadores Introdução à Ciência de Computadores Outubro / 16

Fundamentos de Arquitetura e Organização de Computadores

Lista de Exercícios 1

4 Sistema Computacional:

Organização de Computadores 1

Fundamentos de Programação. Diagrama de blocos

Eletrônica Digital II. Exemplo de um CI com encapsulamento DIP. Diagrama do CI 74XX76.

UNIMINAS Só é necessário o armazenamento de: Sinal da mantissa: - (menos). Valor da mantissa: Sinal do expoente: -(na realidade, háh

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

Univ ersidade Feder al do Rio de Janei ro Informáti ca DCC/IM. Pipeline. Gabriel P. Silva. Gabriel P. Silva

Projetando um Computador

Sistemas Operacionais. Rodrigo Rubira Branco

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

PROGRAMAÇÃO DE COMPUTADORES

Conteúdo programático

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

Circuito Decodificador BCD para Display de Sete Segmentos

Matrizes. matriz de 2 linhas e 2 colunas. matriz de 3 linhas e 3 colunas. matriz de 3 linhas e 1 coluna. matriz de 1 linha e 4 colunas.

Projetando um Computador Parte II Arquitetura do Processador BIP

Organização e Arquitetura de Computadores I

Componentes da linguagem C++

Experiência 04: Comandos para testes e identificação do computador na rede.

Módulo 8 Entradas Digitais 24 Vdc Monitorado. Os seguintes produtos devem ser adquiridos separadamente para possibilitar a utilização do produto:

Componentes do Computador e. aula 3. Profa. Débora Matos

Controlador de DMA. Gustavo G. Parma

Cap. II EVENTOS MUTUAMENTE EXCLUSIVOS E EVENTOS NÃO- EXCLUSIVOS

Unidade Central de Processamento

Informática I. Aula Aula 19-20/06/06 1

Do alto-nível ao assembly

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

CONSTRUÇÃO DE UMA UCP HIPOTÉTICA M++ INTRODUÇÃO

Aula 6 Aritmética Computacional

Fundamentos de Sistemas Operacionais

Aula 9. Introdução à Computação. ADS IFBA

Aritmética Computacional. Prof. Leonardo Barreto Campos 1

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

Exemplo de Subtração Binária

Oganização e Arquitetura de Computadores

Fundamentos de Teste de Software

Manual de Operação e Instalação. Balança Contadora/Pesadora/Verificadora. Modelo: 520

Curso de Formação de Oficiais Conhecimentos Específicos ENGENHARIA DE COMPUTAÇÃO CADERNO DE QUESTÕES

Universidade Federal do ABC Disciplina: Natureza da Informação Lista de Exercícios 02 Códigos e conversão A/D Prof. João Henrique Kleinschmidt

2 Segmentação de imagens e Componentes conexas

ADMINISTRAÇÃO DE BANCOS DE DADOS MÓDULO 8

Módulo de Equações do Segundo Grau. Equações do Segundo Grau: Resultados Básicos. Nono Ano

Condução. t x. Grupo de Ensino de Física da Universidade Federal de Santa Maria

Árvores Parte 1. Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos

Arquitetura de Computadores II MIPS64. Prof. Gabriel P. Silva

Representações de caracteres

Universidade Federal de Juiz de Fora - Laboratório de Eletrônica - CEL037

Máquina Multinível. Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa.

Introdução à Programação de Computadores Parte I

Emparelhamentos Bilineares Sobre Curvas

UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS

tipo e tamanho e com os "mesmos" elementos do vetor A, ou seja, B[i] = A[i].

O Sistema de Computação

1.2 OPERAÇÕES BÁSICAS EM ALGORITMOS E PROGRAMAS 18

2 Formalidades referentes ao trabalho

ARQUITETURA DE COMPUTADORES

Comércio e Manutenção de Produtos Eletrônicos. Mapeamento de memória e conexões do Controlador CP-WS13/8DI8DO2AI2AO/USB/OEM. Versão 1.

Conceitos básicos sobre computadores

Arquitetura de Computadores - Princípio de Funcionamento da CPU. Por Helcio Wagner da Silva

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação

Organização e Arquitetura de Computadores. Ivan Saraiva Silva

Figura 1 - Somador para dois números de 4 bits com extensores lógicos (EL) e Aritméticos(EA).

Organização e Arquitetura de Computadores I

Inteligência Artificial

Arquitetura e Organização de Computadores

Sistemas Digitais II. Interface com o mundo analógico. Prof. Marlon Henrique Teixeira Abril/2014

Graphing Basic no Excel 2007

Arquitetura de Computadores - Revisão -

3º Ensino Médio Trabalho de Física Data /08/09 Professor Marcelo

Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano

Organização de Computadores

Aula 03. Processadores. Prof. Ricardo Palma

Arquitetura de Computadores

Organização Básica do Computador

Linguagem de Programação

Arquitetura de Computadores

CAPÍTULO 3 NÍVEL ISA. 3.1 Introdução ao Nível de Arquitetura do Conjunto de Instruções

Transcrição:

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP) 1

LINGUAGENS Conhecida pelo PROCESSADOR Conhecida pelo Usuário COMPILADOR LINGUAGEM DE ALTO NÍVEL LINGUAGEM ASSEMBLY 2

INSTRUÇÕES EM ASSEMBLY Para programar em ASSEMBLY o programador deve conhecer: O conjunto de registradores do processador (UCP) A estrutura da memória principal (MP) Tipos de dados (endereços, números, caracteres, etc.) disponíveis diretamente na máquina Funcionamento da ULA (unidade lógica aritmética) 3

ELEMENTOS DE UMA INSTRUÇÃO DE MÁQUINA São os seguintes: Código da operação operação a ser executada. Operando fonte Dados de entrada da operação. Podem existir mais de um operando fonte Operando de destino Resultado da operação Endereço da próxima instrução Indica ao PROCESSADOR onde está a próxima instrução na MEMÓRIA PRINCIPAL. Na maioria dos casos é a que segue imediatamente 10110011 01110010 00001111 4

ELEMENTOS DE UMA INSTRUÇÃO DE MÁQUINA Durante a execução de uma instrução a mesma deve ser lida em um registrador de instrução (RI) do PROCESSADOR. O PROCESSADOR extrai os dados dos vários campos da instrução armazenadas no RI (registrador de instrução) e efetua a operação requerida. 10110011 01110010 00001111 5

INSTRUÇÃO EM ASSEMBLY Usa-se a representação simbólica conhecida como instrução em Assembly para cada instrução de máquina. Exemplos Os operandos são também representados de maneira simbólica. 6

INSTRUÇÃO EM ASSEMBLY Uma instrução em ALTO NÍVEL (tal como C), requer uma ou várias instruções em ASSEMBLY: X = X + Y (instrução em linguagem de alto-nível ) Supondo que as variáveis X em Y correspondam as posições de memória 513 e 514. A instrução acima pode ser implementado com três instruções em ASSEMBLY: (1) Carregar um registrador com o conteúdo de posição de memória 513. (2) Adicionar o conteúdo da posição de memória 514 ao conteúdo do registrador. (3). Armazenar o conteúdo do registrador na posição de memória 513 7

EXEMPLO DE PROGRAMA EM ASSEMBLY 8

PILHA Conjunto ordenado onde a inserção (PUSH) ou remoção (POP) de um ITEM é feita pelo TOPO da PILHA. PUSH (item): adiciona elemento na PILHA POP: remove o item do topo da PILHA 9

PILHA UTILIZADAS EM INSTRUÇÃO Pilhas são usadas para implementar operações binárias ou unárias Operações binárias: Retiram dois operandos do topo da pilha e colocam o resultado na pilha. Exemplo: multiplicação, divisão, soma, subtração. A = POP; B= POP; C= A+B; PUSH (C). 10

PILHA UTILIZADAS EM INSTRUÇÃO Pilhas são usadas para implementar operações binárias ou unárias Operações unárias: requererem um operando ( NOT por exemplo), usa o item do topo da pilha. Exemplo: operação NOT A = POP; C= NOT(C) ; PUSH(C) 11

IMPLEMENTAÇÃO DE UM PILHA A PILJA é um bloco de posições de memória principal Base da pilha: endereço da posição inicial do bloco de memória reservado para a pilha. Limite da pilha: endereço da extremidade do bloco de memória reservado para a pilha. Apontador da pilha: endereço do topo da pilha. 12

NÚMERO DE ENDEREÇOS EM UMA INSTRUÇÃO INSTRUÇÕES COM ZERO (0), UM (1), DOIS (2) OU TRÊS (3) ENDEREÇOS QUANTO MAIS ENDEREÇOS NAS INSTRUÇÕES DE UM PROCESSADOR MAIS COMPLEXO É O PROCESSADOR 13

NÚMERO DE ENDEREÇOS EM UMA INSTRUÇÃO Instruções com 03 endereços: Dois endereços de operandos e um endereço de resultado. Instruções com 02 endereços: Um endereço de operando e um endereço de resultado. 14

NÚMERO DE ENDEREÇOS EM UMA INSTRUÇÃO Instruções com 01 endereço: Usa um endereço implícito ( o do registrador acumulador (AC)) 15

PROJETO DO CONJUNTO DE INSTRUÇÕES TIPO DE OPERANDO TIPO DE INSTRUÇÃO TIPO DE DADOS 16

TIPOS DE OPERANDOS Instruções operam sobre operandos. Os tipos de operandos são ENDEREÇOS NÚMEROS CARACTERES ETC 17

TIPOS DE OPERANDOS ENDEREÇO Exemplo: endereço de uma posição de memória, endereço de um registrador ENDEREÇO REGISTRADOR 18

TIPOS DE OPERANDOS NÚMERO Exemplos: inteiro, ponto flutuante. CARACTERE O código mais usado é o ASCII. É um código binário que codifica um conjunto de 128 sinais: 95 sinais gráficos (letras do alfabeto latino, sinais de pontuação e sinais matemáticos) e 33 sinais de controle. 19

TIPO DE INSTRUÇÃO A mesma CLASSE DE INSTRUÇÕES é encontrada nos diversos PROCESSADORES: 1. Operações de transferência de dados 2. Operações aritméticas 3. Operações lógicas 4. Operações de conversão 5. Operações de E/S 6. Operações de controle do sistema 7. Operações de transferência de controle. 20

TIPO DE INSTRUÇÃO 1. INTRUÇÃO DE TRANSFERÊNCIA DE DADOS Deve especificar os endereços fonte e destino da operação (posição de memória, registrador ou topo da pilha) EXEMPLO BASEADO EM HAYES, 1988 21

TIPO DE INSTRUÇÃO 2. INSTRUÇÃO ARITMÉTICA A maioria das processadores oferece instruções como adição, subtração, multiplicação, divisão, incremento, etc. EXEMPLO BASEADO EM HAYES, 1988 22

TIPO DE INSTRUÇÃO 3. INSTRUÇÃO LÓGICA São efetuadas sobre dados binários : Podem ser aplicadas bit a bit. Por exemplo: se dois registradores contem os dados 23

TIPO DE INSTRUÇÃO 3. INSTRUÇÃO LÓGICA (deslocamento lógico) Exemplo de Uso: Transmissão de caracteres de dados para um dispositivo de E/S (um caracteres de cada vez). 24

TIPO DE INSTRUÇÃO 3. INSTRUÇÃO LÓGICA (deslocamento aritmético) Um deslocamento para esquerda ou para direita corresponde, respectivamente, à multiplicação ou divisão por 2. 0110 6 DIVISÃO 0011 3 1100 12 MULTIPLICAÇÃO 25

TIPO DE INSTRUÇÃO 3. INSTRUÇÃO LÓGICA (rotação) Preserva todos os bits sobre as quais uma operação é efetuada 0111 1011 1110 26

TIPO DE INSTRUÇÃO 3. INSTRUÇÃO LÓGICA EXEMPLO BASEADO EM HAYES, 1988 27

TIPO DE INSTRUÇÃO 4. INSTRUÇÃO DE CONVERSÃO Mudam ou operam sobre o formato de dados. Exemplo: conversão de um número de decimal para binário. EXEMPLO BASEADO EM HAYES, 1988 28

TIPO DE INSTRUÇÃO 5. INSTRUÇÃO DE ENTRADA E SAÍDA Existe uma variedade abordagens: 29

TIPO DE INSTRUÇÃO 6. INSTRUÇÃO DE CONTROLE DO SISTEMA São as que só podem ser executadas com processador no modo privilegiado (modo KERNEL) São reservadas para uso do sistema operacional 30

TIPOS DE INSTRUÇÃO 7. INSTRUÇÃO DE TRANSFERÊNCIA DE CONTROLE Alteram a sequência normal de execução das instruções. Instrução de desvio Instrução de salto Instrução de Chamadas de procedimento. 31

TIPO DE INSTRUÇÃO 7. INSTRUÇÃO DE TRANSFERÊNCIA DE CONTROLE (DESVIO) INCONDICIONAL BR CONDICIONAL Uma DETERMINADA INSTRUÇÃO pode atualizar um código de condição com os valores 0, POSITIVO, NEGATIVO ou OVERFLOW. BRP X = desvia para instrução de endereço X se resultado for POSITIVO BRN X = desvia para instrução de endereço X se resultado for NEGATIVO BRZ X = desvia para instrução de endereço X se resultado for ZERO BRO X = desvia para instrução de endereço X se ocorrer OVERFLOW BRE R1,R2,X Desvia para instrução de endereço X se conteúdo de R1 = conteúdo de R2 32

TIPO DE INSTRUÇÃO 7. INSTRUÇÃO DE TRANSFERÊNCIA DE CONTROLE (DESVIO) 33

TIPO DE INSTRUÇÃO 7. INSTRUÇÃO DE TRANSFERÊNCIA DE CONTROLE (SALTO) Incluem um endereço de desvio implícito ISZ R1 INCREMENTA R1 e EXECUTA PRÓXIMA INSTRUÇÃO (endereço 310) ENQUANTO R1 DIFERENTE DE ZERO SE R1 = VAI PARA ENDEREÇO 311 34

INSTRUÇÃO DE TRANSFERÊNCIA DE CONTROLE 7. INSTRUÇÃO DE TRANSFERÊNCIA DE CONTROLE (CHAMADA DE PROCEDIMENTO) Envolve uma Instrução de chamada (desvia a instrução corrente para o início do procedimento) e uma instrução de retorno (que provoca o retorno da execução do procedimento para o endereço em que ocorreu a chamada). Uso de PILHA é uma abordagem para armazenar o endereço de retorno de uma chamada de procedimento. 35

INSTRUÇÃO DE TRANSFERÊNCIA DE CONTROLE 36

TIPO DE INSTRUÇÃO 7. INSTRUÇÃO DE TRANSFERÊNCIA DE CONTROLE. 37