UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
|
|
- Pietra Câmara Affonso
- 7 Há anos
- Visualizações:
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 - Gabarito 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 aritmética 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 aritmética, 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 foram convertidas para uma sequencia de 3 instruções deslocamento/soma. a) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização. Para C1 sem otimização: Número de ciclos: = 480 CPI médio = Número de ciclos/número de instruções = 480/200 = 2,4 Para C1 com otimização: Número de ciclos: = 445 Número de instruções: = 210 CPI médio = Número de ciclos/número de instruções = 445/210 = 2,12 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. Para C1 sem otimização: T C1sem = 2,4 (ciclo do relógio em segundos) 200 Para C1 com otimização: T C2com = 2,12 (ciclo do relógio em segundos) 210 T C1sem /T C1com = 2,4 (ciclo do relógio em segundos) 200 /(2,12 (ciclo do relógio em segundos) 210) = (2,4 200) /(2,12 210) 1,08. Logo em relação à métrica tempo de execução, C1 com otimziação tem melhor desempenho que C1 sem otimização pois possui um menor valor de tempo de execuçã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. Para C1 sem otimização: MIPS C1sem = 200 / (200 2,4 (ciclo do relógio em segundos) 10 6 ) Para C1 com otimização: MIPS C1com = 210/ (210 2,12 (ciclo do relógio em segundos) 10 6 ) MIPS C1sem /MIPS C1com = 1 / (2,4 (ciclo do relógio em segundos) 10 6 ) /(1/ (2,12 (ciclo do relógio em segundos) 10 6 )) = (2,12) / (2,4) 0,88. Logo em relação à métrica MIPS, o compilador com otimização tem melhor desempenho que sem otimização pois possui um maior valor de MIPS.
2 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++) { O casting de x para unsigned faz com que o limite superior do loop seja o maior número sem sinal de 64 bits (2 64-1). Em cada iteração do loop, considera-se que são executadas uma operação de desvio condicional e uma de adição. Portanto cada iteração (excetuando a primeira que atribui o valor a i e a última que não executa adição) demanda 2 ciclos de relógio, e o loop será executado aproximadamente em (2 (2 64-1) 10-9 ) , dias 1169 anos 3. Dado o conjunto de bits abaixo indique o que ele representa, assumindo-se que ele é: a) um inteiro em complemento a 2 (decimal) A = = = 1, = A = Ou A= = = b) um inteiro sem sinal (decimal) A= = c) um número ponto flutuante em precisão simples padrão IEEE 754 (decimal) s = 1 expoente = = = 31 mantissa = ( 1) S (1 + mantissa) 2 expoente 127 = = 1 ( ) d) uma instrução MIPS código (6 bits) = = lw rs (5 bits) = = 31 rt (5 bits) = = 15 deslocamento expresso em C2 (16 bits) = Instrução: lw 15, 4096(31)
3 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 a) Mostre como será a representação de -11, ,75 = -(1011,11) = -(1,01111) 2 +3 S=1 Exp.em excesso de 15 = Mantissa= Logo, representação é b) Calcule o valor em decimal dos seguintes números: b.1) Maior número normalizado positivo +(1, ) = b.2) Menor número normalizado positivo +(1,0) , b.3) Maior número denormalizado positivo +(0, ) , b.4) Menor número denormalizado positivo +(0, ) , 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 Pseudoinstrução O que ela faz Instruções MIPS move $t5,$t3 $t5 = $t3 add $t5, $t3, $zero clear $t5 $t5 = 0 add $t5, $zero, $zero lw $t5, big($t3) $t3 = Memória[$t3+big] lui $at, upper_big ori $at, $at, lower_big add $at, $at, $t3 lw $t5, 0($at)
4 addi $t5, $t3, big $t5 = $t3+big lui $t5, upper_big ori $t5, $t5, lower_big add $t5, $t5, $t3 beq $t5, big, L if ($t5 = big) go to L lui $at, upper_big ori $at, $at, lower_big beq $t5, $at, L ble $t5, $t3, L if ($t5 <= $t3) go to L beq $t5,$t3, L slt $at, $t5, $t3 bne $at, $zero, 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? Esperava que fosse impresso Iguais e, ao contrário do esperado, foi impresso Não iguais 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); 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. Foi impresso Iguais, como esperado. No primeiro programa, compara-se o resultado de x*100 com 1.0. O valor 0.01 atribuído á variável x precisa de um número infinito de bits para ser representado na base 2. O processador Intel realiza a
5 operação x*100 armazenado o valor de x em um registrador de precisão estendida e o resultado x*100 também estará armazenado em um registrador de precisão estendida. Seu valor será diferente de 1.0. No segundo programa, antes da comparação, o resultado da operação x*100 é atribuído a x, o que faz com que o valor armazenado no registrador estendido seja convertido para a representação IEEE 754 em precisão simples pois o tipo da variável x é float. Ao realizar esta conversão, o valor é arredondado de forma igual à representação IEEE 754 de 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. codigo XX quantidade preço fornecedor [20] E E+2 E+4 E+8 E+12 E+32 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 ( remédio 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)
6 else return (0); Assuma que o endereço inicial do vetor é passado no registrador $a0, o código do remédio em $ao0 e a quantidade em $a1. O valor de retorno deve ser colocado em $v0. Você pode utilizar a pilha para salvar valores que achar necessários. add $t0,$zero, $zero # inicializa variável i li $t1, 1000 # inicializa var. de controle de fim de vetor WHILE beq $t0, $t1, FIM # verifica se atingiu final do vetor lh $t2,0($a0) # carrega valor de código do elemento i em $t2 bne $t2,$a1,nachou # verifica se elemento do estoque é o procurado lw $t3, 4($a0) # obtém quantidade add $t3,$t3,$a2 # calcula nova quantidade sw $t3, 4($a0) # atualiza quantidade add $v0, $zero, $zero # achou o remédio, retorna valor 0 j RET # vai para fim do programa NACHOU addi $a0, $a0,32 # aponta para próximo elemento de estoque addi $t0,$t0,1 # incrementa i j WHILE # retorna para testar condição de fim do while FIM addi $v0, $zero, -1 # caso código não foi encontrado, retorna valor -1 em $v0 RET # retorno da função 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 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 Segmento de dados 0 (X) 4 (Z) (último dado) 2C (K) Procedimento C:
7 Segmento de texto Endereço Instrução 0 sw $al, M 3C Segmento de dados 0 (M) (último dado) C (T) Complete as tabelas abaixo referentes ao código gerado pelo montador para as instruções e dados mostrados acima para cada um dos três procedimentos. 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. Cabeçalho Nome Procedimento A Tamanho de texto 100 Tamanho de dados 20 Segmento de texto Endereço Instrução 0 lw $al, 0($gp) 4 jal 0 24 sw $s0,0($gp) FC Segmento de dados Endereço 0 (Y) 4 1C (W) Informação de relocação Endereço Tipo de instrução Dependência 0 lw Y 4 jal C 24 sw W Tabela de símbolos Label Endereço Y - W - C - Cabeçalho Nome Procedimento B Tamanho de texto 300 Tamanho de dados 30 Segmento de texto Endereço Instrução 0 lw $a1, 0($gp) 4 jal 0 8 beq $v0, 0,5 L1 20 lw $t1,0($gp) 2FC
8 Segmento de dados Endereço 0 (X) 4 (Z) 2C (K) Informação de relocação Endereço Tipo de instrução Dependência 0 lw X 4 jal C 20 lw Z Tabela de símbolos Label Endereço X -- Z -- K -- C -- Cabeçalho Nome Procedimento C Tamanho de texto 40 Tamanho de dados 10 Segmento de texto Endereço Instrução 0 sw $al,0($gp) 3C Segmento de dados Endereço 0 (M) C (T) Informação de relocação Endereço Tipo de instrução Dependência 0 sw M Tabela de símbolos Label Endereço M -- T -- 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 Procedimento ABC Tamanho de texto 440
9 Tamanho de dados 60 Segmento de texto Endereço Instrução lw $al, 8000($gp) jal sw $s0,801c($gp) 4000FC lw $a1, 8020($gp) jal beq $v0, 0, lw $t1,8024($gp) 4003FC sw $al,8050($gp) 40043C Segmento de dados Endereço (Y) C (W) (X) (Z) C (K) (M) C (T)
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 maisa) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimizaçã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 1. Um programa P foi compilado com um compilador
Leia maisExpoente 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 maisSistemas 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 maisSistemas 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 maisProcedimentos. 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 mais1: 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 maisDisciplina: 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 maisPARTE 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 maisProf. 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 maisORGANIZAÇÃ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 maisRepresentaçã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 maisInfraestrutura 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 maisFaculdade 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 maisLinguagem 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[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 maisSistemas 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 maisOrganizaçã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 maisLinguagens 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 maisRepresentaçã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 maisOrganizaçã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 maisConjunto 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 mais66 [2] 0x x c
Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 16/setembro/2015 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome
Leia maisInfraestrutura 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 maisFaculdade 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 maisInfraestrutura 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 maisSSC0114 Arquitetura de Computadores
SSC0114 Arquitetura de Computadores 3ª Aula Arquitetura MIPS: ISA, Formato das instruções e Modos de endereçamento MIPS Monociclo: Caminho de Dados e Unidade de Controle Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br
Leia maisAlgoritmos 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 maisDicas: Nas linhas 7 e 8 as constantes imediatas são especificadas como caracteres ASCIIE, o que é aceito pelo montador MARS.
Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 15/setembro/2016 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome
Leia maisExercícios resolvidos (aula de 4 de Maio) Resolução:
Exercícios resolvidos (aula de 4 de Maio) 1. Um microprocessador gera endereços de memória de 14 bits. Desenhe um mapa de memória dos seus endereços de memória fronteira especificados em hexadecimal. Uma
Leia maisDados 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 maisEstruturas 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 maisRegistradores 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 maisLinguagens 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 maisUniversidade 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 maisARQUITECTURA DE COMPUTADORES
ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA III Março 2014 Índice Instruction Set Revisões Procedimentos Stack Comunicar com pessoas ASCII Programar em MIPS estrutura, input e output Programar em MIPS
Leia mais3. 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 maisLinguagem 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 maisOrganização de Computadores μarquitetura. Na Aula Anterior... Introdução. Nesta Aula. MIPS-Monociclo. Formas de Organização 17/10/2016
GBC06 Arq. e Org. de Computadores I 17/10/2016 Organização de Computadores μarquitetura Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Na Aula Anterior...
Leia maisDisciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans
Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 19/abril/2013 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome
Leia maisDisciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans
Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 18/abril/2012 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome
Leia maisPROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S
PROGRAMAÇÃO I VA R I Á V E I S, C O N S TA N T E S, O P E R A D O R E S E N T R A DA E S A Í DA D E DA D O S Variáveis 2 Variáveis são locais onde são armazenados os valores na memória. Toda variável é
Leia maisDisciplina: Organização e Arquitetura de Computadores II Professores: Fabiano Hessel e Ney Calazans 07/outubro/2009
Prova P1 Aluno Disciplina: Organização e Arquitetura de Computadores II Professores: Fabiano Hessel e Ney Calazans 07/outubro/2009 Valor das questões: 1) 4 pontos 2) 3 pontos 3) 3 pontos 1. Montagem/Desmontagem
Leia maisSistemas de Computação. Representação em Ponto Flutuante
Representação em Ponto Flutuante Representação IEEE para ponto flutuante IEEE Standard 754 Estabelecido em 1985 como padrão uniforme para aritmética em ponto flutuante A maioria das CPUs suporta este padrão
Leia maisVá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 maisLinguagem 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 mais2. Relativamente ao datapath de ciclo único do MIPS podemos dizer que:
Preencher na correcção 1: 2: 3: 4: 5: 6: 7: 8: F: Estas questões devem ser respondidas na própria folha do enunciado. As questões 1 a 4 são de escolha múltipla, e apenas uma das respostas está correcta,
Leia maisCap. 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 maisFaculdade de Computação
Faculdade de Computação Arquitetura e Organização de Computadores 1 Prática 2 entrega 10/05/2019 Prof. Cláudio C. Rodrigues Programando a Arquitetura MIPS P1) Traduza os códigos de máquina a seguir para
Leia mais4. 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 maisOrganizaçã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 mais4. 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 mais1: 2: 2, [1] [2] 0x x3c011001
Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 13/setembro/2013 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome
Leia maisArquitetura de Computadores I. Prof. Ricardo Santos (Cap 2)
Arquitetura de Computadores I Prof. Ricardo Santos ricr.santos@gmail.com (Cap 2) Instruções Comandos utilizados para indicar ao hardware o que deve ser feito Utilizaremos neste curso o conjunto de instruções
Leia maisLinguagem 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 maisProgramaçã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 maisEntender 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 maisTó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 maisSSC0611 Arquitetura de Computadores
SSC0611 Arquitetura de Computadores 2ª e 3ª Aulas Arquitetura MIPS: ISA, Formato das instruções e Modos de endereçamento Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Arquitetura MIPS MIPS: Microprocessor
Leia maisFaculdade de Computação
Faculdade de Computação Arquitetura e Organização de Computadores 2 1 a Lista de Exercícios entrega em 25/09/2018 Prof. Cláudio C. Rodrigues Problemas: P1) A Tabela abaixo apresenta o mix de instruções
Leia maishttp://www.ic.uff.br/~boeres/fac.html! Conteúdos: Debora, Edcarllos, livros! slides disponíveis!
http://www.ic.uff.br/~boeres/fac.html! 1 Conteúdos: Debora, Edcarllos, livros! slides disponíveis! Unidade central de Processamento realiza operações básicas codificadas em 0s e 1s instrução contém código
Leia maisIntroduçã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 maisConjunto de Instruções MIPS Parte IV
Faculdade de Ciências Aplicadas e Sociais de Petrolina FACAPE Conjunto de Parte IV Transferência de Dados Lógicas Controle Suporte a procedimentos Prof. Sérgio Adaptado dos slides de Sistemas Processadores
Leia maisGuia 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 maisHello 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 maisAlgoritmos 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 maisLista de Revisão para a Primeira Avaliação
Lista de Revisão para a Primeira Avaliação 1. Explique a diferença entre as instruções add e addi. Qual formato de instrução cada uma delas utiliza? 2. Quantos bits a instrução j reserva para o endereço
Leia maisDisciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans. Lista de associação de números e mnemônicos para os registradores do MIPS
Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 15/abril/2016 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome
Leia maisSlides 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 maisProgramaçã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 maisOrganizaçã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 maisTipos 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 maisLinguagem 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 maisOperações de Controle de Fluxo e Acesso a Memória. Na Aula Anterior... Nesta Aula. Instruções de Controle de Fluxo. if then - else.
GBC036 Arq. e Org. Computadores I Operações Controle Fluxo e Acesso a Memória Na Aula Anterior... Instruções aritméticas em Z; Formato e Codificação Instruções; Overflow e unrflow; Instruções aritméticas
Leia maisEstruturas 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 maisProgramaçã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 maisEstruturas 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 maisAlgoritmos 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 maisARQUITECTURA DE COMPUTADORES
ARQUITECTURA DE COMPUTADORES CAPÍTULO III AULA I, II e III Abril 2014 Índice Aritmética para computadores Intro Adição e subtração Multiplicação Divisão Virgula Flutuante Virgula Flutuante - aritmética
Leia maisBits 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 maisUNIVERSIDADE 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 Arquiteturas de Computadores Turma :A1 Lista 1 Profa.: Simone Martins 1. Tentando projetar o futuro: a) Em
Leia maisOrganizaçã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 maisOrganizaçã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 maisAlgoritmos 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 maisLinguagem de Maquina II. Visão Geral
Linguagem de Maquina II Visão Geral Revisão A linguagem de máquina é composta de seqüências binárias (1's e 0's) São interpretadas como instruções pelo hardware A linguagem de montagem e a linguagem de
Leia mais#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 maisRepresentação de Números em Ponto Flutuante
Representação de Números em Ponto Fixo char 8, short 16, int 32, long 32, long long 64 Números de 31 bits + sinal 2 31 < n < +(2 31 1) Números positivos de 32 bits 0 < n < +(2 32 1) Representam 2 32 quantidades
Leia maisLinguagem 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 maisIntroduçã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 maisLISTA 02 CONJUNTO DE INSTRUÇÕES - GABARITO
LISTA 02 CONJUNTO DE INSTRUÇÕES - GABARITO 1) Identifique na instrução em linguagem de máquina armazenada na memória, os elementos da instrução 2) Na figura acima, qual a quantidade de código de operações
Leia maisINTRODUÇÃ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 maisLÓ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 maisSumário. Aula Anterior. Exercício 7.1 Contagem de bits a 1 numa palavra Exercício 7.2 Deslocamento de n bits num operando de 64 bits.
Sumário Aula Anterior Exercício 7.1 Contagem de bits a 1 numa palavra Exercício 7.2 Deslocamento de n bits num operando de 64 bits Aula 12 1 Sumário Nesta Aula Esclarecimento de dúvidas para o Exame Resolução
Leia maisRESUMO DE CONCEITOS BÁSICOS DE C
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação RESUMO DE CONCEITOS BÁSICOS DE C 1 Material preparado pela profa Silvana Maria Affonso de Lara 2º semestre de 2010
Leia maisFaculdade de Computação
Faculdade de Computação Arquitetura e Organização de Computadores 2 1 a Lista de Exercícios entrega em 19/04/2018 Prof. Cláudio C. Rodrigues Problemas: P1) Explique o que há de errado com as métricas de
Leia maisLinguagens de Programação Classificação
Classificação Classificação A proximidade que a linguagem de programação tem com a humana determina sua classe (o nível): Linguagem de máquina (primeira geração) Linguagem assembly - de montagem (segunda
Leia maisLinguagem 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 maisMé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 maisLinguagem C. Brian W. Kernighan, Dennis Ritchie (K&R) Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira
Linguagem C Brian W. Kernighan, Dennis Ritchie (K&R) Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira Centro de Cálculo Instituto Superior de Engenharia de Lisboa João
Leia mais