Aula 2 Modelo Simplificado de Computador



Documentos relacionados
LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

Arquitetura de Rede de Computadores

Princípios de funcionamento dos computadores

13 Números Reais - Tipo float

3. Arquitetura Básica do Computador

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Curso de Hardware Aula 01 Tema: Sistema de Medidas Por: Edmilson de Oliveira Reis Revisado em: 02/03/2012

Organização Básica do Computador

BARRAMENTO DO SISTEMA

Exemplo de Subtração Binária

COMPUTADOR SIMPLIFICADO E COMPUTADOR DIGITAL. Algoritmos e Programação APG0001

Dispositivos de Entrada e Saída

Dadas a base e a altura de um triangulo, determinar sua área.

PROCESSAMENTO DE DADOS

Capítulo I : Noções Gerais

2. Representação Numérica

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 1

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Memórias Prof. Galvez Gonçalves

Montagem e Manutenção de Computadores Aula1

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS

Disciplina: Introdução à Informática Profª Érica Barcelos

Arquitetura de Computadores. Tipos de Instruções

Informática. Prof. Macêdo Firmino. Macêdo Firmino (IFRN) Informática Setembro de / 25

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

20 Caracteres - Tipo char

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados:

Componentes da linguagem C++

Componentes de um computador típico

Prof. Dr. Charlie Antoni Miquelin BÁSICO DE COMPUTAÇÃO EM TC

Aritmética Binária e. Bernardo Nunes Gonçalves

1. CAPÍTULO COMPUTADORES

Introdução aos Computadores

Conversão de Bases e Aritmética Binária

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Introdução à Lógica de Programação

AULA 1. Informática Básica. Gustavo Leitão. Disciplina: Professor:

Conceitos Importantes:

Figura 1 - O computador

Sistemas de Numerações.

Organização de Computadores

DOS SISTEMA OPERACIONAL DO COMPUTADOR

Fundamentos em Informática (Sistemas de Numeração e Representação de Dados)

Memória principal; Unidade de Controle U C P. Unidade Lógica e Aritmética

5 Entrada e Saída de Dados:

Computadores XXI: Busca e execução Final

1. Sistemas de numeração

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Curso EFA Técnico/a de Informática - Sistemas. Óbidos

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

ULA Sinais de Controle enviados pela UC

Organização e Arquitetura de Computadores I

Controladores Lógicos Programáveis CLP (parte-3)

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

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Hit dos Bits. Série Matemática na Escola

LÓGICA DE PROGRAMAÇÃO

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - MILLENNIUM

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - SLIM

SISTEMAS DIGITAIS Prof. Ricardo Rodrigues Barcelar

INFORMÁTICA BÁSICA. Prof. Rafael Zimmermann

SISTEMAS DE NUMERAÇÃO

ARQUITETURA DE COMPUTADORES. Sistemas de Numeração. 1 Arquitetura de Computadores

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador.

Sistemas Numéricos e a Representação Interna dos Dados no Computador

Sistemas de Numeração. Professor: Rogério R. de Vargas INFORMÁTICA 2014/2

Conceitos básicos da linguagem C

Sistemas Numéricos bit / Byte BIT BYTE. Prof. Celso Candido ADS / REDES / ENGENHARIA

3 Sistemas de Numeração:

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 13

CAPÍTULO 6 ARITMÉTICA DIGITAL

CP C U P U - Un U i n da d d a e d e Ce C n e t n ral a de d e Pr P oc o es e sam a e m n e t n o o Pr P oc o es e sad a o d r o Aula 03

Aula 01 Introdução à Informática. Prof. Bruno Gomes

Introdução à Informática

Lista de Exercícios. Vetores

Montagem e Manutenção. Luís Guilherme A. Pontes

CONCEITOS BÁSICOS DE HARDWARE. Disciplina: INFORMÁTICA 1º Semestre Prof. AFONSO MADEIRA

Organização de Computadores Hardware

Codificação 1. Introdução. C 2 R r {! + codificação

centena dezena unidade

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

1 Como seu Cérebro Funciona?

3. O NIVEL DA LINGUAGEM DE MONTAGEM

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES DISPOSITIVOS DE ENTRADA E SAÍDA. Prof. Dr. Daniel Caetano

Cadeira de Tecnologias de Informação. Ano lectivo 2007/08. Conceitos fundamentais de Hardware

Computadores XXXIII: Posições de memória A8 Texto 3

Binária. Introdução à Informática. Introdução à Informática. Introdução à Informática. Introdução à Informática. Bit. Introdução à Informática

Prof. Orlando Rocha. Qual o nosso contexto atual?

Conversão de Bases Numéricas

Breve história do computador e iniciação ao Microsoft Word

Sistemas Computacionais II Professor Frederico Sauer

Arquitetura e Organização de Computadores Introdução à Organização do Computador

Transcrição:

Aula 2 Modelo Simplificado de Computador Um computador pode ser esquematizado de maneira bastante simplificada da seguinte forma: Modelo Simplificado de Computador: Memória Dispositivo de Entrada Processador Central Dispositivo de Saida As setas representam o fluo de dados ou informações, entre os 4 elementos do MSC. Dispositivos de Entrada: Seu objetivo é obter dados que serão colocados na memória para que sejam posteriormente usados pelo processador em cálculos aritméticos ou lógicos. Eemplos de dispositivos de entrada nos computadores reais: Teclado cada caractere digitado é transferido para a memória do computador. Mouse usado para marcar ou indicar elementos na tela do computador. A cada click no mouse a sua posição é transferida para a memória. Microfone é possível, gravar arquivos com voz, ou mesmo falar no microfone quando se usa telefonia pelo computador. Scanner imagens são digitalizadas e gravadas em arquivos. Dispositivos de Saída: Seu objetivo é obter dados da memória do computador e mostrá-los ou enviá-los para outros computadores ou dispositivos. Eemplos de dispositivos de saída nos computadores reais: Impressora Vídeo Alto-falante Plotter Dispositivos de Entrada e Saída:

Alguns dispositivos são de entrada e saída ao mesmo tempo, isto é, podem ser usados para obter ou para enviar dados do eterior para o computador. Eemplos de dispositivos de entrada e saída nos computadores reais: Disquete Disco rígido CD ou DVD em alguns computadores a unidade de CD ou DVD é apenas de leitura. Linha telefônica Rede Local Linhas de comunicação (dispositivos elétricos ou ópticos para transmissão de dados, voz e imagem) Vídeos especiais onde se pode teclar com os dedos (touch screen) Pen-Drive de memória (simula um disco) Memória Onde são armazenados os dados. Internamente somente se armazenam números. Para se armazenar tetos há uma codificação em que cada caractere é representado por um número. A memória pode ser entendida como dividida em elementos denominados de palavras, cada uma associada a um endereço. 0000 0001 0002 0003 9996 9997 9998 9999 : : : : : : Bits, Bytes e Palavras Nos computadores os dados são armazenados na forma binária, isto é como zeros e uns. A memória, portanto contém uma sequencia de zeros e uns. Bit (Binary digit)é a menor unidade de armazenamento e assume os valores 0 ou 1. A memória é na verdade uma seqüência de bits. Esses bits estão divididos em grupos de 8, denominados bytes. Assim a memória é também uma seqüência de bytes. Os bytes são divididos em grupos de 1, 2, 3, 4,..., denominados de palavras. O tamanho da palavra depende do particular computador. Em geral quanto maior a palavra maior a potência e velocidade do computador, pois o computador movimenta sempre uma palavra por vez. Quando maior o seu tamanho, mais dados são movimentados ao mesmo tempo pelo computador.

Eistem computadores com palavras de 1, 2, 3, 4 ou 8 bytes de palavra, ou seja, de 8 bits, 16 bits, 24 bits, 32 bits e de 64 bits de palavra. Hoje em dia os de 8 ou 16 bits são computadores usados para propósitos específicos, ou seja, computadores usados em controle de processos (processos fabris, controle de semáforo, terminais caia, etc.). Os computadores pessoais e notebooks mais comuns possuem palavras de 32 bits ou 64 bits. Para eemplificar, suponhamos um computador de 8 bits. Em cada palavra podemos armazenar um número de 0 a 255, ou seja, em binário: 00000000 a 11111111 Um pouco de números na base 2 (binária) Lembre-se da notação decimal, isto é como um número é escrito na base 10. 1346 significa 6 + 10*4 + 3*100 + 1*1000, ou 6 + 10 1 + 3*10 2 + 1*10 3 Na base 2 é a mesma coisa: 10101100 significa 0 + 0*2 + 1*4 + 1*8 + 0*16 + 1*32 + 0*64 + 1*128 = 172 O programa também está na memória Além de armazenar os dados, o computador também armazena na memória, o que chamamos de programa, que nada mais é que uma seqüência de instruções que são entendidas pelo Processador Central. Tal seqüência é também um conjunto de números armazenados na memória. Processador Central É o que realmente realiza as operações e controla todo o fluo de dados entre os dispositivos de entrada e saída de e para a memória. Dentro do processador está a unidade lógica e aritmética que realiza as operações. Há também um contador que indica qual a próima instrução que será eecutada, para que o processador ao eecutar uma instrução saiba qual a próima, etc. É no processador que realmente está a parte mais importante e mais complea do computador, pois ele é responsável por eecutar cada uma das instruções elementares que constituem juntas um programa. Processador Central Contador de Instrução Unidade Lógica e Aritmética

Instruções, Operações ou Comandos do Modelo Simplificado de Computador Um programa de computador é dividido em instruções, operações ou comandos elementares. Vamos descrever algumas destas instruções para o nosso modelo simplificado de computador e com elas montar alguns programas. Usaremos principalmente a denominação instrução, porém são também operações ou comandos. Já vimos que a memória é dividida em palavras. Por simplificação vamos dar nomes simbólicos a essas palavras, em vez de chamá-las pelo seu endereço numérico. Por eemplo, vamos dizer palavra, y z de memória, ficando entendido que estamos nos referindo a palavras com endereços, por eemplo, 0101, 5436 e 2456. Outra simplificação que faremos é que usaremos apenas números inteiros, isto é, o nosso MSC só trabalha com números inteiros. Assim podemos armazenar 0, 12, -567, etc. em sua memória, mas não podemos armazenar 1.234, -104.23, 1.2, etc. 1. Entrada Ler um número e colocar na posição de memória. Vamos indicar essa instrução por leia. Assim: leia z lê um número e coloca na posição z de memória leia a, b, c lê 3 números colocando-os nas posições a, b e c de memória. Dizemos que a instrução de leitura é destrutiva, pois irá destruir o conteúdo anterior da posição de memória colocando o novo valor. Assim, se contem 25, e o valor lido for 32, conterá 32 após a leitura. Antes: 25 Comando: leia (vamos supor que foi digitado o valor 32) Depois: 32 2. Saida Imprimir um número que está na posição de memória. Vamos indicar esta instrução por imprima. Assim: imprima z imprime um número que está na posição z de memória imprima a, b, c, d imprima 4 números seguidos que estão respectivamente nas posições a, b, c e d de memória A instrução de saída, não é destrutiva, pois o conteúdo da posição de memória que foi impressa, permanece inalterado. Ou seja, é tirada uma cópia do valor da posição de memória para ser impresso. Se contem 25, após imprima, continuará com o valor 25. 25

antes: imprima (o valor 0025 é mostrado no vídeo) depois: 25 3. Movimento de dados de e para a memória Uma instrução bastante comum é o movimento de um valor que está numa posição de memória para outra. Vamos indicar essa instrução da seguinte forma: y movimenta ou atribui o conteúdo da posição de memória y para a posição de memória, ou simplesmente atribui y a. antes: 25 y 32 y depois: 32 y 32 i j atribui j a i antes: i 100 j - 202 i j depois: i - 202 j - 202 Um caso particular é a atribuição de um valor constante a uma posição de memória: 0 atribui 0 a z 35 atribui 35 a z Qual será o valor das posições de memória, y e z depois da seguinte seqüência de instruções? -1 z y z y Todas ficarão com 1 E após a seguinte seqüência? 0 z y y z y fica com 0, mas e z ficam com o valor anterior de y.

Agora, considere o seguinte problema: Trocar os valores das posições e y, isto é, atribuir o valor que está em para y e vice-versa. Se fizermos simplesmente: y y Antes: 100 y 200 Comando: y Depois: 200 y 200 Comando: y Depois: 200 y 200 Não adianta, pois ambos ficarão com o valor anterior de y. A solução é usar uma posição de memória auiliar, por eemplo, z: z guarda o valor original de em z y atribui y a y z atribui z a y, isto é, atribui o valor original de a y antes: 33 y 82 z?? z depois: 33 y 82 z 33 y depois: 82 y 82 z 33 y z depois: 82 y 33 z 33 4. Cálculo de epressões aritméticas O Processador Central possui internamente a Unidade Lógica e Aritmética que consegue fazer cálculos com números armazenados na memória do nosso MSC. O cálculo depois de realizado, deve ser armazenado em alguma outra posição de memória. Portanto o cálculo de uma epressão aritmética pressupõe também o movimento do resultado para uma nova posição de memória. Vamos indicar essa instrução da seguinte forma: epressão aritmética

Isto é, calcula a epressão aritmética e atribui o resultado a. A epressão aritmética pode ter em sua formação as operações elementares +, -, * e /, bem como constantes e outras posições de memória. Eemplos: y + z Soma o conteúdo da posição y com o conteúdo da posição z e coloca o resultado na posição de memória, ou simplesmente, atribui a o valor de y mais z. Antes: 33 y 82 z 21 Comando: y + z Depois: 103 y 82 z 21 y 1 Atribui a o valor de y menos 1. Antes: 33 y 82 Comando: y - 1 Depois: 81 y 82 3 * a + y Atribui a o valor de 3 vezes a mais y Antes: 33 a - 27 y 2 Comando: 3 * a + y Depois: - 79 a - 27 y 2 y * y 2 * y + 1 a (y 1) * (y + 1) / (z 1) * (z + 1) + 1 Este eemplo é interessante, pois estamos atribuindo a o seu valor anterior mais 1. Antes: 25 Comando: + 1 26

Depois: - 1 Análogo ao anterior está atribuindo a o seu valor anterior menos 1. Antes: 25 Comando: - 1 Depois: 24 + y Análogo ao anterior, estamos atribuindo a o seu valor anterior mais y. Antes: 33 y 82 Comando: + y Depois: 115 y 82 A atribuição simples do tipo: y É um caso particular da atribuição de epressões aritméticas, ou seja, y sozinho é uma epressão aritmética também. Portanto temos na verdade 3 tipos de instruções, operações ou comandos, ou seja: a) Entrada b) Saída c) Atribuição Programas elementares usando o MSC Com esses 3 tipos de instruções, vamos fazer alguns programas usando o nosso MSC. Convenções de enunciado Em primeiro lugar algumas convenções para o enunciado dos nossos problemas: 1) Quando falamos no enunciado, que são dados alguns números, tais números devem ser lidos pelo programa, isto é, deve haver um comando leia para cada um desses dados. 2) Os resultados calculados pelo programa devem ser impressos, isto é, deve haver um comando imprima para cada um desses resultados, embora não se diga eplicitamente para imprimir o resultado.

Isso posto vamos aos problemas. P1) Dados 2 números, calcular a sua soma. leia leia y z + y imprima z ou ainda leia, y z + y imprima z P2) Dados 2 números, calcular a sua soma, subtração, multiplicação e divisão. leia, y a + y imprima a b - y imprima b c * y imprima c d / y imprima d Outra forma: leia, y a + y b - y c * y d / y imprima a, b, c, d Outra forma: leia, y a + y imprima a a - y imprima a a * y imprima a a / y imprima a Neste último caso, como a posição a é usada só para armazenar o cálculo, não há problema em armazenar todos os cálculos na mesma posição desde que se imprima o resultado após cada um dos cálculos. P3) Dados 2 números calcular a média leia, y z ( + y) / 2

imprima z P4) Dados 2 triplas de números a1,b1,c1 e a2, b2 e c2, determinar e y onde a1+b1y=c1 a2+b2y=c2 Isto é, a solução do sistema de 2 equações a 2 incógnitas. Supor que eiste solução. Lembre que =(c1.b2-c2.b1)/(a1.b2-a2.b1) e y=(a1.c2-a2.c1)/(a1.b2-a2.b1). leia a1, b1, c1, a2, b2, c2 (c1*b2-c2*b1)/(a1*b2-a2*b1) y (a1*c2-a2*c1)/(a1*b2-a2*b1) imprima, y