a) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização.

Tamanho: px
Começar a partir da página:

Download "a) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização."

Transcrição

1 UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Sistemas de Computação Profa.: Simone Martins Lista 1 1. Um programa P foi compilado com um compilador C1 e executado em um processador M1, e verificouse que foram executadas 200 instruções com a seguinte distribuição: 15% das instruções executadas foram de armazenamento na memória, 20% para leitura de dados da memória, 25% para desvio, 30% para soma e subtração com inteiros, 5% para deslocamento de inteiros e 5% para multiplicação de inteiros. As instruções de leitura de dados da memória requerem 2 ciclos de relógio para sua execução, as de desvio, 4 ciclos, as de soma e subtração, deslocamento e armazenamento na memória 1 ciclo e a de multiplicação de inteiros 10 ciclos. O relógio desta máquina possui frequência de 1GHz. O mesmo programa foi recompilado com uma opção de otimização para converter multiplicações em sequencias de deslocamento e soma com semântica equivalente. Verificou-se que, utilizando esta opção de otimização na nova execução do programa P, 50% das instruções de multiplicação executadas anteriormente foram executadas como uma sequencia de 3 instruções deslocamento/soma. As outras 50% continuaram a ser executadas como instruções de multiplicações de inteiros. a) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização. b) Considerando-se a métrica tempo de execução, indique se o compilador com otimização possui um melhor desempenho quando executando o programa P do que o compilador sem otimização. c) Considerando-se a métrica MIPS (Milhões de Instruções Por Segundo) indique se o compilador com otimização possui um melhor desempenho quando executando o programa P do que o compilador sem otimização. 2. Considere um processador com relógio de 1 GHz no qual uma operação de adição de um inteiro de 64 bits e uma operação de desvio condicional demandam um ciclo de relógio cada uma. Calcule o tempo aproximado que o loop escrito em C abaixo será executado: unsigned long int i; /* inteiro de 64 bits */ long int x = -1; /* inteiro de 64 bits */ for (i=0;i<(unsigned)(x);i++) { 3. Dado o conjunto de bits abaixo indique o que ele representa, assumindo-se que ele é: a) um inteiro em complemento a 2 (decimal) b) um inteiro sem sinal (decimal) c) um número ponto flutuante em precisão simples padrão IEEE 754 (decimal) d) uma instrução MIPS 4. Considere o formato abaixo utilizado para representar números em ponto flutuante, utilizando-se as mesmas premissas do padrão IEEE 754. S Exp. em excesso de 15 Mantissa

2 a) Mostre como será a representação de -11,75. b) Calcule o valor em decimal dos seguintes números: b.1) Maior número normalizado positivo b.2) Menor número normalizado positivo b.3) Maior número denormalizado positivo b.4) Menor número denormalizado positivo 5. As instruções na tabela abaixo não existem para o processador MIPS. Elas são chamadas pseudo instruções e podem ser utilizadas pelo programador porque são traduzidas pelo montador para uma seqüência de instruções MIPS existentes. Produza para cada uma delas uma seqüência de instruções MIPS reais que executem o que está indicado na definição da instrução. Você pode utilizar o registrador $at como auxiliar, se precisar. O identificador big indica um número específico que precisa de 32 bits para ser representado. Pseudo instrução Definição move $t5, $t3 $t5 = $t3 clear $t5 $t5 = 0 lw $t5, big ($t3) $t5=memória[$t3+big] addi $t5, $t3, big $t5 = $t3+big beq $t5, big, L if ($t5 = big) go to L ble $t5, $t3, L if ($t5 <= $t3) go to L 6. Em C, o tipo float é utilizado para representação em ponto flutuante padrão IEEE 754 precisão simples e o tipo double para precisão dupla. a) Analise o programa mostrado abaixo: #include <stdio.h> int main () { float x=0.01; if ((x*100.0)!= 1.0) printf ("Não iguais \n"); else printf ("Iguais \n") return(0); O que você espera que seja impresso? Execute o programa e verifique o que acontece. Era o que você esperava? b) Compile e execute o programa abaixo: #include <stdio.h> int main () { float x=0.01; x=x*100.0; if (x!= 1.0) printf ("Não iguais \n"); else printf ("Iguais \n") return(0);

3 Execute o programa e verifique o que acontece. Apresentou o mesmo comportamento do programa anterior? Explique o comportamento destes programas. DICA: No processador Pentium, quando uma operação aritmética é executada em ponto flutuante, os operandos são colocados em registradores de 80 bits, com 64 bits para a mantissa, 15 bits para o expoente e 1 bit para sinal. Lembre-se que para armazenar uma variável do tipo float, utilizam-se 32 bits, 23 bits para mantissa, 8 bits para expoente e 1 bit para sinal. 7. Suponha que para implementar um controle de estoque de uma pequena farmácia, você utilize um vetor de registros. Cada registro é uma estrutura implementada em C que contém o código do remédio, a quantidade total do remédio em estoque, o valor unitário do remédio e o código do fornecedor do remédio. Suponha que a seguinte estrutura de dados seja definida para este problema: typedef struct registroremedio{ short codigo; int quantidade; float preco; char fornecedor[20]; remedio; remedio estoque[1000]; a) As variáveis do tipo char ocupam 1 byte, do tipo short ocupam 2 bytes, do tipo float e do tipo int ocupam 4 bytes, e do tipo ponteiro ocupam 4 bytes e os endereços das variáveis devem ser alinhados de acordo com o espaço que elas ocupam. Indique como cada elemento do vetor será armazenado na memória respeitando-se as restrições de alinhamento. b) Suponha que você deseje implementar uma função em MIPS equivalente à função C mostrada abaixo. Esta função recebe como parâmetros de entrada o endereço inicial do estoque, o código do remédio e a quantidade do remédio que foi adquirida. A função atualiza a quantidade do remédio em estoque. Caso o código não tenha sido encontrado, o valor -1 deve ser retornado, caso contrário deve ser retornado o valor 0. int atualizaquant ( remedio estoque[1000], short codigo, int quant); { int achou; int i; /* aponta para início do vetor */ i=0; /* inicializa variável de controle da busca */ achou=0; while ((i< 1000) && (achou==0)) { if (estoque[i].codigo == codigo) { /* achou remedio com código, então atualiza quantidade no estoque */ estoque[i].quantidade=estoque[i].quantidade+quant; achou=1; else { /* aponta para próximo elemento */ i=i+1; /* caso código do remédio não tenha sido encontrado, retorna valor -1 */ if (achou!= 1) return(-1) else return (0);

4 Assuma que o endereço inicial do vetor é passado no registrador $a0, o código do remédio em $a1 e a quantidade em $a2. O valor de retorno deve ser colocado em $v0. Você pode utilizar a pilha para salvar valores que achar necessários. 8. Considere os três procedimentos com algumas instruções especificadas como a seguir: Procedimento A: Segmento de texto Endereço (hexadecimal) Instrução 0 lw $al, Y 4 jal C 24 sw $s0,w FC jr $ra Segmento de dados 0 (Y) 4 (último dado) 1C (W) Procedimento B: Segmento de texto Endereço (hexadecimal) Instrução 0 lw $a1, X 4 jal C 8 beq $v0, 0, L1 L1 20 lw $t1,z 2FC jr $ra Segmento de dados 0 (X) 4 (Z) (último dado) 2C (K) Procedimento C: Segmento de texto Endereço Instrução 0 sw $al, M 3C jr $ra Segmento de dados 0 (M) (último dado) C (T) Para cada um dos três procedimentos, complete a tabela abaixo referente ao código gerado pelo montador para as instruções e dados mostrados acima. O montador assume que o segmento de texto e o segmento de dados de cada procedimento iniciam no endereço 0. O registrador $gp é utilizado para endereçar as variáveis localizadas no segmento de dados.

5 Cabeçalho Nome Tamanho de texto Tamanho de dados Segmento de texto Endereço Instrução. Segmento de dados Endereço Informação de relocação Endereço Tipo de instrução Dependência Tabela de símbolos Label Endereço Após o procedimento de montagem os três procedimentos são ligados na ordem A, B e C. O segmento de texto deve ser localizado a partir do endereço , o segmento de dados a partir do endereço (todos expressos em hexa) e o registrador $gp é carregado com o valor Complete a tabela abaixo com as informações geradas pelo ligador. Cabeçalho Nome Tamanho de texto Tamanho de dados Segmento de texto Endereço Instrução

6 Segmento de dados Endereço

Expoente Mantissa Frac. UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

Expoente Mantissa Frac. UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Sistemas de Computação 2016.2 Profa.: Simone Martins Lista 1 Data de entrega 16/09/2016 por e-mail (simone@ic.uff.br)

Leia mais

UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Sistemas de Computação 2016.2 Profa.: Simone Martins Lista 1 - Gabarito 1. Um programa P foi compilado com

Leia mais

a) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização. Resposta:

a) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização. Resposta: UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Sistemas de Computação 2016.2 Profa.: Simone Martins Lista 1 - Gabarito 1. Um programa P foi compilado com

Leia mais

Sistemas de Computação Gabarito - Lista 2

Sistemas de Computação Gabarito - Lista 2 Sistemas de Computação 2005.2 Gabarito - Lista 2 1. a) Resposta: CPI=0,5 X 7 + 0,3 X 4 + 0,15 x 6 + 0,05 X 3=3,5 + 1,2 + 0,9 + 0,15=5,75 Tempo de execução=5,75 X 500 X 1.000.000 x 10-9 = 28,75 x 10-1 =2,875

Leia mais

Procedimentos. Sistemas de Computação

Procedimentos. Sistemas de Computação Procedimentos Chamada de Procedimentos Utilização de procedimentos: Facilitar entendimento do programa Reutilização de código Passos necessários para execução de um procedimento: Os parâmetros a serem

Leia mais

Linguagem C Princípios Básicos (parte 1)

Linguagem C Princípios Básicos (parte 1) Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.2. Estrutura de Programas e Representação

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Representação e aritmética binária

Universidade Federal de Uberlândia Faculdade de Computação. Representação e aritmética binária Universidade Federal de Uberlândia Faculdade de Computação Representação e aritmética binária Prof. Renato Pimentel 1 Tipos de informação Representação por meio de sequências binárias: 8 bits (byte) Também

Leia mais

Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO Linguagem de Montagem Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO 1 Introdução Independente da linguagem de programação utilizada, todo programa

Leia mais

Representação de Dados (inteiros não negativos)

Representação de Dados (inteiros não negativos) Representação de Dados (inteiros não negativos) 1 Memória Armazena instruções e dados durante a execução de um programa A memória principal pode ser vista como um array de bytes, cada um com seu endereço

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação 128 13 129 Linguagens de Programação Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas

Leia mais

Representação de Dados (inteiros não negativos)

Representação de Dados (inteiros não negativos) Representação de Dados (inteiros não negativos) Noemi Rodriguez Ana Lúcia de Moura http://www.inf.puc-rio.br/~inf1018 Memória Pode ser vista como um array de bytes, identificados por seus "índices" (endereços)

Leia mais

Linguagem de Montagem Assembly

Linguagem de Montagem Assembly Linguagem de Montagem Assembly Especificações O programa em Assembly Fica sobre a camada do Sistema Operacional Efetua chamadas ao Sistema Operacional O montador Chama-se Assembler Traduz a linguagem de

Leia mais

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR Introdução Instruções são representadas em linguagem de máquina (binário) E x i s t e m l i n g u a g e n

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2 Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas Aula Tópico 2 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para o compilador

Leia mais

Sistemas de Computação. Instruções de Linguagem de Máquina

Sistemas de Computação. Instruções de Linguagem de Máquina Instruções de Linguagem de Máquina Linguagem de montagem do processador MIPS Operações aritméticas Instrução Exemplo Significado soma add a, b, c a = b + c subtração sub a, b, c a = b - c Compilação de

Leia mais

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento Hello World Linguagem C printf("hello world!\n"); main é a função principal, a execução do programa começa por ela printf é uma função usada para enviar dados para o vídeo Palavras Reservadas auto double

Leia mais

Faculdade de Computação

Faculdade de Computação Faculdade de Computação Arquitetura e Organização de Computadores 2 1 a Laboratório de Programação MIPS entrega 03/05/2018 Prof. Cláudio C. Rodrigues Problemas: P1) Execute as conversões abaixo: a) Converta

Leia mais

Introdução à Computação MAC0110

Introdução à Computação MAC0110 Introdução à Computação MAC0110 Prof. Dr. Paulo Miranda IME-USP Aula 2 Variáveis e Atribuições Memória Principal: Introdução Vimos que a CPU usa a memória principal para guardar as informações que estão

Leia mais

Programação Estruturada

Programação Estruturada Programação Estruturada Introdução à linguagem C Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Programação estruturada

Leia mais

Dados estruturados. Sistemas de Computação

Dados estruturados. Sistemas de Computação Dados estruturados Alocação de arrays TA[L]: Array com elementos do tipo T e tamanho L Região de tamanho L * sizeof(t) bytes alocada contiguamente char string[12]; int val[5]; double a[4]; x x + 12 x x

Leia mais

Introdução à Linguagem C

Introdução à Linguagem C Introdução à Linguagem C Eduardo Simões de Albuquerque Instituto de Informática UFG 13/03/2006 1 História Inventada e desenvolvida por Dennis Ritchie em um DEC- PDP 11 Originária de: BCPL desenvolvida

Leia mais

INTRODUÇÃO À LINGUAGEM C

INTRODUÇÃO À LINGUAGEM C INTRODUÇÃO À LINGUAGEM C Prof. Bruno Feijó, Dept. de Informática, PUC-Rio (2017) C foi criado no início da década de 70, quando os programas mais eficientes eram escritos em linguagem Assembly, bem próxima

Leia mais

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 04: ASPECTO BÁSICO DO PROJETO DE UMA CPU SIMPLES E LINGUAGEM DE MONTAGEM Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia

Leia mais

Infraestrutura de Hardware. Instruindo um Computador Subrotinas, Tipos de Dados e Modos de Endereçamento

Infraestrutura de Hardware. Instruindo um Computador Subrotinas, Tipos de Dados e Modos de Endereçamento Infraestrutura de Hardware Instruindo um Computador Subrotinas, Tipos de Dados e Modos de Endereçamento Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de

Leia mais

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO LÓGICA DE PROGRAMAÇÃO PROFª. M.Sc. JULIANA H Q BENACCHIO Modificadores de Tipos Os tipos de dados básicos em C podem estar acompanhados por modificadores na declaração de variáveis. Tais modificadores

Leia mais

4. Modelo de Programação do DLX Introdução

4. Modelo de Programação do DLX Introdução 4. Modelo de Programação do DLX Quero que o matemático Beremiz Samir nos conte uma lenda, ou uma simples fábula, na qual apareça uma divisão de 3 por 3 indicada, mas não efetuada, e outra de 3 por 2, indicada

Leia mais

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem

Leia mais

Conjunto de Instruções. Prof. Leonardo Barreto Campos 1

Conjunto de Instruções. Prof. Leonardo Barreto Campos 1 Conjunto de Instruções Prof. Leonardo Barreto Campos 1 Sumário Introdução; CISC; RISC; MIPS; Representação de Instruções; SPIM; Prof. Leonardo Barreto Campos 2/58 Sumário Operações Lógicas; Instruções

Leia mais

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano O C++ foi inicialmente desenvolvido por Bjarne Stroustrup durante a década de 1980 com o objetivo de melhorar a linguagem de programação C, mantendo a compatibilidade com esta linguagem. Exemplos de Aplicações

Leia mais

Algoritmos e Estruturas de dados

Algoritmos e Estruturas de dados Algoritmos e Estruturas de dados Listas Encadeadas Prof. Dr. Fábio Rodrigues de la Rocha (Listas Encadeadas) 1 / 21 Definição: Anteriormente estudamos listas encadeadas que foram implementadas como vetores

Leia mais

INTRODUÇÃO À LINGUAGEM C

INTRODUÇÃO À LINGUAGEM C INTRODUÇÃO À LINGUAGEM C Prof. Bruno Feijó, Dept. de Informática, PUC-Rio (2018) C foi criado no início da década de 70, quando os programas mais eficientes eram escritos em linguagem Assembly, bem próxima

Leia mais

Disciplina: Organização e Arquitetura de Computadores II Professores: Fabiano Hessel e Ney Calazans 22/abril/2009

Disciplina: Organização e Arquitetura de Computadores II Professores: Fabiano Hessel e Ney Calazans 22/abril/2009 Prova P1 Aluno Disciplina: Organização e Arquitetura de Computadores II Professores: Fabiano Hessel e Ney Calazans 22/abril/2009 Valor das questões: 1) 3 pontos 2) 3 pontos 3) 4 pontos 1. O fragmento de

Leia mais

Linguagens de Programação PROGRAMAÇÃO DE COMPUTADORES. Linguagem C. Linguagem C Estrutura Básica. Constante (literais) Linguagem C Primeiro Programa

Linguagens de Programação PROGRAMAÇÃO DE COMPUTADORES. Linguagem C. Linguagem C Estrutura Básica. Constante (literais) Linguagem C Primeiro Programa Linguagens de Programação PROGRAMAÇÃO DE COMPUTADORES Linguagem C - Introdução Linguagens de Máquina Representação numérica Difícil utilização e compreensão Específica para cada máquina Linguagens Simbólicas(Assembly)

Leia mais

4. Estruturas Fundamentais de Programação em C

4. Estruturas Fundamentais de Programação em C 4. Estruturas Fundamentais de Programação em C 4.1. Imprimindo Mensagens e Valores no Monitor de Vídeo A biblioteca de entrada e saída (stdio.h) possui a função printf que imprime mensagens e valores diretamente

Leia mais

A Linguagem C. A forma de um programa em C

A Linguagem C. A forma de um programa em C A Linguagem C Criada em 1972 por D. M. Ritchie e K. Thompson. Tornou-se uma das mais importantes e populares, principalmente pela portabilidade e flexibilidade. Foi projetada para o desenvolvimento de

Leia mais

Computação 2. Aula 7. Profª. Fabiany Ponteiros

Computação 2. Aula 7. Profª. Fabiany Ponteiros Computação 2 Aula 7 Ponteiros Profª. Fabiany fabianyl@utfpr.edu.br O que são Ponteiros? Um ponteiro é uma variável que contém um endereço de memória. Este endereço é normalmente a posição de uma outra

Leia mais

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná Linguagem C IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Sabemos construir algoritmos que tenham: Variáveis Comandos sequenciais Entrada e saída

Leia mais

Organização de Computadores

Organização de Computadores Organização de Computadores Segundo Laboratório Material: Diego Passos http://www.ic.uff.br/~debora/orgcomp/lab2/index.htm Organização de Computadores I Segundo Laboratório 1/16 Primeiro Programa #include

Leia mais

Bits e operações. Sistemas de Computação

Bits e operações. Sistemas de Computação Bits e operações Porque utilizar base 2? Representação na base 10 Estamos acostumados Representação natural para transações financeiras (precisão) Implementação eletrônica na base 10 Difícil de armazenar

Leia mais

Entender o problema Encontrar um algoritmo para resolvê-lo. Implementar o algoritmo numa linguagem de programação

Entender o problema Encontrar um algoritmo para resolvê-lo. Implementar o algoritmo numa linguagem de programação Entender o problema Encontrar um algoritmo para resolvê-lo Implementar o algoritmo numa linguagem de programação Permitem implementar um algoritmo Expressar o algoritmo numa forma que o computador entenda

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Linguagem de Montagem Slide 1 Operações Lógicas Embora os primeiros computadores se concentrassem em words completas, logo ficou claro que era útil atuar sobre

Leia mais

Algoritmos II prof. Daniel Oliveira

Algoritmos II prof. Daniel Oliveira Algoritmos II prof. Daniel Oliveira Revisar conceitos abordados na disciplina anterior Abordar conceitos vistos com a linguagem C# Variáveis e listas Expressões Estruturas de controle do tipo condicional

Leia mais

1: 2: 2, [1] [2] 0x x001f8021 $16,$0,$31 13 [3] 0x x

1: 2: 2, [1] [2] 0x x001f8021 $16,$0,$31 13 [3] 0x x Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 14/setembro/2012 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome

Leia mais

ECT1203 Linguagem de Programação

ECT1203 Linguagem de Programação Universidade Federal do Rio Grande do Norte Escola de Ciências e Tecnologia ECT1203 Linguagem de Programação Prof. Aquiles Burlamaqui Profa. Caroline Rocha Prof. Luiz Eduardo Leite Prof. Luciano Ferreira

Leia mais

Linguagem de Programação C. Prof. Fabrício Olivetti de França

Linguagem de Programação C. Prof. Fabrício Olivetti de França Linguagem de Programação C Prof. Fabrício Olivetti de França Linguagem C 2 Linguagem C Imperativo e estruturado Pequeno conjunto de palavras-chaves, operadores, etc. Tipagem estática, porém fraca Permite

Leia mais

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Programação em C Variáveis e Expressões DCA0800 Algoritmos e Lógica de Programação Heitor Medeiros Florencio

Leia mais

Faculdade de Computação

Faculdade de Computação Problemas: Faculdade de Computação Arquitetura e Organização de Computadores 2 1 a Laboratório de Programação MIPS entrega 18/04/2016 Prof. Cláudio C. Rodrigues P1) Considere que você é um projetista da

Leia mais

Guia Rápido MIPS. Tipos de Dados e Formatações

Guia Rápido MIPS. Tipos de Dados e Formatações Tipos de Dados e Formatações Guia Rápido MIPS Tipos de Dados: Todas as instruções são de 32 bits Byte = 8 bits Halfword = 2 bytes Word = 4 bytes Um caractere ocupa 1 byte na memória Um inteiro ocupa 1

Leia mais

Princípios de Desenvolvimento de Algoritmos MAC122

Princípios de Desenvolvimento de Algoritmos MAC122 Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Aula de Revisão: Variáveis e Atribuições Introdução Memória Principal: Vimos no curso anterior que a CPU usa a memória

Leia mais

Programação científica C++

Programação científica C++ Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 2 Expressões Combinação de dados e operadores que resulta em um valor. expressão x = 2 * y + 4; variável operador constante Memória do computador

Leia mais

Introdução à Programação

Introdução à Programação Programação de Computadores Introdução à Programação Prof. Helton Fábio de Matos hfmatos@dcc.ufmg.br Agenda Algoritmo & Programa Variáveis Declaração de tipos Comando de entrada ou de leitura Comando de

Leia mais

2. E presse cada um dos seguintes números inteiros decimais na representação sinal e magnitude e complemento a 2, utilizando 8 bits Resposta:

2. E presse cada um dos seguintes números inteiros decimais na representação sinal e magnitude e complemento a 2, utilizando 8 bits Resposta: UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Fundamentos de Arquiteturas de Computadores Turma :A1 Lista 1 Profa.: Simone Martins 1. Efetue as seguintes

Leia mais

Linguagem C: Variáveis e Operadores. Prof. Leonardo Barreto Campos 1

Linguagem C: Variáveis e Operadores. Prof. Leonardo Barreto Campos 1 Linguagem C: Variáveis e Operadores Prof. Leonardo Barreto Campos Sumário Variáveis: Tipos de variáveis; Nome da variável; Palavras reservadas; A função printf(); A função scanf(); Variáveis locais; Variáveis

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4 Algoritmos e Estruturas de Dados I (DCC/003) 2013/1 Estruturas Básicas Aula Tópico 4 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para

Leia mais

Disciplina: Introdução à Engenharia da Computação

Disciplina: Introdução à Engenharia da Computação Colegiado de Engenharia de Computação Disciplina: Introdução à Engenharia da Computação Aula 07 (semestre 2011.2) Prof. Rosalvo Ferreira de Oliveira Neto, M.Sc. rosalvo.oliveira@univasf.edu.br 2 Representação

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Conjunto de Instruções Slide 1 Sumário Características de Instruções de Máquina Tipos de Operandos Tipos de Operações Linguagem de Montagem Slide 2 Características

Leia mais

Métodos Computacionais

Métodos Computacionais Métodos Computacionais Objetivos da Disciplina e Introdução a Linguagem C Construções Básicas Objetivos da Disciplina Objetivo Geral Discutir técnicas de programação e estruturação de dados para o desenvolvimento

Leia mais

Linguagem C: Introdução

Linguagem C: Introdução Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais

Leia mais

Introdução a Linguagem C. Prof. Me. Hélio Esperidião

Introdução a Linguagem C. Prof. Me. Hélio Esperidião Introdução a Linguagem C Prof. Me. Hélio Esperidião Características de um programa De forma geral a maioria dos programas são compostos por dados de entrada, processamento e dados de saída. Entrada de

Leia mais

Arquiteturas de Computadores. Princípios e exemplos de conjuntos de instruções

Arquiteturas de Computadores. Princípios e exemplos de conjuntos de instruções Arquiteturas de Computadores Princípios e exemplos de conjuntos de instruções Características das aplicações Computação de desktop Ênfase em desempenho de programas com tipos de dados inteiros e ponto-flutuante

Leia mais

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

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP) 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

Leia mais

Organização e Projetos de Computadores. Capítulo 2. Organização e Projetos de Computadores. Instruções

Organização e Projetos de Computadores. Capítulo 2. Organização e Projetos de Computadores. Instruções Capítulo 2 Hennessy Patterson 1 Instruções Linguagem da máquina Vamos trabalhar com a arquitetura do conjunto de instruções MIPS (Micrrocessor without interlocked pipeline stages Micrrocessador sem estágios

Leia mais

Aula 03: Introdução a C

Aula 03: Introdução a C Aula 03: Introdução a C Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior O que é um computador Organização de um

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Linguagem de Montagem Slide 1 CISC RISC MIPS Organização e Arquitetura de Computadores I Sumário Representação de instruções Slide 2 CISC O CISC (Complex Instruction

Leia mais

INTRODUÇÃO À LINGUAGEM C

INTRODUÇÃO À LINGUAGEM C INTRODUÇÃO À LINGUAGEM C Prof. Bruno Feijó, Dept. de Informática, PUC-Rio (2018) C foi criado no início da década de 70, quando os programas mais eficientes eram escritos em linguagem Assembly, bem próxima

Leia mais

Sistemas Processadores e Periféricos Aula 2 - Revisão

Sistemas Processadores e Periféricos Aula 2 - Revisão Sistemas Processadores e Periféricos Aula 2 - Revisão Prof. Frank Sill Torres DELT Escola de Engenharia UFMG Adaptado a partir dos Slides de Organização de Computadores 2006/02 do professor Leandro Galvão

Leia mais

Infraestrutura de Hardware. Instruindo um Computador

Infraestrutura de Hardware. Instruindo um Computador Infraestrutura de Hardware Instruindo um Computador Componentes de um Computador Unid. Controle Controle Memória Registradores PC MAR IR AC Programa + Dados Instrução Endereço Operando ALU Temp Datapath

Leia mais

1/50. Conceitos Básicos. Programa Básico

1/50. Conceitos Básicos. Programa Básico 1/50 Conceitos Básicos Programa Básico 2/50 Operações básicas de entrada e saída #include main retorna um inteiro int main() { std::cout

Leia mais

Representação de Dados

Representação de Dados Representação de Dados Representação binária Exemplo: 15213 10 11101101101101 2 Vantagens: Implementação eletrônica Possibilidade de armazenar elementos com dois estados Transmissão eletrônica confiável

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação ET42G Aula 5 Prof. Daniel Cavalcanti Jeronymo Tipos básicos de dados. Modificadores de tipos. Operadores aritméticos. Operadores lógicos. Operadores binários. Universidade Tecnológica

Leia mais

[1] $2,$0,$3 105 [2] 0x004000e8

[1] $2,$0,$3 105 [2] 0x004000e8 Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 14/setembro/2017 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome

Leia mais

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

#include <stdio.h> Void main() { printf( Cheguei!\n); } INTRODUÇÃO A LINGUAGEM C #include Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C ANTES DO C ERA A LINGUAGEM B B foi essencialmente uma simplificação da linguagem BCPL. B só tinha um tipo de dado, que

Leia mais

Infraestrutura de Hardware. Instruindo um Computador Ponteiros, Execução de Programas em C e Java, Características do Intel x86

Infraestrutura de Hardware. Instruindo um Computador Ponteiros, Execução de Programas em C e Java, Características do Intel x86 Infraestrutura de Hardware Instruindo um Computador Ponteiros, Execução de Programas em C e Java, Características do Intel x86 Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito

Leia mais

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Guia de bolso - Prof. César Melo

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Guia de bolso - Prof. César Melo Algoritmos e Estruturas de Dados I IEC012 Linguagem C - Guia de bolso - Prof. César Melo Histórico A linguagem C é uma linguagem de programação inventada na década de 1970 por Dennis Ritchie Brian Kennigaham.

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores. Aula - Tópico 1

Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores. Aula - Tópico 1 Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores Aula - Tópico 1 1 Problema 1 Considere o seguinte problema: Determinar o valor de y = seno(1,5). 2 Definições Para

Leia mais

Válido Rótulo Bloco bits 8 bits 8 bits 8 bits

Válido Rótulo Bloco bits 8 bits 8 bits 8 bits UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO TCC04.070-Organização de Computadores I Turma :A1 Gabarito - Lista 2 1. a) 256M-1=268435455 b) Log 2 256M=

Leia mais

Cap. 2 Expressões na linguagem C

Cap. 2 Expressões na linguagem C Programação de Computadores II Cap. 2 Expressões na linguagem C Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (24) Slides adaptados dos originais

Leia mais

Engenharia Elétrica AAM. Professor: Marco Shawn Meireles Machado

Engenharia Elétrica AAM. Professor: Marco Shawn Meireles Machado Engenharia Elétrica AAM Professor: Marco Shawn Meireles Machado Objetivos da Aula: Definir linguagem de alto nível e baixo nível; Descrever a linguagem assembler; Descrever a linguagem C; Revisão linguagem

Leia mais

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Introdução à Programação Operadores, Expressões Aritméticas e Entrada/Saída de Dados Programa em C #include int main main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius

Leia mais

PARTE I I: ARITMÉTICA COMPUTACIONAL ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

PARTE I I: ARITMÉTICA COMPUTACIONAL ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR PARTE I I: ARITMÉTICA COMPUTACIONAL ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR Introdução Como representar números em memória? Como representar números negativos e de ponto flutuante?

Leia mais

Registradores na Arquitetura MIPS. 29/4/2016 MIPS - Instruction Set Architecture

Registradores na Arquitetura MIPS. 29/4/2016 MIPS - Instruction Set Architecture Registradores na Arquitetura MIPS 29/4/2016 MIPS - Instruction Set Architecture 1 Mapa de Memória da Arq. MIPS 2 GB 2 GB 256 MB 64 KB 2 GB 64 KB 256 4 MB 4 MB 29/4/2016 MIPS - Instruction Set Architecture

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;

Leia mais

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas 03/03/2010 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa

Leia mais

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008 Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008 Introdução O objetivo desta aula prática é exercitar comandos de entrada e saída simples

Leia mais

Linguagem de Programação I. Aula 06 Linguagem C: Tipos de Dados

Linguagem de Programação I. Aula 06 Linguagem C: Tipos de Dados Linguagem de Programação I Aula 06 Linguagem C: Tipos de Dados Da Aula Anterior Linguagens de Programação A Linguagem C: Como tudo começou Principais características da Linguagem C O primeiro programa

Leia mais

Slides trabalhados durante a quinta aula

Slides trabalhados durante a quinta aula Slides trabalhados durante a quinta aula prática Estruturas de Controle de Fluxo 3. Laços de repetição (continuação) Exercício: Construa um algoritmo, representando-o através de um pseudocódigo e de um

Leia mais

Tópicos em C. Eliade F. Lima

Tópicos em C. Eliade F. Lima Tópicos em C Eliade F. Lima maio/2010 Criada em 1972, por Dennis Ritchie, nos laboratórios Bell, para ser usada no sistema operacional UNIX. Linguagem de propósito geral, sendo adequada à programação estruturada.

Leia mais

Estruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char?

Estruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? 1 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa o

Leia mais

Conceitos Básicos de C

Conceitos Básicos de C Conceitos Básicos de C Bibliografia Problem Solving & Program design in C, Jeri R. Hanly e Elliot B. Kpffman, 3 a edição Data Structures and Algorithm Analysis in C, Mark Allen Weiss, 2 a edição, Addison-Wesley,

Leia mais

Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011

Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011 Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011 Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa

Leia mais

SSC304 Introdução à Programação Para Engenharias. Ponteiros. GE4 Bio

SSC304 Introdução à Programação Para Engenharias. Ponteiros. GE4 Bio Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Introdução à Para Engenharias s GE4 Bio GE4Bio Grupo de Estudos em Sinais Biológicos Prof.Dr.

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização e Arquitetura Básicas

Leia mais

Tópicos de hoje: Cap. 2 Expressões na linguagem C. Bits, Bytes e Palavras. Variáveis e Constantes. Números inteiros num Byte

Tópicos de hoje: Cap. 2 Expressões na linguagem C. Bits, Bytes e Palavras. Variáveis e Constantes. Números inteiros num Byte Tópicos de hoje: Programação de Computadores II Cap. Expressões na linguagem C Bits, s e Palavras Variáveis e constantes Operadores e expressões Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel.

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação CP41F. Modificadores de tipos. Aula 6 Prof. Daniel Cavalcanti Jeronymo Universidade Tecnológica Federal do Paraná (UTFPR) Engenharia de Computação 1º Período 1/28 Plano de Aula

Leia mais

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de

Leia mais

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

MC102 Algoritmos e programação de computadores Aula 3: Variáveis MC102 Algoritmos e programação de computadores Aula 3: Variáveis Variáveis Variáveis são locais onde armazenamos valores na memória. Toda variável é caracterizada por um nome, que a identifica em um programa,

Leia mais