Faculdade de Computação
|
|
- Norma Lacerda Prada
- 6 Há anos
- Visualizações:
Transcrição
1 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 ARM e deve projetar um novo conjunto de instruções com apenas 16 registradores de 32 bits. Isto significa que precisamos apenas de campos de 4 bits para identificar operandos registradores em nossas instruções. a) Quantos bits extras obteremos para serem utilizados em outros campos nos seguintes formatos: R, J e I? b) Para instruções R-formato, você atribuiria os bits extras para opcode, shamt ou funct? Explique sua escolha em uma ou duas frases. c) Para instruções do formato-i, você, naturalmente, atribuiria os bits extras para o campo imediato, resultando no seguinte formato: [ opcode (6) rs (4) rt (4) immediate (18) ] Qual a fração do espaço de endereçamento de memória, podemos alcançar com uma instrução de desvio (branch)? d) Assuma que o Program Counter (PC) contém atualmente o endereço 0x Qual é o menor endereço (em hexadecimal), podemos alcançar com uma instrução de desvio? P2) Considere as declarações de uma variável do string (str) realizadas conforme as sentenças abaixo. Explique de forma objetiva como o espaço de endereçamento de memória será configurado, para cada uma das declarações. a) static char str[] = "thing"; b) char str[] = "thing"; c) char *str = malloc(6); strcpy(str, "thing"); P3) Modos de Endereçamento do MIPS: Temos vários modos de endereçamento para o acesso à memória (imediato não listados): endereçamento base deslocamento. endereçamento relativo ao PC. endereçamento pseudo-direto. endereçamento por registrador. a) Uma determinada solução de programação em MIPS assembly necessita de uma instrução para executar um salto para um endereço 2^ bytes distante da atual posição do PC. Como você faria para resolver? Considere que o endereço de destino será conhecido em tempo de compilação. b) Uma determinada solução de programação em MIPS assembly necessita de uma instrução para executar um desvio para um endereço 2^ bytes distante da atual posição do PC, quando $t0 é igual a 0. Considere que não saltaremos para um endereço superior a 2^28 bytes. Como você faria para resolver? P4) Convenções a) Como deve o registrador $sp ser utilizado? Quando é que devemos adicionar ou subtrair $sp? b) Quais registradores necessitams ser salvos ou restaurados antes de executarmos a instrução jr para retornar de uma função? c) Quais registradores necessitam ser salvos antes de executar a instrução JAL? d) Como podemos passar parâmetros para funções? e) O que devemos fazer se houvera necessidade de passar mais do que quatro parâmetros para uma função? f) Como são retornados valores pelas funções? Arquitetura e Organização de Computadores 2 1
2 P5) Comente o código MIPS a seguir e descreva em uma sentença que ele computa. Assuma que $a0 é utilizado para a entrada e inicialmente contém n, um inteiro positivo. Assuma que $v0 é utilizado para a saída. begin: addi $t0, $zero, 0 addi $t1, $zero, 1 loop: slt $t2, $a0, $t1 bne $t2, $zero, finish add $t0, $t0, $t1 addi $t1, $t1, 2 j loop finish: add $v0, $t0, $zero P6) Considere a função mistério escrita em MIPS assembly: 1 misterio: 2 beq $a1, $0, L3 3 sll $a1, $a1, 2 4 addu $a1, $a0, $a1 5 move $t8, $a0 6 L1: 7 addiu $t8, $t8, 4 8 beq $t8, $a1, L3 9 move $t9, $t8 10 L2: 11 beq $t9, $a0, L1 12 lw $t0, -4($t9) 13 lw $t1, 0($t9) 14 slt $t2, $t1, $t0 15 beq $t2, $0, L1 16 sw $t1, -4($t9) 17 sw $t0, 0($t9) 18 addiu $t9, $t9, # PRINTF AQUI 20 j L2 21 L3: 22 jr $ra a) Qual seria a assinatura da função mistério em linguagem C? b) Explique de forma objetiva o que a função mistério faz? c) Considere uma modificação no código acima para incluir a invocação da função de biblioteca PRINTF na linha marcada #PRINTF AQUI, mas não modifique qualquer outra linha da função. Liste os registradores que precisam ser salvos na pilha antes da chamada da PRINTF e restaurados na sequência. P7) O padrão IEEE 754 define a representação binária para valores em ponto flutuante (floating point values) usando três campos: - O sign determina o sinal do número (0 para positivo, 1 para negativo) - O exponent é uma representação de excesso (bias) de O significand aramazena a parte fracionária. Abaixo temos o formato da representação de ponto flutuante de precisão simples (32-bit): sign exponent significand FP normalizados: Valor = (-1)Sign x 2 (Exponent Bias) x 1.significand2 FP denormalizados: Valor = (-1)Sign x 2 (Exponent Bias + 1) x 0.significand2 Arquitetura e Organização de Computadores 2 2
3 a) Converta os seguintes valores de binário para decimal ou decimal para binário: 0x x80000F xFF94BEEF - P8) O seguinte fragmento de código processa um array e produz dois importantes valores nos registradores $v0 e $v1. Assuma que o array consiste de 5000 palavras indexadas de 0 a 4999, e seu endereço base está armazenado em $a0 e seu tamanho (5000) em $a1. Descreva em uma sentença o que este código faz. Especificamente, o que será retornado em $v0 e $v1? add $a1, $a1, $a1 add $a1, $a1, $a1 add $v0, $zero, $zero add $t0, $zero, $zero outer: add $t4, $a0, $t0 lw $t4, 0($t4) add $t5, $zero, $zero add $t1, $zero, $zero inner: add $t3, $a0, $t1 lw $t3, 0($t3) bne $t3, $t4, skip addi $t5, $t5, 1 skip: addi $t1, $t1, 4 bne $t1, $a1, inner slt $t2, $t5, $v0 bne $t2, $zero, next add $v0, $t5, $zero add $v1, $t4, $zero next: addi $t0, $t0, 4 bne $t0, $a1, outer P9) O programa a seguir tenta copiar palavras de um endereço no registrador $a1, contando o número de palavras copiadas no registrador $v0. O programa para de copiar quando encontra uma palavra igual a 0. Você não tem que preservar o conteúdo dos registradores $v1, $a0 e $a1. Esta palavra de terminação deve ser copiada, mas não contada. loop: lw $v1, 0($a0) # read next word from source addi $v0, $v0, 1 # increment count words copied sw $v1, 0($a1) # write to destination addi $a0, $a0, 1 # advance pointer to next source addi $a1, $a1, 1 # advance pointer to next dest bne $v1, $zero, loop # loop if word copied!= zero Existem múltiplos erros neste programa MIPS; conserte-os e torne este programa bug-free. O modo mais fácil de escrever programas MIPS é utilizar o simulador MARS disponível no sítio da disciplina. Você pode efetuar o download do simulador através dos links na página do curso. P10) Considere o seguinte fragmento de código C: for (i=0;i<=100;i=i+1) { a[i] = b[i] + c; Assuma que a e b são arrays de inteiros (.word) e que o endereço base de a está em $a0 e que o endereço base de b está em $a1. O registrador $t0 está associado a variável i e o registrador $s0 a variável c. Escreva o código utilizando o conjunto de instruções MIPS. Quantas instruções são executadas durante a execução deste código? Quantas referências de dados na memória serão feitas durante a execução? Arquitetura e Organização de Computadores 2 3
4 P11) Converta a função abaixo, escrita em linguagem C, para a linguagem do MIPS Considere que $a0 e $a1 guardam os ponteiros para os inteiros, troque os valores para os quais eles apontam usando a pilha. void swap(int *a, int *b) { int tmp = *a; *a = *b; *b = tmp; P12) Converta o fragmento de código abaixo, escrito em linguagem C, para a linguagem do MIPS O fragmento calcula a soma de números de 0 a N. Considere que $s0 mantem N (N>=0), $s1 mantem a soma. Transforme a solução em estrutura de função. int soma= 0 if (N == 0) return 0; while (N!= 0) { suma += N N--; return soma; P13) Converta o fragmento de código abaixo, escrito em linguagem C, para a linguagem do MIPS // Strcpy: // $s1 -> char s1[] = Hello! ; // $s2 -> char *s2 = // malloc(sizeof(char)*7); int i=0; do { s2[i] = s1[i]; i++; while(s1[i]!= '\0'); s2[i] = '\0'; P14) Converta o fragmento de código abaixo, escrito em linguagem C, para a linguagem do MIPS /** Converts the string S to lowercase */ void string_to_lowercase(char *s) { for(char c = *s; (c=*s)!= '\0'; s++) { if(c >= 'A' && c <= 'Z') { *s += 'a' - 'A'; P15) Converta o fragmento de código abaixo, escrito em linguagem C, para a linguagem do MIPS /** Returns the number of bytes in S before, but not counting, the null terminator. */ size_t string_length(char *s) { char *s2 = s; while(*s2++); return s2 - s - 1; Arquitetura e Organização de Computadores 2 4
5 P16) Converta o fragmento de código abaixo, escrito em linguagem C, para a linguagem do MIPS /** Return the number of odd numbers in a number array */ uint32_t number_odds(uint32_t *numbers, uint32_t size) { uint32_t odds = 0; for (uint32_t i = 0; i < size; i++) odds += *(numbers+i) & 1; // odds += numbers[i] & 1; return odds; P17) Converta o fragmento de código abaixo, escrito em linguagem C, para a linguagem do MIPS // Nth_Fibonacci(n): // $s0 -> n, $s1 -> fib // $t0 -> i, $t1 -> j // Assume fib, i, j are these values int fib = 1, i = 1, j = 1; if (n==0) return 0; else if (n==1) return 1; n -= 2; while (n!= 0) { fib = i + j; j = i; i = fib; n--; return fib; P18) Escreva, na linguagem de montagem do MIPS, um programa que converta uma string decimal em ASCII para um número inteiro. Seu programa deve considerar que o registrador $a0 tem endereço do caractere null, usado para marcar o fim da string que contém alguma combinação dos dígitos de 0 a 9. Seu programa deve calcular o valor inteiro correspondente a essa string de bits, colocando seu valor no registrador $v0. Seu programa não deve preocupar-se com números negativos. Se for identificado no string um caractere que não represente um dígito, seu programa deve retornar o valor -1 no registrador $v0. Por exemplo, se o registrador $a0 aponta para uma sequência de três bytes: 50 dez, 52 dez, 0 dez, seguida do caractere null = 24, então, quando o programa termina, o registrador $v0 deve ter o valor 24 dez armazenado nele.(o subscrito dez significa base 10.) P19) Escreva um procedimento, itoa, na linguagem de montagem, do MIPS, para converter um argumento inteiro na sua representação decimal ASCII. O procedimento deve receber dois argumentos: o primeiro é um valor inteiro a ser convertido, que deve estar no registrador $a0, e o segundo é o endereço onde escrever a string obtido da conversão, endereço este armazenado no registrador $a1. Portanto, itoa deve converter seu primeiro argumento para uma string terminada com o caractere null armazenando esta string no endereço obtido do seu segundo argumento. O procedimento deve retornar também, em $v0, o valor numérico correspondente à contagem dos caracteres diferentes de null, pertencentes à string gerada. P20) Escreva em MIPS assembly o programa abaixo:.data num1:.word 0x7FFFFFFF num2:.word 16.space 8.text main: lw $t0,num1($0) lw $t1,num2($0) mult $t0,$t1 mfhi $t0 mflo $t1 sw $t0,num2+4($0) sw $t1,num2+8($0) Arquitetura e Organização de Computadores 2 5
6 Este programa declara duas variáveis num1 e num2, carrega-as para os registos $t0 e $t1 respectivamente e armazena o resultado da multiplicação nas palavras que vêm depois dessas variáveis (a diretiva.space reserva espaço para essas duas palavras). Que resultado se obtém após executar este programa? Porque fica o resultado armazenado em duas palavras de memória? Modifique o código para que num1 e num2 sejam respectivamente 10 e 3. Reescreva código para dividir num1 por num2 e coloque o quociente e resto nas posições que vêm a seguir a num1 e num2. P21) Escreva uma função em MIPS assembly, denominada senox, que calcula o seno de x. A sua função apenas deverá calcular os primeiros 10 termos, isto é, até ao termo x 19 /19!. O seno de x pode ser calculado utilizando a expansão da série de Taylor: seno x = x x3 3! + x5 5! x7 7! + O elemento x da série de Taylor deve ser em radianos. Portanto, a função senox deve ler o valor do ângulo em graus e converter para radianos. Para realizar a conversão utilize a regra de três, considerando que PI radianos é igual a 180 e que a constante PI assume valor de P22) Escreva uma função em MIPS assembly, denominado cosex, que calcula o cosseno de x. A sua função apenas deverá calcular os primeiros 10 termos, isto é, até ao termo x 20 /20!. O cosseno de x pode ser calculado utilizando a expansão da série de Taylor: cosseno x = 1 x2 2! + x4 4! x6 6! + O elemento x da série de Taylor deve ser em radianos. Portanto, a função cosex deve ler o valor do ângulo em graus e converter para radianos. Para realizar a conversão utilize a regra de três, considerando que PI radianos é igual a 180 e que a constante PI assume valor de P23) Escreva uma função em MIPS assembly, denominado exp para calcular e x por desenvolvimento em Série de Taylor desprezando termos, em grandeza, inferiores a e x = 1 + x 1! + x2 2! + x3 3! +, < x < A função exponencial deve somar os termos da série até aparecer um termo cujo valor absoluto seja menor que (precisão). Isto é, o termo xk tende a zero quando k tende a +. Repetir o cálculo dos termos k! até um k tal que xk < (5,0 pontos) k! Dica: evite calcular o valor do fatorial, calcule um termo da série usando o termo anterior. P24) Escreva em MIPS assembly um programa que, dado um vetor v com 5 posições (por exemplo, int v[5] = { 3, 2, 4, 1, 5 ) faça um gráfico horizontal com os valores do vetor. Exemplo: para o vetor v acima, deve imprimir na tela: 3 *** 2 ** 4 **** 1 * 5 ***** Arquitetura e Organização de Computadores 2 6
7 P25) Considere o seguinte jogo: n pessoas (numeradas de 1 a n) são dispostas em círculo. O algoritmo deve eleger uma posição inicial em aleatório e remover as pessoas do círculo de forma alternada (pessoasim-pessoa-não) e o círculo aperta-se. O algoritmo termina quando restar apenas uma pessoa (sobrevivente). Por exemplo, para n = 10 e posição inicial igual a 2, a ordem das eliminações é: 2, 4, 6, 8, 10, 3, 7, 1, 9 e 5 é o sobrevivente (ver figura). Escreva em MIPS assembly um programa que leia n e escreva a ordem das eliminações e o sobrevivente de acordo com este algoritmo. DICA: Represente o círculo de pessoas com uma variável indexada Arquitetura e Organização de Computadores 2 7
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 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 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 Sistemas de Computação 2016.2 Profa.: Simone Martins Lista 1 - Gabarito 1. Um programa P foi compilado com
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 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 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 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 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 maisArquitectura de Computadores ARQC MIPS. Serviços de Sistemas Exemplos. Serviços de Sistema
Arquitectura de Computadores ARQC MIPS Serviços de Sistemas Exemplos Serviços de Sistema Exemplo 1 Somar duas variáveis veis em um registrador register int a=1, b=3, c; c = a + b; (usar os códigos c de
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 maisArquitetura de Sistemas Digitais (FTL066) Instruções: Linguagem do Computador Segunda Lista de Exercícios
Arquitetura de Sistemas Digitais (FTL066) Instruções: Linguagem do Computador Segunda Lista de Exercícios 1) Explore conversões de números a partir de números binárias com sinal e sem sinal para decimal:
Leia maisFaculdade de Computação
Faculdade de Computação Programação Procedimental 1 a Lista de Exercícios p/ Avaliação Prof. Cláudio C. Rodrigues Instruções: 1. Apresentar as soluções usando a linguagem C, quando for apropriado; 2. O
Leia mais1 Exercícios com ponteiros
Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Oitava Aula Prática - 29 de outubro de 2010 O objetivo desta aula prática é exercitar ponteiros e funções. 1 Exercícios com ponteiros
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 maisArquitetura de Computadores
Universidade Federal de Santa Catarina Centro Tecnológico Curso de Pós-Graduação em Ciência da Computação Aula 2 Arquitetura do Processador MIPS: características gerais, registradores, formatos de instrução,
Leia maisMIPS. Prof. Carlos Bazilio http://www.ic.uff.br/~bazilio bazilio@ic.uff.br
MIPS Prof. Carlos Bazilio http://www.ic.uff.br/~bazilio bazilio@ic.uff.br Introdução Plataforma projetada da parceria entre NEC, Nintendo, Silicon Graphics e Sony Possui um conjunto de instruções que e
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 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 maisArquitetura de Computadores. Linguagem de Máquina
Arquitetura de Computadores Linguagem de Máquina Ivan Saraiva Silva Formato de Instrução MAC O MIC possui dois formatos de instrução: 4 bits 12 bits Formato 1 CODOP ENDEREÇO 8 bits 8 bits Formato 2 CODOP
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 maisMODOS DE ENDEREÇAMENTO
UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO ERINALDO SANCHES NASCIMENTO MODOS DE ENDEREÇAMENTO MARINGÁ 2014 SUMÁRIO 6 MODOS DE ENDEREÇAMENTO...2 6.1 ENDEREÇAMENTO
Leia maisRelembrando desempenho...
Parte 5 OBS: Essas anotações são adaptações do material suplementar (apresentações PPT) ao Livro do Hennessy e Patterson, 2ª e 3ª Ed. e do Livro do 5ª Ed. A parte final do material corresponde às aulas
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 mais1 Exercícios com ponteiros
Computação para Informática Funções e Ponteiros1 EXERCÍCIOS COM PONTEIROS Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Funções e ponteiros O objetivo desta aula prática
Leia maisRelembrando desempenho...
Parte 5 OBS: Essas anotações são adaptações do material suplementar (apresentações PPT) ao Livro do Hennessy e Patterson, 2ª e 3ª Ed. e do Livro do 5ª Ed. A parte final do material corresponde às aulas
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 maisMC102 Algoritmos e Programação de Computadores
MC102 Algoritmos e Programação de Computadores Instituto de Computação UNICAMP Primeiro Semestre de 2014 Roteiro 1 Maior número 2 Soma de n números 3 Fatorial 4 Máximo Divisor Comum (MDC) 5 Números primos
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 maisProcedimentos e Gestão de Subrotinas
5 Procedimentos e Gestão de Subrotinas Wait a minute, Doc. Are you telling me you built a time machine out of a DeLorean? Marty McFly para o Dr. Brown no filme de 1985, Back to the future O desenho de
Leia maisWilliam Stallings Arquitetura e Organização de Computadores 8 a Edição
William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 10 Conjuntos de instruções: Características e funções slide 1 O que é um conjunto de instruções? A coleção completa de instruções
Leia maisNEANDERWIN. Algumas características do processador Neander são:
NEANDERWIN O NeanderWin é um simulador da máquina Neander, definida no livro do Raul F. Weber (UFRGS), Fundamentos de Arquitetura de Computadores, Ed. Sagra Luzzatto. A máquina original foi estendida aqui
Leia maisCapítulo 6: Arquivos
Capítulo 6: Arquivos Waldemar Celes e Roberto Ierusalimschy 29 de Fevereiro de 2012 1 Funções de entrada e saída em arquivos Nos capítulos anteriores, desenvolvemos programas que capturam seus dados de
Leia maisAlocação Dinâmica em C
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Alocação Dinâmica em C Profa Rosana Braga Adaptado de material preparado pela profa Silvana Maria Affonso de Lara
Leia maisção de Computadores II
Universidade Federal de Pelotas Instituto de Física e Matemática Departamento de Informática Bacharelado em Ciência da Computação Arquitetura e Organizaçã ção de Computadores II Aula 2 2. MIPS monociclo:
Leia maisDisciplina de Algoritmos e Programação
Disciplina de Algoritmos e Programação Aula Passada Prática com declaração e inicialização de variáveis Capacidade de representação (estouro de representação) Tamanho ocupado pela variável na memória (comando
Leia mais1ª Lista de Exercícios
Universidade Federal do Rio de Janeiro Data: 26/04/05 Disciplina: Computação I 1ª Lista de Exercícios 1) Faça um programa, em pseudo-código, que peça ao usuário que informe n números reais e então calcule
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 maisTÉCNICO DE INFORMÁTICA - SISTEMAS
782 - Programação em C/C++ - estrutura básica e conceitos fundamentais Linguagens de programação Linguagem de programação são conjuntos de palavras formais, utilizadas na escrita de programas, para enunciar
Leia maisArquitetura de Computadores. Assembly Miscelâneas. Mário O. de Menezes. http://www.tf.ipen.br/~mario
Arquitetura de Computadores Assembly Miscelâneas Mário O. de Menezes http://www.tf.ipen.br/~mario AC Mário O. de Menezes 1 Lembrando Instruções Lógicas e Shift operam em bits individuais, diferente de
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 maisProf. Leonardo Augusto Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Aula 1 Conceitos necessários Prof. Leonardo Augusto Casillo Sistema de numeração: conjunto de regras que nos permite escrever e ler
Leia maisCapítulo 3. Instruções: Aritmética MIPS
Capítulo 3 Permission is granted to copy and distribute this material for e ducational purposes only, provided that the complete bibliographic citation and following credit line is included: "Copyright
Leia maisArquitetura de Computadores I. Prof. Ricardo Santos (Cap 2)
Arquitetura de Computadores I Prof. Ricardo Santos ricr.santos@gmail.com (Cap 2) Fluxo de Controle Vimos até agora: beq, bne Uma nova instrução: slt $t0, $s1, $s2 if $s1 < $s2 then $t0 = 1 else $t0 = 0
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 maisUniversidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python Exercícios: Funções 1. Crie uma função que recebe como parâmetro um número
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 maisAritmética Binária e Caminho de Dados. Aritmética Binária Caminho de Dados
ritmética Binária Caminho de Dados Ivanildo Miranda Octávio ugusto Deiroz Representação Binárias Representação Hexadecimal Números sem Sinal Números com Sinal Operações ritméticas (soma e subtração) com
Leia maisConjunto de Instruções. Conjunto de Instruções
Conjunto de Instruções It is easy to see by formal-logical methods that there exist certain [instruction sets] that are in abstract adequate to control and cause the execution of any sequence of operations...
Leia maisPrimeiro Trabalho de POO Emulador para o Processador Winter
Primeiro Trabalho de POO Emulador para o Processador Winter Prof. Pedro Carlos da Silva Lara Entrega: 21/10/2014 1 Informações Gerais Winter é um processador hipotético especificado com fim puramente acadêmico.
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 maisIntrodução à Linguagem C Variáveis e Expressões
INF1005: Programação 1 Introdução à Linguagem C Variáveis e Expressões 08/03/10 (c) Paula Rodrigues 1 Tópicos Principais Programando em C Funções Variáveis Define Operadores e Expressões Entrada e Saída
Leia maisCapítulo 3. This material may not be copied or distributed for commercial purposes without express written permission of the copyright holder.
Capítulo 3 Permission is granted to copy and distribute this material for educational purposes only, provided that the complete bibliographic citation and following credit line is included: "Copyright
Leia maisAlgoritmos. Algoritmos. Linguagem de programação. Conceitos. Conceitos. Conceitos. Sintaxe do comando para incluir bibliotecas no programa:
Algoritmos Algoritmos Leandro Tonietto Unisinos ltonietto@unisinos.br http://www.inf.unisinos.br/~ltonietto/inf/pg1/algoritmosi_java.pdf Mar-2008 Possuem sintaxe flexível e são mais úteis para descrição
Leia maisRevisão C++ - Parte 1
Revisão C++ - Parte 1 Prof. Gustavo Leitão Campus Natal Central Disciplina Programação para Ambiente de Redes 5/3/2010 Objetivo da Aula 5/3/2010 5/3/2010 OBJETIVO DA AULA Revisar os principais comandos
Leia maisFaculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação. Lista de Exercícios 1
Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação Lista de Exercícios 1 1. O programa seguinte tem vários erros em tempo de compilação. Encontre-os. Main() int a=1; b=2,
Leia maisFaculdade de Computação
Faculdade de Computação Programação Procedimental 1 a Lista de Exercícios p/ Avaliação Prof. Cláudio C. Rodrigues Instruções: 1. Apresentar as soluções usando a linguagem C, quando for apropriado; 2. A
Leia maisReferências. Linguagem C. Tipos de variáveis em XC8. Tipos de variáveis. Tipos de variáveis em XC 8 Exemplo. Radicais numéricos em C
Referências Linguagem C Jun Okamoto Jr. Kernighan, Brian W. and Ritchie, Dennis M. The C Programming Language (ANSI C); Prentice Hall; 2ª Edição; 1988 Microchip Technology Inc. MPLAB XC8 C Compiler User
Leia maisCap - 3: Linguagem de Máquina - MIPS
Cap - 3: Linguagem de Máquina - MIPS Arquitetura de Sistemas Computacionais Prof Ricardo Pannain 1 Arquitetura MIPS MIPS Microprocessor without Interlocking Pipes Stages (Microprocessador sem Intertravamento
Leia maisDescrição e análise da implementação em Assembly MIPS da função itoa
Descrição e análise da implementação em Assembly MIPS da função itoa Alana Rocha 1, Guilherme Alves 2, Guilherme Nunes 3 e Luiz Guilherme 4 Objetivo e visão geral do documento Este documento tem o objetivo
Leia maisLISTA DE EXERCÍCIOS 2
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO DE CIÊNCIA DA COMPUTAÇÃO PROGRAMAÇÃO DE COMPUTADORES 1. TIPOS COMPOSTOS DE DADOS LISTA DE EXERCÍCIOS 2 1. Considerando as declarações abaixo, responda dizendo
Leia maisAula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU
Aula 5 Oficina de Programação Introdução ao C Profa. Elaine Faria UFU - 2017 Linguagem de Programação Para que o computador consiga ler um programa e entender o que fazer, este programa deve ser escrito
Leia maisArquitetura de Computadores I Prof. Ricardo Santos (Cap 2)
Arquitetura de Computadores I Prof. Ricardo Santos ricr.santos@gmail.com (Cap 2) 1 Fluxo de controle Vimos até agora: beq, bne Uma nova instrução: if $s1 < $s2 then $t0 = 1 slt $t0, $s1, $s2 else $t0 =
Leia maisLinguagem C: Ponteiros. Prof. Leonardo Barreto Campos 1
Linguagem C: Ponteiros Prof. Leonardo Barreto Campos 1 Sumário Ponteiros; Variáveis ponteiros; Operadores de ponteiros; Expressões com ponteiros; Atribuição de ponteiros; Aritmética de ponteiros; Comparação
Leia maisMé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 maisO que é um apontador em C (type pointer in C)?
O que é um apontador em C (type pointer in C)? Um apontador é uma variável que contém um endereço de outra variável. int x = 10;//variável inteira iniciada com o valor 10 int *px = &x;//variável apontadora
Leia maisExercícios. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal
Exercícios 1) Crie uma função que recebe os coeficientes de uma função do 2o. grau e retorna as raízes sem usar vetor. 2) Faça um programa que acha o maior e o menor inteiro dentro de um vetor de 10 inteiros,
Leia maisCurso C: Ponteiros e Arrays
Universidade de Brasília Departamento de Ciência da Computação Curso C: Ponteiros e Arrays Prof. Ricardo Pezzuol Jacobi rjacobi@cic.unb.br Ponteiros um ponteiro Ž uma vari vel que contžm o endere o um
Leia maisIntrodução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI
Introdução à Programação em C Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI Linguagem C Criada em 1972 para uso no LINUX; Sintaxe base para diversas outras (Java, JavaScript, PHP, C++,
Leia maisUniversidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Funções 1. Crie uma função que recebe como parâmetro um número inteiro
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 Primeiro programa em C #include int main() { int num1, num2, result; scanf("%d",&num1); scanf("%d",&num2); result = num1 + num2; printf("%d",
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 maisProgramação: Vetores
Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia
Leia maisProgramação Básica. Estrutura de um algoritmo
Programação Básica Estrutura de um algoritmo Código-fonte Como vimos na aula anterior um algoritmo pode ser representado usando um fluxograma Um algoritmo pode também ser representado usando texto Esse
Leia maisComputaçã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 maisO Funcionamento do Processador
O Funcionamento do Processador Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Os cinco componentes clássicos de um Computador - Controle O
Leia maisVariáveis, Tipos de Dados e Operadores
! Variáveis, Tipos de Dados e Operadores Engenharias Informática Aplicada 2.o sem/2013 Profa Suely (e-mail: smaoki@yahoo.com) VARIÁVEL VARIÁVEL É um local lógico, ligado a um endereço físico da memória
Leia maisExercícios: Vetores e Matrizes
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Vetores e Matrizes 1 Vetores 1. Faça um programa que possua um vetor
Leia maisVariáveis primitivas e Controle de fluxo
Variáveis primitivas e Controle de fluxo Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/
Leia maisORGANIZAÇÃO DE COMPUTADORES
Organização de Computadores ORGANIZAÇÃO DE COMPUTADORES Curso: Tecnologia em Gestão da Tecnologia da Informação Ano: 2011 Instrução Precisam ser entendidas pelo processador Precisam ser decodificadas e
Leia maisLP2 Laboratório de Programação 2 Ciência da Computação. Problema proposto
Problema proposto Em um torneio de futebol a pontuação foi definida da seguinte maneira: vitória por goleada 6 pontos; vitória simples 3 pontos; empate 1 ponto. Como determinar a quantidade mínima de jogos
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 maisProf. Leonardo Augusto Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Aula 2 Estrutura de um processador Prof. Leonardo Augusto Casillo Arquitetura de Von Neumann: Conceito de programa armazenado; Dados
Leia maisFunções em Linguagem C Parte II
Slides inicialmente preparados pelo Prof. Dr. Claudio Fabiano Motta Toledo Funções em Linguagem C Parte II Profa. Dra. Elisa Yumi Nakagawa 1. Semestre 2017 Sumário Introdução a Ponteiros Escopo de Variáveis
Leia maiscadeia de caracteres (string) INF Programação I Prof. Roberto Azevedo
cadeia de caracteres (string) INF1005 -- Programação I -- 2016.1 Prof. Roberto Azevedo razevedo@inf.puc-rio.br cadeia de caracteres (string) tópicos caracteres cadeia de caracteres referência Capítulo
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 maisAnotações da 2a Edição
Anotações da 2a Edição OBS: Essas anotações são adaptações do material suplementar (apresentações PPT) ao Livro do Hennessy e Patterson. Supõe-se que os estudantes tenham noções de lógica digital e linguagem
Leia maisSistemas Processadores e Periféricos Aula 3 - Revisão
Sistemas Processadores e Periféricos Aula 3 - 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 maisDo alto-nível ao assembly
Do alto-nível ao assembly Compiladores Cristina C. Vieira 1 Viagem Como são implementadas as estruturas computacionais em assembly? Revisão dos conceitos relacionados com a programação em assembly para
Leia maisSIMULAÇÃO DE MÁQUINA DE REGISTRADORES COM MÁQUINA DE TURING MULTIFITA
SIMULAÇÃO DE MÁQUINA DE REGISTRADORES COM MÁQUINA DE TURING MULTIFITA Neste trabalho você deverá construir e testar, com a ferramenta JFLAP, uma MT multifita que simula o funcionamento de um computador
Leia maisAlgoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição 1 Comando while Deseja-se calcular o valor de: 1 + 2 + 3 +... + N. Observação: não sabemos, a priori, quantos termos
Leia maisApêndice B. Cadeias de Caracteres (Strings)
Apêndice B. Cadeias de Caracteres (Strings) Até agora, quando desejávamos indicar o número de elementos existentes em um vetor qualquer, utilizávamos uma variável inteira, digamos tam, para armazenar tal
Leia maisMétodos Computacionais. Strings (Vetor de Caracteres)
Métodos Computacionais Strings (Vetor de Caracteres) Em C, o tipo char : Caracteres é usado para representar caracteres pode armazenar valores inteiros (em 1 byte), representando assim, 256 valores distintos
Leia maisSumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?
Introdução à Ciência da Computação Ponteiros em C Prof. Ricardo J. G. B. Campello Sumário Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Operações Ponteiros
Leia maisProgramação Orientada a Objetos para Redes de Computadores
Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Arrays e Ponteiros Arrays Estruturas de dados que
Leia maisLição 4 Fundamentos da programação
Lição 4 Fundamentos da programação Introdução à Programação I 1 Objetivos Ao final desta lição, o estudante será capaz de: Identificar as partes básicas de um programa em Java Reconhecer as diferenças
Leia maisLinguagem C (continuação)
Linguagem C (continuação) Funções, arrays e ponteiros Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira Centro de Cálculo Instituto Superior de Engenharia de Lisboa João
Leia maisSistemas de Numeração
Infra-Estrutura de Hardware Sistemas de Numeração Conversão entre bases Bit e byte ECC Prof. Edilberto Silva www.edilms.eti.br edilms@yahoo.com Sumário Conversão de bases Aritmética binária e hexadecimal
Leia maisCOMPUTADOR 2. Professor Adão de Melo Neto
COMPUTADOR 2 Professor Adão de Melo Neto Modelo Barramento de Sistema É uma evolução do Modelo de Von Newman. Os dispositivos (processador, memória e dispositivos de E/S) são interligados por barramentos.
Leia maisComputadores de Programação (MAB353)
Computadores de Programação (MAB353) Aula 8: 04 de maio de 2010 1 Formatos de instruções MIPS 2 Endereçamento de operandos imediatos de 32 bits Endereçamento em desvios Modos de endereçamento do MIPS 3
Leia mais