Instituto Politécnico. Curso: Tec. Redes de Computadores. Disciplina: Organização de Computadores. Prof.: Fábio Lucena Veloso

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

Download "Instituto Politécnico. Curso: Tec. Redes de Computadores. Disciplina: Organização de Computadores. Prof.: Fábio Lucena Veloso"

Transcrição

1 Instituto Politécnico Curso: Tec. Redes de Computadores Disciplina: Organização de Computadores Prof.: Fábio Lucena Veloso Curso: Tec. Análise de Sistemas Disciplina: Organização de Computadores Prof.: Roberto Barros

2 Profs. Fábio Lucena Veloso e Roberto Barros 1 Conjunto de Instruções: Características de instruções de máquina: A operação de uma CPU é determinada pelas instruções que ela executa, conhecidas como instruções de máquina ou instruções do computador. A coleção de diferentes instruções que a CPU é capaz de executar é conhecida como conjunto de instruções da CPU. Elementos de instruções de máquina Cada instrução deve conter toda a informação necessária para que a CPU possa executála. A Figura 22, mostra os passos envolvidos na execução de instruções, definindo os elementos de instruções de máquina: Código de operação: especifica a operação a ser efetuada (por exemplo, ADD, E/S). A operação é especificada por um código binário, conhecido como código de operação. Referência a operando fonte: a operação pode envolver um ou mais operandos fonte, ou seja, operandos que constituem dados de entrada para a operação. Referência a operando de destino: a operação pode produzir um resultado. Endereço da próxima instrução: indica onde a CPU deve buscar a próxima instrução, depois que a execução da instrução corrente for completada. A próxima instrução a ser buscada pode estar localizada na memória principal ou, no caso de um sistema com memória virtual, tanto na memória principal quanto na memória secundaria (disco). Na maioria dos casos, a próxima instrução é a que segue imediatamente a instrução corrente. Nesses casos, a instrução não inclui uma referência explícita para a próxima instrução. Quando isso é necessário, a instrução deve fornecer um endereço de memória principal ou de memória virtual. Figura 22 - Diagrama de estados do ciclo de instruções.

3 Profs. Fábio Lucena Veloso e Roberto Barros 2 Os operandos fonte e de destino podem estar localizados em uma das seguintes áreas: Memória principal ou virtual: assim como na referência para a próxima instrução, deve ser fornecido um endereço, que pode ser na memória principal ou na memória virtual. Registrador da CPU: com raras exceções, a CPU contém um ou mais registradores, que podem ser referenciados pelas instruções de máquina. Se existir apenas um único registrador, a referência a ele poderá ser implícita. Se existirem vários registradores, então, cada registrador será designado por um número distinto, e a instrução deverá conter o número do registrador desejado. Dispositivo de E/S: a instrução deve especificar um módulo de E/S e um dispositivo para a operação. Se for usada a E/S mapeada na memória, essa informação consistirá apenas em um endereço na memória principal ou na memória virtual. Representação de instruções Internamente, cada instrução de um computador é representada como uma seqüência de bits. Uma instrução é dividida em campos, correspondentes aos elementos da instrução. Um exemplo simples de formato de instrução é mostrado na Figura 23. Na maioria dos conjuntos de instruções, é usado mais de um formato de instrução. Durante a execução, uma instrução é lida em um registrador de instruções (IR) da CPU. A CPU deve ser capaz de extrair os dados dos vários campos da instrução e efetuar a operação requerida. Fig. 23 É difícil para o programador lidar com representações binárias de instruções de máquina. Por isso, tornou-se prática comum usar uma representação simbólica para instruções de máquina. Os códigos de operação são representados por abreviações, chamadas mnemônicos, que indicam a operação a ser efetuada. Alguns exemplos comuns são: ADD Adição SUB Subtração MPY Multiplicação DIV Divisão LOAD Carregar dados da memória STOR Armazenar dados na memória Os operandos são também representados de maneira simbólica. Por exemplo, a instrução: ADD R,Y pode significar adicionar o valor contido na posição Y com o conteúdo do registrador R. Nesse exemplo, Y é um endereço de uma posição de memória e R indica um registrador

4 Profs. Fábio Lucena Veloso e Roberto Barros 3 particular. Note que a operação é feita sobre o conteúdo da posição de memória, e não sobre seu endereço. Portanto, é possível escrever um programa em linguagem de máquina de maneira simbólica. Cada código de operação simbólico tem uma representação binária correspondente, e o programador especifica o endereço de cada operando simbólico. Por exemplo, o programador pode começar com a seguinte lista de definições: X = 513 Y = 514 e assim por diante. Essa entrada simbólica pode ser convertida, por meio de um programa bastante simples, em códigos de operação e referências a operandos na forma binária, resultando em instruções de máquina binárias. Hoje, é muito raro programar em linguagem de máquina. A maioria dos programas é escrita em linguagem de alto nível ou, em alguns casos, em linguagem de montagem. No entanto, a linguagem de máquina simbólica permanece como uma ferramenta útil para descrever instruções de máquina, sendo usada a seguir para esse propósito. Tipos de instrução Considere uma instrução em uma linguagem de alto nível, tal como BASIC ou FORTRAN. Por exemplo: X = X + Y Esse comando instrui o computador a adicionar o valor armazenado em Y ao valor armazenado em X e colocar o resultado em X. Como isso pode ser feito usando instruções de máquina? Suponha que as variáveis X e Y correspondam às posições de memória de endereços 513 e 514. Se considerarmos um conjunto simples de instruções de máquina, esse comando pode ser implementado com três instruções: 1) Carregar um registrador com o conteúdo da posição de memória ) Adicionar o conteúdo da posição de memória 514 ao registrador. 3) Armazenar o conteúdo do registrador na posição de memória 513. Como se pode observar, uma única instrução em linguagem de alto nível pode requerer várias instruções de máquina. Isso é típico do relacionamento entre uma linguagem de alto nível e uma linguagem de máquina. Em uma linguagem de alto nível, as operações são expressas de uma maneira algébrica concisa, usando variáveis. Em uma linguagem de máquina, as operações são expressas de maneira mais básica, envolvendo a movimentação de dados de e para registradores. Tendo como base esse exemplo simples, consideramos os tipos de instruções que devem ser incluídos em um computador. Um computador deve ter um conjunto de instruções que permita ao usuário formular qualquer tarefa de processamento de dados. Outra

5 Profs. Fábio Lucena Veloso e Roberto Barros 4 maneira de determinar esse conjunto de instruções é considerar os comandos disponíveis em uma linguagem de programação de alto nível. Qualquer programa em uma linguagem de alto nível deve ser traduzido para uma linguagem de máquina, para que possa ser executado. Portanto, o conjunto de instruções de máquina deve ser suficiente para expressar qualquer comando de uma linguagem de alto nível. Com isso em mente, podemos, então, catalogar os tipos de instruções de máquina como a seguir: a) Processamento de dados: instruções aritméticas e lógicas b) Armazenamento de dados: instruções de memória c) Movimentação de dados: instruções de E/S d) Controle: instruções de teste e de desvio Instruções aritméticas fornecem a capacidade computacional para processamento de dados numéricos. Instruções lógicas (booleanas) operam sobre bits de uma palavra, como bits e não como números; oferecem, portanto, a capacidade para processar qualquer outro tipo de dado que o usuário possa desejar empregar. Essas operações são efetuadas, primariamente, em dados armazenados em registradores da CPU. Por isso, devem existir instruções de memória para mover dados entre a memória e os registradores. Instruções de E/S são necessárias para transferir programas e dados para a memória e para transferir resultados da computação de volta para o usuário. Instruções de teste são usadas para testar o valor de uma palavra de dados ou o estado de uma computação. Instruções de desvio são utilizadas para desviar a execução do programa para uma nova instrução, possivelmente dependendo do resultado de um teste. Número de endereços Uma das maneiras tradicionais de descrever uma arquitetura é em termos do número de endereços contidos em cada instrução. Esse aspecto tornou-se menos significativo com a crescente complexidade de projeto de CPU. Entretanto, é útil considerar e analisar essa distinção entre instruções com diferentes números de endereços. Qual é o número máximo de endereços necessários em uma instrução? Evidentemente, instruções aritméticas e lógicas requerem maior número de operandos. Quase todas as operações aritméticas e lógicas são unárias (um operando) ou binárias (dois operandos). Portanto, precisamos, no máximo, de dois endereços para referenciar operandos. Como o resultado da operação deve ser armazenado, isso sugere que é necessário um terceiro endereço. Finalmente, depois de concluída a execução de uma instrução, a próxima instrução deve ser buscada, sendo necessário conhecer seu endereço. Essa linha de raciocínio sugere que poderia ser necessário ter instruções com quatro endereços: dois para operandos, um para o resultado e o endereço da próxima instrução. Na prática, instruções com quatro endereços são extremamente raras. A maioria das instruções tem um, dois ou três endereços de operando, sendo implícito o endereço da próxima instrução (contido no contador de programa).

6 Profs. Fábio Lucena Veloso e Roberto Barros 5 A Figura 24 compara instruções típicas de um, dois e três endereços, que podem ser usadas para computar o comando Y = (A - B) / (C + D x E). Com instruções de três endereços, cada instrução especifica dois endereços de operandos e um endereço para o resultado. Como podemos querer não alterar o valor de qualquer posição de memória, uma área de memória temporária, T, é usada para armazenar resultados intermediários. Note que a implementação do comando requer quatro instruções e que a expressão original tem cinco operandos. Instrução Comentário Instrução Comentário SUB XA, B Y<- A B LOAD D AC<-D MP XD,E T<- D x E MPY E AC < AC x E YAD XX C T<- T + C ADD C AC<-AC+C DIV XXT Y<- Y -5- T STOR Y Y <-AC (a) Instruções com três endereços LOAD SUB A B AC ^~A AC*- AC- B DIV Y AC<-AC-Y Instrução Comentário STOR Y Y *-AC MO XA Y<- A (c) Instruções com um endereço SUB XB Y<r- Y B MO XD T<- D VE MP XE T<- T x E YAD XC T<- T 4- C D DIV XT Y<- Y + T (b) Instruções com dois endereços Figura 24 - Programas para executar o comando Y = (A - B) / (C + DxE). Formatos de instrução com três endereços não são muito comuns, porque resultam em instruções de tamanho relativamente grande, devido ao espaço necessário para manter os três endereços. No caso de instruções com dois endereços e das operações binárias, um dos endereços referencia tanto um operando quanto o resultado. Por exemplo, a instrução SUB Y, B calcula o valor Y - B e armazena o resultado em Y. O uso do formato de instrução com dois endereços reduz o tamanho das instruções, mas apresenta algumas desvantagens. Para evitar que se altere o valor de um operando, é usada uma instrução MOVE, para mover um dos operandos para a posição de resultado ou para uma posição temporária, antes de a operação ser efetuada. O número de instruções requeridas para implementar o exemplo anterior aumentaria, nesse caso, para seis instruções. Instruções de apenas um endereço são ainda mais simples. Nesse caso, um segundo endereço deve ser implícito. Esse tipo de instrução era comum nas primeiras máquinas, onde o endereço subentendido é um registrador da CPU, conhecido como acumulador (ACC). O acumulador contém um dos operandos e é usado para armazenar o resultado.

7 Profs. Fábio Lucena Veloso e Roberto Barros 6 É possível, ainda, usar um formato de instrução com zero endereço, para alguns tipos de instrução. Esse formato se aplica a uma organização de memória especial, denominada pilha. Número de endereços Representação Interpretação simbólica 3 OP A,B,C A B OP C 2 OP A,B A A OP B 1 OP A Acc Acc OP A 0 OP T (T 1) OP T Acc = acumulador T = topo da pilha A, B, C = registradores ou posições de memória A Tabela acima apresenta um resumo da interpretação de instruções com zero, um, dois ou três endereços. Em cada caso, supomos que o endereço da próxima instrução a ser executada seja implícito e que a operação requeira dois operandos como entrada e um operando como resultado. O número de endereços por instrução constitui uma decisão de projeto importante. Poucos endereços por instrução resultam em instruções de menor extensão e mais primitivas, que requerem uma CPU menos complexa. Por outro lado, o número de instruções por programa é maior, o que, em geral, resulta em maior tempo de execução e em programas mais complexos. Além disso, existe outro aspecto importante em relação ao quais instruções de um ou múltiplos endereços se contrapõem. Com instruções de um endereço, o programador geralmente tem disponível apenas um registrador de propósito geral, o acumulador. Com instruções de múltiplos endereços, é comum haver múltiplos registradores de propósito geral. Isso possibilita que algumas operações sejam efetuadas apenas sobre registradores. Como referências a registradores são mais rápidas do que referências à memória, a execução dessas instruções é mais rápida. Em razão da flexibilidade e da capacidade para usar múltiplos registradores, a maioria das máquinas modernas emprega instruções de dois ou de três endereços. As questões de projeto envolvidas na escolha do número de endereços por instrução são complicadas ainda por outros fatores. Um deles consiste em decidir se um endereço se refere a uma posição de memória ou a um registrador. Como o número de registradores é menor que o número de posições de memória, um número menor de bits é requerido para endereçar um registrador. Além disso, uma máquina pode oferecer uma variedade de modos de endereçamento, requerendo um ou mais bits para especificar o modo de endereçamento. Como resultado, a maioria dos projetos de CPUs envolve uma variedade de formatos de instrução. Projeto do conjunto de instruções. Um dos aspectos mais interessantes e mais analisados do projeto de computadores é o projeto do conjunto de instruções. O projeto do conjunto de instruções é muito complexo, pois afeta diversos aspectos do sistema. Ele define muitas das funções

8 Profs. Fábio Lucena Veloso e Roberto Barros 7 desempenhadas pela CPU e, portanto, tem efeito significativo sobre a implementação da CPU. Como o conjunto de instruções constitui o meio pelo qual o programador pode controlar a CPU, ao projetar um conjunto de instruções é preciso considerar as necessidades do programador. Você poderá se surpreender ao saber que algumas das questões mais fundamentais relativas ao projeto de conjuntos de instruções permanecem ainda em discussão. De fato, nos últimos anos, tem crescido a discordância a respeito dessas questões. Algumas das questões mais importantes são as seguintes: a) Repertório de operações: quantas e quais são as operações que devem ser fornecidas e quão complexas elas podem ser. b) Tipos de dados: quais os tipos de dados sobre os quais as operações são efetuadas. c) Formatos de instrução: qual o tamanho das instruções (em bits), o número de endereços por instrução, o tamanho dos vários campos etc. d) Registradores: qual o número de registradores da CPU que podem ser usados pelas instruções e qual o propósito de cada um. e) Endereçamento: de que modo (ou modos) o endereço de um operando pode ser especificado. Essas questões são altamente inter-relacionadas e devem ser consideradas em conjunto ao se projetar um conjunto de instruções. Tipos de operandos Instruções de máquina operam sobre dados. As classes de dados mais importantes são: 1) Endereços 2) Números 3) Caracteres 4) Dados lógicos Ao discutir os modos de endereçamento, veremos que os endereços são, de fato, uma forma de dado. Em muitos casos, é necessário efetuar cálculos sobre o valor do campo de endereço de um operando de uma instrução para determinar o endereço de memória principal ou virtual correspondente. Nesse contexto, os endereços podem ser considerados números inteiros sem sinal. Outros tipos de dados comuns são números, caracteres e dados lógicos; cada um será discutido detalhadamente adiante nesta apostila

9 Profs. Fábio Lucena Veloso e Roberto Barros 8 Representação das Instruções Podemos representar o formato padrão da instrução com um operador conforme o diagrama abaixo. Este formato não é o único utilizado nos sistemas de computação. Na realidade o conjunto de instruções é sempre constituído por uma mistura de formatos diferentes. A tendência é fazer com que os computadores operem quase sempre com uma pequena quantidade de instruções. Pode-se efetuar a análise segundo dois aspectos: 1) Quantidade de operandos. 2) Modo de interpretação (endereçamento) do valor armazenado no campo operado. Quantidade de Operandos: Instruções de máquinas são constituídas de um conjunto de beta, o qual contém um subconjunto chamado código de operação, que identifica a operação a ser realizada pelo hardware. Este código é decodificado na UC na fase de instrução, gerando os pulsos de controle para acionar as portas lógicas necessárias a execução da operação. Possui ainda um ou mais grupos de bits denominados campo(s) do(s) operando(s) que tem por função identificar e localizar o dado a ser processado. 4 operandos (não mais usada) = Possui a indicação explícita da localização de todos os operandos como também traz armazenado o endereço da próxima instrução; 3 operandos = Os campos 1 e 2 representam o endereço de cada dado utilizado em uma operação, já o campo 3 contém o endereço para armazenamento do resultado dessa operação; 2 operandos = O campo 1 recebe o resultado da operação; 1 operando = O registrador ACC (acumulador) é empregado como operando implícito guardando o valor de um operando e posteriormente o valor do resultado da operação.

10 Profs. Fábio Lucena Veloso e Roberto Barros 9 Detalhes: 4 Operandos: Cód. Op. Operando 1 Operando 2 Operando 3 End. próx. instr. Ex.: Soma -> C = A + B ADD A, B, C, P (C) <- (A) + (B), P Onde P é o endereço da próxima instrução. Vantagens: Ser uma instrução completa, pois possui todos os operandos necessários a realização de uma operação aritmética, dispensando até a instrução de desvio incondicional, pois essa já se encontra no campo P. Desvantagens: Ocupa demasiado espaço de memória, principalmente porque um grande n de instruções não necessita de três operandos. 3 Operandos: Cód. Op. Operando 1 Operando 2 Operando 3 Ex.: C = A + B ADD A, B, C (C) <- (A) + (B) Desvantagem: Ainda é muito grande, consumindo demasiado espaço de memória. 2 Operandos: Cód. Op. Operando 1 Operando 2 Ex.: ADD A, B (A) <- (A) + (B) MOV A, B (A) <- (B) Obs: Observe que o valor do 1 operando se perde após o armazenamento naquele endereço do resultado da operação. 1 Operando: Cód. Op. Operando Ex.: ADD Op ACC <- ACC + (Op) Onde Op é o operando.

11 Profs. Fábio Lucena Veloso e Roberto Barros 10 Obs: Observem que o valor do 1 operando se perde após a realização da operação, pois o resultado da operação será armazenado nesse local. Obs: Para esse tipo, foram criadas duas novas instruções com o propósito de permitir a transferência de dados entre o ACC e a MP (Memória Principal) LDA Op => ACC (Op) STA Op => (Op) ACC Modos de Endereçamento Pelo formato básico da instrução e o ciclo de execução de cada instrução podemos concluir: a) O endereçamento de uma instrução é sempre realizado através do valor do armazenamento no contador de instrução (CI). Todo o ciclo de instrução é iniciado pela transferência da instrução para o RI. b) Toda a instrução consiste em uma ordem codificada (código da operação) para a CPU executar uma operação qualquer sobre os dados. c) A localização dos dados pode estar explicitamente indicada na própria instrução (campos operando) ou implicitamente quando armazenado no acumulador (ACC). Principais modos de endereçamento Dentre os diversos modos de endereçamento atualmente empregados podemos destacar os principais: 1) Imediato: indica o valor do dado no campo operando da instituição em vez de buscálo na memória, tem como vantagem o curto tempo de execução da instrução por não gastar ciclo de memória para sua execução. O dado transferido da memória junto com a instrução por esta estar contida no campo operando da instrução. Ex.: MOV Reg. Op Reg <- valor de Op Cód. Op. Reg Operando bits Ex: JMP Op Armazena o valor de Op no Acc => Acc <- Op Cód. Op. Operando 4 8 bits

12 Profs. Fábio Lucena Veloso e Roberto Barros 11 2) Direto: o valor binário contido no campo operando da instrução indica o endereço de memória onde se localiza o dado. O endereço pode ser uma célula onde o dado está inteiramente contido ou pode indicar o endereço da célula inicial. Requer apenas uma referência a MP para buscar o dado sendo, porém mais sendo mais lento que o imediato. Ex 1.: LDA Op Acc <- (Op) ex.1 -> LDA 3B Cód. Op. Operando 4 8 bits Ex 2.: ADD Op 1, Op 2 (Op 1 ) <- (Op 1 ) + (Op 2 ) ex. 2 -> ADD 5C, 3B Cód. Op. Operando 1 Operando bits ex. 1: O ACC receberá o valor 5A 3B 5A ex. 2: Somar o conteúdo da posição de memória Op 1 (5C) de dado (103) com o conteúdo da posição de memória Op 2 (3B) de dado (5A) e armazenar o resultado na posição de memória Op 1 (5C) com valor = 15D (dado) 5C D

13 Profs. Fábio Lucena Veloso e Roberto Barros 12 3) Indireto: o valor binário do campo operando representa o endereço de uma célula, mas o conteúdo da referida célula não é o valor de um dado e sim um outro endereço de memória, cujo conteúdo é o valor do dado. Há um duplo endereçamento para o acesso do dado, em conseqüência mais ciclos de memória. O endereço intermediário é conhecido como ponteira, pois indica a localização do dado (aponta para o dado) ou Cód. Op. Operando 4 8 bits Cód. Op. Reg Operando Campo que especifica Ex. Reg 1 Ex. End o endereçamento indireto Passo 1: O operador para o operando é buscado da posição Passo 2: O operando é buscado da posição R 1 Passo 3: O operando é carregado em R 1. Obs: Existem diferentes modos de se utilizar esse endereçamento: - Cada código de operação estabelece não só o tipo de instrução como também o modo de endereçamento. - A instrução possui um campo específico para indicar o modo de endereçamento 4) Por registrador: semelhante ao direto e indireto exceto que a célula de memória referenciada na instrução é substituída por um registrador da CPU. O endereço mencionado na instrução passa a ser o de um dos registradores e não mais uma célula da MP. Tem como vantagem um menor numero de bits para endereçar os registradores. O dado passa a ser armazenado em um meio com acesso mais rápido que o acesso à memória.

14 Profs. Fábio Lucena Veloso e Roberto Barros 13 5) Indexado: o endereço do dado é a soma do valor do campo operando (fixo para um dado vetor) e de um valor armazenado neste registrador varia para o acesso a cada elemento. O índice aponta para o elemento desejado. 6) Base mais deslocamento: consiste na utilização de dois campos na instrução, um com o endereço de um registrador (chave base) e outro com um valor denominado deslocamento, porque contem um valor relativo a primeira construção. 7) Endereçamento de pilha: aqui temos instruções sem endereços, apenas códigos de operação. Isto é possível através de uma estrutura denominada pilha. Uma pilha consiste em um conjunto de posições de memória, que são manipuladas de maneira que cada leitura efetuada sobre a pilha recupere o último dado nela armazenado (topo da pilha), retirando-o da pilha. A área de memória reservada para a pilha inicia a partir de um endereço fixo na memória e, usualmente, pelo menos os dois elementos no topo da pilha são armazenados em registradores da CPU. Instruções de zero endereços referenciam os dois elementos no topo da pilha. Quadro comparativo entre os três primeiros modos de endereçamento. Modos de Endereçamento Imediato Direto Indireto Definição Vantagens Desvantagens O campo operando contém o dado O campo operando contém o endereço do dado O campo operando contém o endereço do dado Rapidez na execução da instrução Flexibilidade no acesso a variáveis de valor diferente em cada execução do programa Manuseio de vetores (quando o modo indexado não está disponível). Uso como ponteiro Limitação do tamanho do dado. Inadequado para o uso com dados de valor variável Perda de tempo, se o dado é uma constante Muitos acessos à memória principal para execução

15 Profs. Fábio Lucena Veloso e Roberto Barros 14 Representação de dados Os computadores executam instruções que realizam operações sobre valores (numéricos, alfanuméricos ou lógicos). Esses valores são conhecidos como dados. Os valores de dados normalmente são introduzidos no computador através de digitação, e são imediatamente transformados em algum código padrão, que depende do computador que está recebendo o dado e alguns caracteres podem ser armazenados nesse código padrão (dados alfanuméricos), enquanto outros podem ser armazenados em formato mais adequado para a realização de operações sobre eles (dados numéricos ou lógicos). Tipo de dado De um modo geral, as seguintes formas de dados são utilizadas nos programas atuais (formas primitivas) Tipo caractere Tipo lógico Tipo numérico Tipos primitivos de dados: Existem ainda formas mais complexas permitidas em certas linguagens modernas, mas durante a compilação estes dados são convertidos para as formas primitivas.

16 Profs. Fábio Lucena Veloso e Roberto Barros 15 Tipo caractere Os computadores só trabalham com dígitos binários, valendo 0 ou 1. Para representar os símbolos (ou caracteres) que reconhecemos a partir de 0s e 1s, deve ser utilizada uma técnica chamada de codificação, onde cada símbolo de nossa linguagem é associado biunivocamente a um grupo de bits. A codificação é a forma de representar os caracteres armazenados no computador. O tamanho desse grupo de bits é definido a partir do número de diferentes símbolos que queremos representar, uma vez que já sabemos que n bits podem representar até 2n símbolos diferentes. Desde o advento da computação foram criados vários sistemas de codificação, dentre os quais podemos destacar: a) BCD - Binary Coded Decimal (Decimal codificado em binário) - grupos de 6 bits, representando 64 caracteres (obsoleto). b) EBCDIC - Extended Binary Coded Decimal Interchange Code (Código para intercâmbio BCD estendido) - Usado em mainframes IBM. Grupos de 8 bits, permitindo 256 caracteres diferentes, mas na prática muitos códigos não são associados a nenhum caractere legível. c) ASCII - American Standard Code for Information Interchange (Código padrão americano para troca de informações) - Criado com grupos de 7 bits, e mais um para paridade, foi estendido para 8 bits, devido à necessidade de aumentar o conjunto de 128 caracteres para 256, devido à introdução de símbolos gráficos, e letras acentuadas. d) Unicode - Grupos de 16 bits, criado para suportar todos os símbolos da humanidade, como caracteres japoneses, chineses, árabes, hebraicos, etc. Comporta até 64K símbolos diferentes (mais de ). Para manter compatibilidade com a tabela ASCII atual, todos os símbolos ASCII permanecem como estão, sendo adicionados 8 bits zero após os atuais 8 bits. Tabelas ASCII e EBCDIC são encontradas em diversas publicações e programas de computador, e não são facilmente decoráveis em seu todo, mas é útil conhecer as representações de alguns símbolos nesses códigos. Os valores dos símbolos normalmente são mostrados nas tabelas em hexadecimal. Caractere ASCII EBCDIC Espaço Dígitos 0 a 9 30 a 39 F0 a F9 Letras A - Z (a - z) 41 a 5A (61 a 7A) Letras A - I (a - i) C1 a C9 (81 a 89) Letras J - R (j - r) D1 a D9 (91 a 99) Letras S - Z (s - z) E2 a E9 (A2 a A9)

17 Profs. Fábio Lucena Veloso e Roberto Barros 16 Notas: No código ASCII as letras minúsculas são obtidas adicionando-se 20 as maiúsculas, enquanto no EBCDIC as letras minúsculas são obtidas subtraindo-se 40 das maiúsculas. Em ASCII as letras são contíguas, permitindo que ao se programar, possa-se fazer letra2 = letra1 + 1, para obter a letra seguinte a uma outra, enquanto que isso não é permitido em EBCDIC. Exemplo: "J" = "I" + 1 em ASCII e "J" = "I" + 8 em EBCDIC. Com esse conjunto de caracteres pode-se representar qualquer informação, e até processá-las. Entretanto, existem outras formas de se armazenar valores matemáticos no computador, que se por um lado não são fáceis de serem interpretados pelas pessoas, são muito mais eficientes de serem processados pelos computadores. Chamamos a essas representações de representações internas. Elas também dependem da arquitetura do computador. Quando o usuário, utilizando uma linguagem de programação, introduz um programa no computador, os componentes de sua estrutura física convertem os caracteres introduzidos como um texto livre, para o código de bits usados pela máquina, em seguida traduz para o código-objeto e passa os elementos do programa para uma representação passível de ser interpretada e manipulada pelo hardware (CPU) Tipo lógico Esse tipo de dados permite armazenar apenas 2 informações distintas: Verdadeiro (True): bit um Falso (False): bit zero Como já vimos anteriormente, estas variáveis são utilizadas de diversas formas em um programa, podendo ser realizado um tipo específico de operação, empregando operações lógicas. Apesar de ser necessário apenas 1 bit para armazenar 1 valor entre 2 possíveis, as implementações nas linguagens de programação utilizam 1 ou mais bytes para armazenar um valor lógico (ou booleano). Assim, em Pascal pode-se declarar ByteBool (lógico com 1 byte) ou WordBool (lógico com 1 palavra 2 ou 4 bytes, dependendo do tamanho da palavra). Em Visual Basic, a declaração Boolean cria variáveis lógicas com 2 bytes de tamanho. Em COBOL não existe este tipo de dado, apesar de existirem expressões lógicas, como A > B e os operadores lógicos NOT, AND e OR.

18 Profs. Fábio Lucena Veloso e Roberto Barros 17 Os operadores lógicos mais comuns em linguagens de programação são: a) NOT. Operador unário. Inverte o valor lógico da variável ou expressão, devolvendo True se a variável for False, e False se a variável for True. Exemplos: NOT A; NOT (VALOR > 10) b) AND. Operador binário. A AND B devolve True se A e B forem True, e devolve False em caso contrário. c) OR. Operador Binário. A OR B devolve True se pelo menos 1 dos operandos for True, e devolve False se ambos forem False d) XOR (OU EXCLUSIVO). A XOR B devolve True se exatamente 1 dos operandos for TRUE, e False se ambos forem False ou True. Tipo numérico A ULA foi projetada para, rapidamente, executar operações com valores recebidos em forma binária. Um dos primeiros problemas ocorridos quando da representação de números nos computadores foi na indicação do sinal do número (+ ou -) Isso foi resolvido com o acréscimo de mais um bit na representação do número, esse bit adicional representa o sinal do número e é denominado sinal e magnitude. A convenção adotada de forma universal é: Valor positivo - bit de sinal igual a 0 Valor negativo - bit de sinal igual a 1 Outro problema é a forma de representação dos números fracionários, devido à dificuldade de se representar à vírgula internamente entre a posição dos dois bits. Existem dois modos de representação: Ponto fixo (vírgula fixa) consiste em adotar uma posição fixa para a vírgula Ponto flutuante (vírgula flutuante) utiliza a representação conhecida como notação científica Representação em ponto fixo Os valores fracionários também representam um problema a ser resolvido. A solução mais simples é guardar o número como se fosse inteiro, e lembrar que certo número de dígitos são fracionários para posterior apresentação ou operação. Posições mais adotadas: Na extremidade esquerda nesse caso o número seria totalmente fracionário; Na extremidade direita nesse caso o número seria inteiro

19 Profs. Fábio Lucena Veloso e Roberto Barros 18 Em nenhum dos casos a vírgula estará representada fisicamente na memória, isto é feito via programa por ocasião da definição da variável, realizada pelo programador. O sistema memoriza essa posição, mas não a representa fisicamente. Esse modo é chamado de representação em ponto fixo. Na linguagem C, os tipos definidos são: CHAR (1 byte), INT (2 bytes) e LONG INT (4 bytes). Em Visual Basic, temos os tipos BYTE, INTEGER (2 bytes) e LONG (4 bytes). Nesta linguagem existe ainda um tipo chamado DECIMAL com 14 bytes, contendo um valor inteiro e um fator de escala, indicando o número de casas decimais e podendo valer, se não tiver parte fracionária, +/ , e com partes decimais, esse mesmo valor, mas com a vírgula decimal em qualquer posição a partir do dígito 7 inicial. O menor número em valor absoluto é Temos também em VB o tipo CURRENCY (monetário) com 8 bytes de comprimento, com 4 casas decimais, permitindo uma precisão de ,5808 até ,5807. Na representação de números em ponto fixo, os valores positivos são representados pelo bit 0 de sinal. Sendo posicionado como algarismo mais representativo (à esquerda) este grupo de bits representará o valor absoluto do número (magnitude) Quanto aos números negativos o sinal é representado pelo bit 1 e a magnitude pode ser representada por um dos três modos: a)sinal e magnitude b) Complemento c) Complemento a base menos 1 Sinal e Magnitude A representação de números com n algarismos binários (n bits) em sinal e magnitude é obtida atribuindo-se 1 bit (em geral, na posição mais à esquerda) para indicar o valor do sinal, e os n-1 bits restantes para indicarem a magnitude do número. Neste tipo de representação, o valor dos bits usados para representar a magnitude (valor absoluto do número) é o mesmo, seja para números positivos ou números negativos, o que varia é o valor do bit de sinal. Esta é uma forma idêntica de representar a que usamos na vida real, com a diferença de que usamos símbolos gráficos no lugar do bit de sinal do computador.

20 Profs. Fábio Lucena Veloso e Roberto Barros 19 Exemplos de uma representação de dados em sinal e magnitude. Representação de valores em sinal e magnitude Características da representação em Sinal e magnitude Possui duas representações para o ZERO (matematicamente incorreto) o que é uma desvantagem em relação a outros métodos de representação Representação dos números é simétrica entre os números positivos e negativos, limitada à quantidade permitida de bits dos registradores internos Se os números forem fracionários, a faixa de representação é mais reduzida. Restringe-se a quantidade de algarismos da parte inteira. Limites de Representação Se os registradores que irão armazenar os valores têm capacidade para receber n algarismos, então a faixa limite de números inteiros, que pode ser armazenada nos referidos registradores é obtida pela expressão: - ( 2 n-1-1) a + ( 2 n-1-1) Se n é a quantidade limite de algarismos, então a magnitude é calculada a partir de n-1 algarismos, visto que 1 algarismo é reservado para indicar o sinal do número Do valor obtido (2n-1) subtrai-se 1 (para os valores negativos e positivos) porque o primeiro valor a ser representado é zero Ex. a) Para um registrador de 6 bits, n = 6, e os limites de representação serão: De - ( ) a + ( ) ou - ( ) a + ( ) = - 31 a + 31 b) Para um registrador de 16 bits, n = 16, teremos: De - ( ) a + ( ) ou - ( ) a + ( ) = a

21 Profs. Fábio Lucena Veloso e Roberto Barros 20 c) Para um registrador de 16 bits, porém representando um número fracionário tendo, por exemplo, 10 bits para a parte inteira, 5 bits para a parte fracionária e 1 bit para o sinal: Neste caso, n = 10 (somente a parte inteira, é claro) e os limites serão: De - ( ) a + ( ) ou - ( ) a + ( ) = a Considerações sobre representação em Sinal e Magnitude As operações com números negativos realizadas com sinal e magnitude são demoradas e difíceis porque é necessário efetuar várias comparações e decisões em vista da manipulação dos sinais das parcelas para determinar o sinal do resultado. As mesmas operações se tornam mais simples e rápidas quando realizadas através da aritmética de complemento O problema encontrado pelos fabricantes de computadores na implementação da ULA para que efetuasse operações aritméticas com valores representados em sinal e magnitude residiu, principalmente, em dois fatores: a) Custo devido à necessidade de construção de dois elementos diferentes, um para efetuar somas e outro para efetuar subtrações b) Velocidade ocasionada pela perda de tempo gasto na manipulação dos sinais, de modo a determinar o tipo de operação e o sinal do resultado Outro fator é a inconveniência da dupla representação do ZERO, o que resulta em um circuito lógico específico para evitar erros de interpretação. No sinal e magnitude, a única diferença entre um valor positivo o mesmo valor negativo é o bit de sinal, enquanto que na forma de complemento a 2, os dois valores são tais que se os somarmos obteremos 0 com um overflow de 1 bit (vai um). Overflow: Diz-se que há overflow quando a soma de dois números de n algarismos der como resultado um número com n+1 algarismos. Este fato é válido, sejam números binários ou decimais, com ou sem sinal. Nenhum sistema moderno emprega aritmética em sinal e magnitude, a qual foi substituída por aritmética em complemento a 2 (complemento a base) Algoritmo para a soma em Sinal e Magnitude 1) Se ambos os números tem o mesmo sinal, somam-se as magnitudes, o sinal de resultado é o mesmo das parcelas;

22 Profs. Fábio Lucena Veloso e Roberto Barros 21 2) Se o número tem sinais diferentes: a) Identifica-se a maior das magnitudes e registra-se o seu sinal; b) Subtrai-se a magnitude menor da maior (apenas as magnitudes); c) Sinal do resultado é igual ao sinal da maior magnitude Exemplo: Somar os números: (+13) e (+12) Mesmo sinal (bit 0). Somam-se as magnitudes e coloca-se o bit 0 no resultado Somar os números: (-17) e (-9) Mesmo sinal (bit 1). Operação idêntica à do exemplo anterior Somar os números: (+18) e (-11) Sinais diferentes. Maior número (+18), bit de sinal 0. Subtração das magnitudes; bit de sinal 0 no resultado Somar os números: (-21) e (+10) Sinais diferentes; maior magnitude (21), sinal ( ) (bit 1). Subtrai-se o menor do maior; bit 1 (sinal (-) para o resultado Algoritmo para a subtração em Sinal e Magnitude 1) Troca-se o sinal do subtraendo 2) Procede-se como no algoritmo da soma

23 Profs. Fábio Lucena Veloso e Roberto Barros 22 Exemplo: Efetuar a subtração: (-18) - (+12) (-18) - (+12) = (-18) + (-12) = Foi trocado o sinal de (+12) para (-12) e a operação passou a ser de soma; como números tem mesmo sinal (-) resultado = (-) Efetuar a subtração: (-27) - (-14) (-27) - (-14) = (-27) + (+14) = Foi trocado o sinal de (-14) para (+14) e a operação passou a ser de soma; como números tem sinais deferentes subtrai-se o menor do maior; resultado é igual ao do maior = (-) Representação de números negativos em complemento O conceito de complemento é válido para qualquer base de numeração. Há dois tipos de complemento: Complemento a base Complemento a base menos 1 Complemento a base: O termo complemento, em matemática, significa a quantidade que falta para completar um valor, torná-lo completo Em operações aritméticas, o complemento a base de um número N é o valor necessário para se obter B n, ou seja: Complemento a base de N = B n N, Onde: n = quantidade de algarismos utilizados na operação N = valor do número Na base 10: N = C10 de N = 10 5 N = = Na base 8: N = C8 de N = 8 5 N = = Na base 2: N = C2 de N = 2 5 N = =

24 Profs. Fábio Lucena Veloso e Roberto Barros 23 (Considerando-se números com cinco algarismos) Na prática: 1ª etapa: Subtrair cada algarismo do maior algarismo da base considerada 2ª etapa: Ao resultado encontrado somar 1 ao algarismo menos significativo (mais à direita) Refazendo os exemplos acima: N = C10 de N = = = N = C8 de N = = = N = C2 de N = = = Complemento a base menos 1 A definição matemática do complemento a base menos um (C b-1 ) de um número N é: C b-1 (N) = 2 n N 1 Onde: n = quantidade de algarismos do número 2 n N = C b 1 C b = complemento a base Pode-se afirmar que se trata da representação em complemento a base subtraída de 1, daí o nome complemento a base menos 1. Na prática: Obtém-se o complemento a base menos 1 de um número (C B-1 ), subtraindo-se do valor (B-1) cada algarismo do número, B-1 é o maior algarismo de uma base. Se a base for 2, pode-se obter a representação em complemento a base menos 1 através da troca do valor dos bits do número, ou seja, alterar o valor de cada bit 1 para 0 e viceversa. Complemento a base 2 A primeira etapa desse método consiste na operação de obtenção do complemento a base -1. Quando se tratar de valores na base 2 pode-se executar a primeira etapa de obtenção do complemento a 2 de um número, ao invés de substituir cada algarismo do número do maior algarismo da base (no caso 1), simplesmente deve se inverter o valor do algarismo, isto é, se for 0 passar para 1 e vice-versa.

25 Profs. Fábio Lucena Veloso e Roberto Barros 24 A segunda etapa permanece a mesma (somar 1 ao resultado) Exemplos: Quase a totalidade dos computadores modernos utiliza a aritmética de complemento a 2 (quando se trata de ponto fixo) devido a duas grandes vantagens em relação a sinal e magnitude: 1) Possui uma única representação para o ZERO; 2) Necessita de apenas um circuito para realizar as operações de soma e subtração (mais barato) Uma única representação para o ZERO acarreta uma assimetria. Há um número negativo a mais do que números positivos. Exemplo: Um computador com um registrador com capacidade para armazenar 6 bits para o registrador representará o zero da seguinte forma: o 1º zero indica o sinal do número Para calcular o complemento a 2 desse numero usando o método rápido: = O vai um para a 7ª ordem é desprezado, porque consideramos o limite de 6 bits para o registrador. O valor final é igual ao inicial, portanto uma única representação para o ZERO! Limites de representação em complemento a 2 Pode-se generalizar para qualquer quantidade de bits nos registradores com a seguinte expressão: - ( 2 n-1 ) a + ( 2 n-1-1)

26 Profs. Fábio Lucena Veloso e Roberto Barros 25 Exemplo: No caso de um registrador de 6 bits. Teremos: 26 valores representáveis = 64 números binários Utilizando a expressão teremos: de 32 a +31 (+32 não possui representação com esta quantidade de bits) Aritmética com complemento a 2 Aritmética em complemento a 2 A aritmética em complemento a 2 requer apenas um circuito para somar dois números e um circuito que realize a operação de complementação. O algoritmo básico refere-se, então, à soma dos números, considerando-se que os negativos estejam representados em complemento a 2; ele acusa também, se o resultado ultrapassar a quantidade de bits representáveis pela ULA (e registradores), que denominamos overflow. Algoritmo para soma em complemento a 2: 1) somar os dois números, bit a bit, inclusive o bit de sinal 2) desprezar o último vai 1 (para fora do número), se houver 3) se, simultaneamente, ocorrer vai 1 para o bit de sinal e para fora do número, ou se ambos não existirem, o resultado está correto. 4) Se ocorrer apenas um dos dois vai 1 (ou para o bit de sinal ou para fora do número), o resultado está incorreto. Ocorreu overflow. Exemplos: (com registradores de 5 bits) 1) Dois números positivos: N1 + N (+ 4) = (1ª parcela) + (+ 4) (2ª parcela) bit de sinal (+) note que os bits de sinal da 1ª parcela e da 2ª parcela são ambos 0 e que o bit de sinal da soma é 0, indicando que a soma é positiva.

27 Profs. Fábio Lucena Veloso e Roberto Barros 26 2) Número positivo e número negativo menor: N1 + C2 de N (-4) (lembre-se que -4 estará em sua forma de complemento 2 = 11100) (-4) bit de sinal (+) este vai 1 é desprezado neste caso, o bit de sinal da 2ª parcela é 1. Note que os bits de sinal também participam do processo de adição. De fato, um vai 1 é gerado na última posição da adição. Este vai 1 é desprezado, de modo que o resultado final da soma é que é equivalente a ) Número positivo e número negativo maior: C2 de N1 + N2-9 + (+ 4) (lembre-se que -9 estará em sua forma de complemento 2 = 10111) (+ 4) complemento 2 de 1011 = 0101 = 5 bit de sinal (-) A soma aqui tem um bit de sinal igual a 1, indicando um número negativo. Como a soma é negativa, ela está na forma de complemento a 2, de modo que os quatro últimos bits (1011) representam o complemento a 2 de 0101 (equivalente ao decimal 5). Desta forma, é o equivalente a -5, o resultado correto. 4) Dois números negativos: C2 de N1 + C2 de N2-9 + (-4) (lembre-se que -9 estará em sua forma de complemento a 2 = e que -4 estará em sua forma de complemento a 2 = 11100) complemento 2 de 0011 = 1101 = 13 bit de sinal (-) este vai 1 é desprezado

28 Profs. Fábio Lucena Veloso e Roberto Barros 27 Exemplos: (com registradores de 6 bits) 5) N1 + N2: bit de sinal (+) 6) N1 + C2 de N (-7) bit de sinal (+) este vai 1 é desprezado 7) C2 de N1 + N complemento 2 de = = 5 bit de sinal (-) 8) C2 de N1 + C2 de N (-7) (-7) complemento 2 de = = 19 bit de sinal (-) este vai 1 é desprezado

29 Profs. Fábio Lucena Veloso e Roberto Barros 28 Subtração no sistema de complemento de 2: A operação de subtração usando o sistema de complemento de 2, na verdade, envolve a operação de adição e não é, realmente, diferente dos casos vistos anteriormente. Ao se subtrair um número binário (o subtraendo) de outro número binário (o minuendo), o procedimento é o seguinte: 1) Tome o complemento 2 do subtraendo, incluindo o bit de sinal. Se o subtraendo for um número positivo, isto irá torná-lo um número negativo na forma de complemento 2. Se o subtraendo for um número negativo, isto irá torná-lo um número positivo na forma binária verdadeira. Em outras palavras, nós estamos mudando o sinal. 2) Depois de tomar o complemento 2 do subtraendo, ele é somado ao minuendo. O minuendo é mantido em sua forma original. O resultado dessa adição representa a diferença perdida. O bit de sinal dessa diferença determina se é + ou e se está na forma binária verdadeira ou na forma de complemento 2. Exemplos: (com registradores de 5 bits) 1) Vamos considerar o caso: + 4 deve ser subtraído de + 9 Minuendo = + 9 Subtraendo = + 4 complemento 2 = (+ 4) complemento 2 = vai 1 desprezado 2) + 9 (- 4) (- 4) complemento 2 de - 4 = ; complemento 2 de = ) (+ 4) (+ 4) complemento 2 = complemento 2 de 0011 = 1101 = 13 bit de sinal (-) vai 1 desprezado

30 Profs. Fábio Lucena Veloso e Roberto Barros 29 4) (- 4) (- 4) complemento 2 de - 4 = ; complemento 2 de = complemento 2 de 1011 = 0101 = 5 bit de sinal (-) Obs. Lembrar sempre: a) As operações de soma são normalmente realizadas como soma b) As operações de subtração são realizadas como soma de complemento c) Se o resultado encontrado é um valor positivo, então o valor decimal correspondente da magnitude é obtido por pura conversão de base 2 para 10 d) Se o resultado encontrado é um valor negativo, deve-se primeiro converter esse valor para representação de sinal e magnitude e, em seguida, converter a magnitude para complemento a 2 e depois converter o resultado da base 2 para 10. Finalizando põem-se o sinal negativo no resultado. Representação em ponto flutuante. Em aplicações científicas ocorrem números muito grandes (como na astronomia) ou muito pequenos (como na física atômica). Nesses casos, sempre se estará interessado na ordem de grandeza do valor, e um certo número de dígitos de precisão. Nas máquinas de calcular científicas vemos a representação de números em notação científica, onde é mostrado como E05, significando * 105. Em computação, chamamos a notação científica de representação em ponto flutuante. Um número em notação científica é representado por um produto de dois fatores: N = ± FxB ± E Onde: N = número que se deseja representar ± = sinal do número F = dígitos significativos do número (também chamada parte fracionária ou mantissa) B = base de exponenciação ± E = valor do expoente, com seu sinal (expoente pode ser positivo ou negativo)

31 Profs. Fábio Lucena Veloso e Roberto Barros 30 Exemplo: -2,3456 x A representação interna dos números de ponto flutuante varia de fabricante para fabricante, pois além de se poder representar a mantissa de números negativos na forma sinal e magnitude ou complemento a dois, o expoente também pode ter essa representação, ou, como é o caso dos mainframes IBM, ter a representação de excesso a N. No caso do IBM, um expoente 64 significa 0, enquanto o 63 significa -1 e o 67 significa 3 (excesso a 64). Também a base da exponenciação pode ser 2, 10 ou 16 (No IBM a base é 16). O importante é saber de alguns problemas que influenciam na programação com números de ponto flutuante. O resultado de operações aritméticas deve ser sempre considerado como aproximado. Com isso, nunca se deve perguntar se uma variável é igual a outra, ou igual a uma constante. Em vez disso, deve ser perguntado se a diferença entre os valores é muito pequena. Por exemplo, para saber se um número é zero, usa-se: IF ABS(NUMERO) < Para saber se um número é igual a outro pergunta-se: IF ABS (NUMERO- OUTRO)< Apesar de um número poder ser muito grande ou muito pequeno, não se deve somar números de grandeza muito diferentes, pois o menor número não causará diferença na soma, devido à pequena precisão dos dados. Exemplo: , = , uma vez que o número de dígitos significativos é maior que a precisão da variável que contém o número. Em COBOL, os números de ponto flutuante são declarados como COMP-1 (precisão simples- 4 bytes) e COMP2 (precisão dupla- 8 bytes). Na linguagem C e no Visual Basic os tipos podem ser: SINGLE (4 bytes E38 até E-45 para números negativos; E-45 até E38 para positivos) e DOUBLE (8 bytes E308 até E-324 para negativos; E-324 até E308 para positivos). Em ponto flutuante, várias configurações podem representar o mesmo valor. Por exemplo, 102E1 = 1,02E3 = 0,102E4. A representação aonde o dígito antes da vírgula é zero, e o após a vírgula é não zero é chamada de representação normalizada. Representação decimal As representações em ponto fixo e ponto flutuante são ótimas para cálculos matemáticos, em aplicações científicas. Para aplicações comerciais, como contabilidade e sistemas financeiros, precisa-se de um sistema que não tenha problemas de precisão, nem de conversão, que aparecem nas conversões de números decimais fracionários para binário (por exemplo, 0,1 na base 10 é uma dízima nas bases 2 e 16). A solução encontrada para equilibrar a necessidade de realizar eventuais operações aritméticas com valores decimais, mas representá-los internamente, sempre de forma binária, constituiu-se um método híbrido de representação de dados, denominado código binário decimal (Binary Coded Decimal BCD)

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

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação Universidade Federal de Campina Grande Departamento de Sistemas e Computação Introdução à Computação A Informação e sua Representação (Parte III) Prof.a Joseana Macêdo Fechine Régis de Araújo joseana@computacao.ufcg.edu.br

Leia mais

ULA Sinais de Controle enviados pela UC

ULA Sinais de Controle enviados pela UC Solução - Exercícios Processadores 1- Qual as funções da Unidade Aritmética e Lógica (ULA)? A ULA é o dispositivo da CPU que executa operações tais como: Adição Subtração Multiplicação Divisão Incremento

Leia mais

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Representação de grandeza com sinal O bit mais significativo representa o sinal: 0 (indica um número

Leia mais

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

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Sumário Unidade Lógica Aritmetrica Registradores Unidade Lógica Operações da ULA Unidade de Ponto Flutuante Representação

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um

Leia mais

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. 7.3.1.2 Registradores: São pequenas unidades de memória, implementadas na CPU, com as seguintes características:

Leia mais

Organização e Arquitetura de Computadores. Aula 10 Ponto Flutuante Parte I. 2002 Juliana F. Camapum Wanderley

Organização e Arquitetura de Computadores. Aula 10 Ponto Flutuante Parte I. 2002 Juliana F. Camapum Wanderley Organização e Arquitetura de Computadores Aula 10 Ponto Flutuante Parte I 2002 Juliana F. Camapum Wanderley http://www.cic.unb.br/docentes/juliana/cursos/oac OAC Ponto Flutuante Parte I - 1 Panorama Números

Leia mais

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

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária 1- Apresentação Binária Os computadores funcionam e armazenam dados mediante a utilização de chaves eletrônicas que são LIGADAS ou DESLIGADAS. Os computadores só entendem e utilizam dados existentes neste

Leia mais

2. Representação Numérica

2. Representação Numérica 2. Representação Numérica 2.1 Introdução A fim se realizarmos de maneira prática qualquer operação com números, nós precisamos representa-los em uma determinada base numérica. O que isso significa? Vamos

Leia mais

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

Aritmética Binária e. Bernardo Nunes Gonçalves Aritmética Binária e Complemento a Base Bernardo Nunes Gonçalves Sumário Soma e multiplicação binária Subtração e divisão binária Representação com sinal Sinal e magnitude Complemento a base. Adição binária

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 5 CONJUNTO DE INSTRUÇÕES Prof. Luiz Gustavo A. Martins Introdução O que é um conjunto de instruções? Coleção completa das instruções que a CPU é capaz de executar (entende).

Leia mais

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

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br Introdução INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br introdução Tópicos conceitos básicos o que é um programa um programa na memória decifrando um código referência Capítulo

Leia mais

Representação de Dados

Representação de Dados Representação de Dados Introdução Todos sabemos que existem diferentes tipos de números: fraccionários, inteiros positivos e negativos, etc. Torna-se necessária a representação destes dados em sistema

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Aritmética Computacional Slide 1 Sumário Unidade Lógica e Aritmética Representação de Números Inteiros Aritmética de Números Inteiros Representação de Números

Leia mais

Exemplo de Subtração Binária

Exemplo de Subtração Binária Exemplo de Subtração Binária Exercícios Converta para binário e efetue as seguintes operações: a) 37 10 30 10 b) 83 10 82 10 c) 63 8 34 8 d) 77 8 11 8 e) BB 16 AA 16 f) C43 16 195 16 3.5.3 Divisão binária:

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

A declaração de uma variável vel define o seu tipo. O tipo do dado define como ele será: Armazenado na memória. Manipulado pela ULA.

A declaração de uma variável vel define o seu tipo. O tipo do dado define como ele será: Armazenado na memória. Manipulado pela ULA. Representação de Dados Tipos de dados: Caracteres (letras, números n e símbolos). s Lógicos. Inteiros. Ponto flutuante: Notações decimais: BCD. A declaração de uma variável vel define o seu tipo. O tipo

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos

1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos 1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos Já estudamos anteriormente que os processadores funcionam (ou melhor, o seu hardware funciona) através de ordens simples e básicas,

Leia mais

Unidade 5: Sistemas de Representação

Unidade 5: Sistemas de Representação Arquitetura e Organização de Computadores Atualização: 9/8/ Unidade 5: Sistemas de Representação Números de Ponto Flutuante IEEE 754/8 e Caracteres ASCII Prof. Daniel Caetano Objetivo: Compreender a representação

Leia mais

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

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o funcionamento do computador Apresentar a função da memória e dos dispositivos

Leia mais

3 Sistemas de Numeração:

3 Sistemas de Numeração: 3 Sistemas de Numeração: Os computadores eletrônicos têm como base para seu funcionamento a utilização de eletricidade. Diferente de outras máquinas que a presença ou ausência de eletricidade apenas significam

Leia mais

Principais códigos utilizados. Codificação. Código binário puro. Codificação binária. Codificação Binária. Código Binário puro e suas variantes

Principais códigos utilizados. Codificação. Código binário puro. Codificação binária. Codificação Binária. Código Binário puro e suas variantes Codificação Principais códigos utilizados Computadores e Equipamentos de Comunicações Digitais trabalham com representação e códigos. A codificação binária de sinais é largamente utilizada em Sistemas

Leia mais

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

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 Ciência da Computação Sistemas de Numeração e Conversões Prof. Sergio Ribeiro Material adaptado das aulas do Prof. José Maria da UFPI Conteúdo Conversões de binário para decimal. Conversões de decimal

Leia mais

Sistemas Computacionais II Professor Frederico Sauer

Sistemas Computacionais II Professor Frederico Sauer Sistemas Computacionais II Professor Frederico Sauer Livro-texto: Introdução à Organização de Computadores 4ª edição Mário A. Monteiro Livros Técnicos e Científicos Editora. Atenção: Este material não

Leia mais

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

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

Leia mais

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

Sistemas Numéricos e a Representação Interna dos Dados no Computador Capítulo 2 Sistemas Numéricos e a Representação Interna dos Dados no Computador 2.0 Índice 2.0 Índice... 1 2.1 Sistemas Numéricos... 2 2.1.1 Sistema Binário... 2 2.1.2 Sistema Octal... 3 2.1.3 Sistema

Leia mais

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

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema. O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema. Unidade aritmética e lógica - Executa operações aritméticas (cálculos);

Leia mais

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Cálculo Numérico Aula : Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Computação Numérica - O que é Cálculo Numérico? Cálculo numérico é uma metodologia para resolver problemas matemáticos

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

Introdução. A Informação e sua Representação (Parte II) Universidade Federal de Campina Grande. Unidade Acadêmica de Sistemas e Computação

Introdução. A Informação e sua Representação (Parte II) Universidade Federal de Campina Grande. Unidade Acadêmica de Sistemas e Computação Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Introdução à Computação A Informação e sua Representação (Parte II) Prof. a Joseana Macêdo Fechine Régis de Araújo joseana@computacao.ufcg.edu.br

Leia mais

3. O NIVEL DA LINGUAGEM DE MONTAGEM

3. O NIVEL DA LINGUAGEM DE MONTAGEM 3. O NIVEL DA LINGUAGEM DE MONTAGEM Nas aulas anteriores tivemos a oportunidade de discutir dois diferentes níveis presentes na maioria dos computadores atuais. Nesta aula dedica-se a outro nível que também

Leia mais

3. Arquitetura Básica do Computador

3. Arquitetura Básica do Computador 3. Arquitetura Básica do Computador 3.1. Modelo de Von Neumann Dar-me-eis um grão de trigo pela primeira casa do tabuleiro; dois pela segunda, quatro pela terceira, oito pela quarta, e assim dobrando sucessivamente,

Leia mais

2. A influência do tamanho da palavra

2. A influência do tamanho da palavra 1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos etc.) e de controle, durante a execução de

Leia mais

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro Princípios Básicos de Arquitetura e Organização

Leia mais

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

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele

Leia mais

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

Introdução à Lógica de Programação Introdução à Lógica de Programação Sistemas Numéricos As informações inseridas em um computador são traduzidos em dados, ou seja, em sinais que podem ser manipulados pelo computador. O computador trabalha

Leia mais

BARRAMENTO DO SISTEMA

BARRAMENTO DO SISTEMA BARRAMENTO DO SISTEMA Memória Principal Processador Barramento local Memória cachê/ ponte Barramento de sistema SCSI FireWire Dispositivo gráfico Controlador de vídeo Rede Local Barramento de alta velocidade

Leia mais

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis 1. TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que

Leia mais

Deste modo, por razões tecnológicas e conceituais, os números binários e a álgebra boole-ana formam a base de operação dos computadores atuais.

Deste modo, por razões tecnológicas e conceituais, os números binários e a álgebra boole-ana formam a base de operação dos computadores atuais. 25BCapítulo 2: Números e Aritmética Binária Os computadores armazenam e manipulam a informação na forma de números. Instruções de programas, dados numéricos, caracteres alfanuméricos, são todos representados

Leia mais

13 Números Reais - Tipo float

13 Números Reais - Tipo float 13 Números Reais - Tipo float Ronaldo F. Hashimoto e Carlos H. Morimoto Até omomentonoslimitamosaouso do tipo inteiro para variáveis e expressões aritméticas. Vamos introduzir agora o tipo real. Ao final

Leia mais

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Disciplina de Lógica Computacional Aplicada. Prof. Dr.

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Disciplina de Lógica Computacional Aplicada. Prof. Dr. Índice 1. SISTEMAS NUMÉRICOS 1.1 Caracterização dos Sistemas Numéricos 1.2 Sistemas Numéricos em uma Base B Qualquer 1.2.1 Sistema de Numeração Decimal 1.2.2. Sistema de Numeração Binário 1.2.3 Sistema

Leia mais

Sistemas de numeração

Sistemas de numeração E Sistemas de numeração Aqui estão apenas números ratificados. William Shakespeare A natureza tem algum tipo de sistema de coordenadas geométrico-aritmético, porque a natureza tem todos os tipos de modelos.

Leia mais

Em um sistema de numeração de base b qualquer, um número positivo é representado pelo polinômio:

Em um sistema de numeração de base b qualquer, um número positivo é representado pelo polinômio: ELETRÔNICA DIGITAl I 1 SISTEMAS DE NUMERAÇÃO INTRODUÇÃO A base dos sistemas digitais são os circuitos de chaveamento (switching) nos quais o componente principal é o transistor que, sob o ponto de vista

Leia mais

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

Fundamentos em Informática (Sistemas de Numeração e Representação de Dados) 1 UNIVERSIDADE DO CONTESTADO / UnC CAMPUS CONCÓRDIA/SC CURSO DE SISTEMAS DE INFORMAÇÃO Fundamentos em Informática (Sistemas de Numeração e Representação de Dados) (Apostila da disciplina elaborada pelo

Leia mais

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

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann Universidade Federal de Santa Maria NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann O modelo (ou arquitetura) de von

Leia mais

Fabio Bento fbento@ifes.edu.br

Fabio Bento fbento@ifes.edu.br Fabio Bento fbento@ifes.edu.br Eletrônica Digital Sistemas de Numeração e Códigos 1. Conversões de Binário para Decimal 2. Conversões de Decimal para Binário 3. Sistema de Numeração Hexadecimal 4. Código

Leia mais

Trabalho compilado da Internet Prof. Claudio Passos. Sistemas Numéricos

Trabalho compilado da Internet Prof. Claudio Passos. Sistemas Numéricos Trabalho compilado da Internet Prof. Claudio Passos Sistemas Numéricos A Informação e sua Representação O computador, sendo um equipamento eletrônico, armazena e movimenta as informações internamente sob

Leia mais

Representação de Dados

Representação de Dados Representação de Dados Propriedades Domínio - Valores que um tipo de dado pode assumir; Gama de variação - N.º de valores que um dado pode assumir; Precisão Distância entre dois valores consecutivos Operações

Leia mais

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas

Leia mais

Organização de Computadores. Cálculos Binários e Conversão entre Bases Aritmética Binária

Organização de Computadores. Cálculos Binários e Conversão entre Bases Aritmética Binária Organização de Computadores Capítulo 4 Cálculos Binários e Conversão entre Bases Aritmética Binária Material de apoio 2 Esclarecimentos Esse material é de apoio para as aulas da disciplina e não substitui

Leia mais

CAPÍTULO 6 ARITMÉTICA DIGITAL

CAPÍTULO 6 ARITMÉTICA DIGITAL CAPÍTULO 6 ARITMÉTICA DIGITAL Introdução Números decimais Números binários positivos Adição Binária Números negativos Extensão do bit de sinal Adição e Subtração Overflow Aritmético Circuitos Aritméticos

Leia mais

SISTEMAS DE NUMERAÇÃO

SISTEMAS DE NUMERAÇÃO Atualizado em Prof. Rui Mano E mail: rmano@tpd.puc rio.br SISTEMAS DE NUMERAÇÃO Sistemas de Numer ação Posicionais Desde quando se começou a registrar informações sobre quantidades, foram criados diversos

Leia mais

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Representação da Informação Um dispositivo eletrônico, armazena e movimenta as informações internamente

Leia mais

1.1. Organização de um Sistema Computacional

1.1. Organização de um Sistema Computacional 1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO: REPRESENTAÇÃO EM PONTO FLUTUANTE. Prof. Dr. Daniel Caetano 2012-1

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO: REPRESENTAÇÃO EM PONTO FLUTUANTE. Prof. Dr. Daniel Caetano 2012-1 ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO: REPRESENTAÇÃO EM PONTO FLUTUANTE Prof. Dr. Daniel Caetano 2012-1 Objetivos Compreender o que é notação em ponto flutuante Compreender a

Leia mais

1. Sistemas de numeração

1. Sistemas de numeração 1. Sistemas de numeração Quando mencionamos sistemas de numeração estamos nos referindo à utilização de um sistema para representar uma numeração, ou seja, uma quantidade. Sistematizar algo seria organizar,

Leia mais

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM. Conceitos Básicos ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM. Conceitos Básicos ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Conceitos Básicos 1-1 BITs e BYTEs Bit = BInary digit = vale sempre 0 ou elemento básico de informação Byte = 8 bits processados em paralelo (ao mesmo tempo) Word = n bytes (depende do processador em questão)

Leia mais

Aula 2 Modelo Simplificado de Computador

Aula 2 Modelo Simplificado de Computador 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

Leia mais

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10 1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...

Leia mais

Capítulo 2. Numéricos e Códigos. 2011 Pearson Prentice Hall. Todos os direitos reservados.

Capítulo 2. Numéricos e Códigos. 2011 Pearson Prentice Hall. Todos os direitos reservados. Capítulo 2 Sistemas Numéricos e Códigos slide 1 Os temas apresentados nesse capítulo são: Conversão entre sistemas numéricos. Decimal, binário, hexadecimal. Contagem hexadecimal. Representação de números

Leia mais

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

Componentes do Computador e. aula 3. Profa. Débora Matos Componentes do Computador e modelo de Von Neumann aula 3 Profa. Débora Matos O que difere nos componentes que constituem um computador? Princípios básicos Cada computador tem um conjunto de operações e

Leia mais

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

ARQUITETURA DE COMPUTADORES. Sistemas de Numeração. 1 Arquitetura de Computadores ARQUITETURA DE COMPUTADORES Sistemas de Numeração 1 Sistemas de Numeração e Conversão de Base Sistema Decimal É o nosso sistema natural. Dígitos 0,1,2,3,4,5,6,7,8 e 9. Números superiores a 9; convencionamos

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

REPRESENTAÇÃO DE DADOS E SISTEMAS DE NUMERAÇÃO

REPRESENTAÇÃO DE DADOS E SISTEMAS DE NUMERAÇÃO REPRESENTAÇÃO DE DADOS E SISTEMAS DE NUMERAÇÃO Profs. M.Sc. Lucio M. Duarte e Ph.D. Avelino Zorzo 1 Faculdade de Informática - PUCRS 1 REPRESENTAÇÃO DE DADOS Acredita-se que a criação de números veio com

Leia mais

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

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Revisão dos conceitos básicos O processador é o componente vital do sistema de

Leia mais

Aula 6 Aritmética Computacional

Aula 6 Aritmética Computacional Aula 6 Aritmética Computacional Introdução à Computação ADS - IFBA Representação de Números Inteiros Vírgula fixa (Fixed Point) Ponto Flutuante Para todos, a quantidade de valores possíveis depende do

Leia mais

Figura 1 - O computador

Figura 1 - O computador Organização e arquitectura dum computador Índice Índice... 2 1. Introdução... 3 2. Representação da informação no computador... 4 3. Funcionamento básico dum computador... 5 4. Estrutura do processador...

Leia mais

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01 Unidade Central de Processamento (CPU) Processador Renan Manola Introdução ao Computador 2010/01 Componentes de um Computador (1) Computador Eletrônico Digital É um sistema composto por: Memória Principal

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

Memória Cache. Prof. Leonardo Barreto Campos 1

Memória Cache. Prof. Leonardo Barreto Campos 1 Memória Cache Prof. Leonardo Barreto Campos 1 Sumário Introdução; Projeto de Memórias Cache; Tamanho; Função de Mapeamento; Política de Escrita; Tamanho da Linha; Número de Memórias Cache; Bibliografia.

Leia mais

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

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador. O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador. Linguagem de Programação Uma linguagem de programação é um método padronizado para expressar

Leia mais

Sistemas de Numeração

Sistemas de Numeração Sistemas de Numeração Um numeral é um símbolo ou grupo de símbolos que representa um número em um determinado instante da evolução do homem. Tem-se que, numa determinada escrita ou época, os numerais diferenciaram-se

Leia mais

20 Caracteres - Tipo char

20 Caracteres - Tipo char 0 Caracteres - Tipo char Ronaldo F. Hashimoto e Carlos H. Morimoto Até agora vimos como o computador pode ser utilizado para processar informação que pode ser quantificada de forma numérica. No entanto,

Leia mais

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

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

Leia mais

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

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: ICO Aula N : 09 Tema: Unidade Central de

Leia mais

Sistema de Computação

Sistema de Computação Sistema de Computação Máquinas multinível Nível 0 verdadeiro hardware da máquina, executando os programas em linguagem de máquina de nível 1 (portas lógicas); Nível 1 Composto por registrados e pela ALU

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES ARQUITETURA DE COMPUTADORES Sistema de Numeração Prof Daves Martins Msc Computação de Alto Desempenho Email: daves.martins@ifsudestemg.edu.br Sistemas Numéricos Principais sistemas numéricos: Decimal 0,

Leia mais

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho 20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam

Leia mais

Informática Aplicada à Química. Sistemas de Numeração Representação de Dados

Informática Aplicada à Química. Sistemas de Numeração Representação de Dados Informática Aplicada à Química Sistemas de Numeração Representação de Dados Representando Dados Bit Byte Palavra Bit (b) Abreviação de binary digit (dígito binário). Dois valores possíveis: e 1. Nunca

Leia mais

Informática I. Aula 5. http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1

Informática I. Aula 5. http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1 Informática I Aula 5 http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

Arquitetura de Computadores. Tipos de Instruções

Arquitetura de Computadores. Tipos de Instruções Arquitetura de Computadores Tipos de Instruções Tipos de instruções Instruções de movimento de dados Operações diádicas Operações monádicas Instruções de comparação e desvio condicional Instruções de chamada

Leia mais

ARQUITETURA DE COMPUTADORES. Rogério Spindula Rosa

ARQUITETURA DE COMPUTADORES. Rogério Spindula Rosa ARQUITETURA DE COMPUTADORES 1 Rogério Spindula Rosa 2 EXECUÇÃO DE PROGRAMAS PROGRAMA 3 4 INTRODUÇÃO Hoje é raro escrever um programa diretamente em linguagem de computador em virtude da enorme dificuldade

Leia mais

Programação de Computadores

Programação de Computadores Aula 01 Introdução Departamento de Computação Universidade Federal de Ouro Preto 2011.1 1 Processamento de dados 2 Organização de Computadores 3 Sistemas de Numeração Processamento de dados Processamento

Leia mais

Organização de Computadores Hardware

Organização de Computadores Hardware Organização de Computadores Hardware Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br www.univasf.edu.br/~marcus.ramos Computador Ferramenta

Leia mais

Aula 3 - Sistemas de Numeração

Aula 3 - Sistemas de Numeração UEM Universidade Estadual de Maringá DIN - Departamento de Informática Disciplina: Fundamentos da Computação Profª Thelma Elita Colanzi Lopes thelma@din.uem.br Aula 3 - Sistemas de Numeração O ser humano,

Leia mais

LÓGICA DE PROGRAMAÇÃO

LÓGICA DE PROGRAMAÇÃO Todos direitos reservados. Proibida a reprodução, mesmo parcial, por qualquer processo mecânico, eletrônico, reprográfico, etc., sem a autorização, por escrito, do(s) autor(es) e da editora. LÓGICA DE

Leia mais

Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução. (procedimentos e funções)

Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução. (procedimentos e funções) Aulas anteriores... Formulação adequada do problema Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução Definição do algoritmo Método de decomposição hierárquica utilizando

Leia mais

Introdução à Programação

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

Leia mais

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem: 1 As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia e não têm a intenção de substituir o livro-texto, nem qualquer outra bibliografia. Introdução O Cálculo Numérico

Leia mais

VIII. VARIÁVEIS. Tabela I ARQUITETURA DA MEMÓRIA. 0x0000 0x34 0x0001 0xB0 0x0002 0x23. 0xFFFF 0x00

VIII. VARIÁVEIS. Tabela I ARQUITETURA DA MEMÓRIA. 0x0000 0x34 0x0001 0xB0 0x0002 0x23. 0xFFFF 0x00 Fundamentos da Programação 32 A. Conceito Variáveis contém dados: VIII. VARIÁVEIS de entrada que o computador precisa manipular; de saída que o computador precisa imprimir; e temporários, utilizados de

Leia mais

Projeto e Desenvolvimento de Algoritmos

Projeto e Desenvolvimento de Algoritmos Projeto e Desenvolvimento de Algoritmos Variáveis Adriano Cruz e Jonas Knopman Índice Objetivos Introdução Modelo de Memória Armazenamento de Dados Numéricos Dados Inteiros Dados Reais Armazenamento de

Leia mais

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

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 06: Ponteiros Declarando e utilizando ponteiros Ponteiros e vetores Inicializando ponteiros Ponteiros para Ponteiros Cuidados a serem

Leia mais

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 5 - O NÍVEL DA LINGUAGEM DE MONTAGEM 1. INTRODUÇÃO É relativamente fácil compreender os fundamentos da programação de computadores, sob o ponto de vista da inteligibilidade dos comandos de alto

Leia mais

Capítulo SETE Números em Ponto Fixo e Ponto Flutuante

Capítulo SETE Números em Ponto Fixo e Ponto Flutuante Capítulo SETE Números em Ponto Fixo e Ponto Flutuante 7.1 Números em ponto fixo Observação inicial: os termos ponto fixo e ponto flutuante são traduções diretas dos termos ingleses fixed point e floating

Leia mais

Organização Básica do Computador

Organização Básica do Computador Organização Básica do Computador Modelo de Von Neumann MEMÓRIA ENTRADA ARITMÉTICA LÓGICA SAÍDA CONTROLE Modelo de Von Neumann Introduziu o conceito do computador controlado por programa armazenado. Todo

Leia mais

A FÓRMULA DE CONVERSÃO ENTRE AS UNIDADES É: F = 1.8 C + 32.0

A FÓRMULA DE CONVERSÃO ENTRE AS UNIDADES É: F = 1.8 C + 32.0 UTILIZANDO NOSSA MÁQUINA HIPOTÉTICA VAMOS CONSTRUIR UM PROGRAMA PARA CONVERTER VALORES DE UMA UNIDADE PARA OUTRA. O NOSSO PROGRAMA RECEBE UM VALOR NUMÉRICO QUE CORRESPONDE A UMA TEMPERATURA EM GRAUS CELSIUS

Leia mais

2. Sistemas de Numeração, Operações e Códigos. 2. Sistemas de Numeração, Operações e Códigos 1. Números Decimais. Objetivos.

2. Sistemas de Numeração, Operações e Códigos. 2. Sistemas de Numeração, Operações e Códigos 1. Números Decimais. Objetivos. Objetivos 2. Sistemas de Numeração, Operações e Códigos Revisar o sistema de numeração decimal Contar no sistema de numeração binário Converter de decimal para binário e vice-versa Aplicar operações aritméticas

Leia mais

Circuitos Digitais Cap. 5

Circuitos Digitais Cap. 5 Circuitos Digitais Cap. 5 Prof. José Maria P. de Menezes Jr. Objetivos Aritmética Digital Adição Binária Subtração Binária Representação de números com sinal Complemento de 2 Negação Subtração como soma

Leia mais