·

Engenharia de Energia ·

Outros

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta

Texto de pré-visualização

CAPÍTULO 6 1 ARITMÉTICA DIGITAL OPERAÇÕES E CIRCUITOS 2 Adição binária São apenas quatro casos que podem ocorrer na soma de dois bits em qualquer posição Esses são os casos 0 0 0 1 0 1 1 1 10 0 carry de 1 para próxima posição 1 1 1 11 1 carry de 1 para próxima posição 61 ADIÇÃO E SUBTRAÇÃO BINÁRIAS A adição é a operação aritmética básica utilizada pelos dispositivos digitais tanto para subtração como multiplicação e divisão Os números binários são somados como os decimais Carry da posição anterior 3 Overflow na soma binária 3 Exercício Extra Use 5 bits Sistema de numeração binária b Some 15 com 17 1510 011112 sistema binário puro 1710 100012 sistema binário puro 1 1 1 1 15 0 1 1 1 1 17 1 0 0 0 1 1 0 0 0 0 0 carry out carry para fora Quando o carry out for 1 significa que ocorreu overflow ou seja o resultado da soma binária de 5 bits está incorreto Para verificar se ocorreu overflow na soma binária basta analisar o bit de carry out Cy Efetue as seguintes somas 10110 00111 1000111100000001 4 A subtração binária é efetuada exatamente como a subtração de números decimais São quatro as possíveis situações ao se subtrair um bit de outro em qualquer posição de um número binário 5 Subtração binária 62 REPRESENTAÇÃO DE NÚMEROS COM SINAL Um registrador de seis bits pode armazenar números binários na faixa de 000000 a 111111 de 0 a 6310 Isso representa a magnitude do número ou seja número sem sinal Para representar um número com o sinal ou devese acrescentar mais a esquerda do número um outro bit denominado bit de sinal A convenção adotada foi Um 0 no bit de sinal indica um número positivo Um 1 no bit de sinal indica um número negativo 6 010001 111011 Bit de sinal Bit de sinal positivo negativo 7 Representação de números com sinal no Sistema sinalmagnitude Os números mostrados na Fig 61 são constituídos de um bit de sinal e seis bits de magnitude Os bits de magnitude correspondem ao equivalente binário direto do valor decimal representado tanto a representação positiva como a negativa Essa representação é denominada sistema sinalmagnitude para números binários com sinal A faixa de valores que pode ser representada no sistema sinalmagnitude é 2N 1 a 2N 1 onde N é o número de bits na magnitude Existe um total de 2N1 diferentes valores incluindo duas representações de zero Fig 61 magnitude correspondem ao equivalente binário direto magnitude correspondem ao equivalente binário direto Número negativo Número positivo 8 Exemplo Sistema sinal magnitude N 2 bits na magnitude 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 0 1 0 1 1 1 1 0 2 1 1 1 3 Faixa de valores que pode ser representada no sistema sinalmagnitude 2N 1 a 2N 1 22 1 3 a 22 1 3 Total de valores diferentes 2N1 221 8 diferentes valores 9 Forma de complemento de 1 1 0 1 0 número binário inverte cada bit para obter o complemento de 1 0 1 0 1 complemento de 1 complementa cada bit de 1010 Forma de complemento de 2 1 0 1 0 número binário inverte cada bit para obter o complemento de 1 0 1 0 1 complemento de 1 de 1010 0 0 0 1 soma 1 para obter o complemento de 2 0 1 1 0 complemento de 2 de 1010 Sistema de complemento de 2 O sistema mais usado para representar números binários com sinal é o sistema de complemento de 2 Antes de saber como ele é temos que determinar o complemento de 1 e de 2 de um número binário 10 O sistema de complemento de 2 funciona da seguinte forma Se o número for positivo a magnitude é representada na forma binária direta e um bit de sinal 0 é colocado mais a esquerda bit MSB formando um total de n bits incluindo o bit de sinal Se o número for negativo a magnitude é representada na forma de complemento de 2 Para determinar o número negativo devese primeiro obter a representação positiva do número e depois calcular o complemento de 2 Ex 0111 710 número com sinal 4 bits incluindo o bit de sinal 1000 inverte cada bit 0001 soma 1 1001 representação de 710 em complemento de 2 Representação de números com sinal no sistema de complemento de 2 Ex Represente o 710 no sistema de comp de 2 Use 4 bits incluindo o bit de sinal 1112 710 número sem sinal 0111 710 número com sinal representado no sistema de complemento de 2 11 Número positivo 01111 15 magnitude corresponde ao equivalente binário direto Número negativo 10001 15 a magnitude é representada na forma de complemento de 2 01111 1510 n5 bits incluindo o bit de sinal 10000 inverte cada bit 00001 soma 1 10001 representação de 1510 em complemento de 2 Exemplo Representação do número 15 com sinal usando complemento de 2 Determinando o negativo de 01111 no sistema de complemento de 2 Use 5 bits incluindo o bit de sinal Extensão de sinal Os registradores são de 4 8 12 16 32 ou 64 bits Se precisarmos armazenar um número positivo de cinco bits em um registrador de 8 bits simplesmente acrescentamos zeros à frente O MSB bit de sinal ainda é 0 indicando um valor positivo 0 1001 valor do 9 0000 1001 Zeros acrescentados para obter 8 bits bit de sinal Se precisarmos armazenar um número negativo de cinco bits em um registrador de 8 bits simplesmente acrescentamos 1s à frente 0 0111 7 1 1001 7 complemento de 2 do 7 1111 1001 Uns 1 s acrescentados para obter 8 bits bit de sinal 12 11082022 Profa Dra Karina Rocha G da Silva Universidade Federal de Goiás 13 Converta para complemento de 2 101100 110001 111001 13 Negação Negação é a operação de conversão de um número positivo em seu equivalente negativo ou de um número negativo em seu equivalente positivo Quando os números binários com sinal estão representados no sistema de complemento de 2 a negação é obtida pela operação do complemento de 2 0000 1001 9 Faz o complemento de 2 negação 1111 0111 9 Faz a negação novamente 0000 1001 9 A operação de negação altera o número para seu equivalente oposto 14 15 Caso especial na representação de complemento de 2 Sempre que um número com sinal tiver 1 no bit de sinal e todos os bits de magnitude forem 0 seu equivalente decimal será 2N em que N é o número de bits na magnitude 1000 23 8 10000 24 16 equivalente decimal 2N 100000 25 32 A faixa de valores que pode ser representada no sistema de complemento de 2 é 2N a 2N 1 onde N é o número de bits na magnitude Existe um total de 2N1 diferentes valores incluindo uma representação de zero 5 zeros 16 Exemplo Sistema de complemento de 2 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 3 1 1 0 2 1 1 1 1 Faixa de valores 2N a 2N 1 22 4 a 22 1 3 Total de valores diferentes 2N1 221 8 diferentes valores corresponde ao equivalente binário direto corresponde a forma de complemento de 2 do seu equivalente positivo Use 3 bits incluindo o bit de sinal N 2 bits na magnitude 17 63 ADIÇÃO NO SISTEMA DE COMPLEMENTO DE 2 Executase a soma binária normal nos bits de magnitude Os bits de sinal são somados com os bits de magnitude Se a soma dos bits de sinal resultar em um bit de carry 1 ele é desconsiderado Caso o resultado seja positivo o número estará no formato de binário puro direto Se o resultado for negativo o número estará na forma de complemento de 2 Problema 69 18 Problema 69 b Some 14 com 17 Use 8 bits incluindo o bit de sinal Sistema de complemento de 2 1410 1110 sistema binário puro 1410 0000 1110 sistema de comp 2 1710 1 0001 sistema binário puro 1710 0001 0001 sistema de comp 2 faz a negação para obter 1710 1710 1110 1111 1 1 1 14 0 0 0 0 1 1 1 0 17 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 número negativo portanto está forma de complemento de 2 despreza o último carry Quando o resultado for um número negativo para determinar o seu equivalente decimal negativo deve fazer a operação de negação 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 Negação 0 0 0 0 0 0 1 1 3 portanto 1 1 1 1 1 1 0 1 310 19 d Some 48 com 80 Use 8 bits incluindo o bit de sinal Sistema de complemento de 2 4810 11 0000 sistema binário puro 4810 0011 0000 sistema de comp 2 faz a negação para obter 4810 4810 1101 0000 8010 101 0000 sistema binário puro 8010 0101 0000 sistema de comp 2 faz a negação para obter 8010 8010 1011 0000 1 1 1 48 1 1 0 1 0 0 0 0 80 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 27 128 caso especial despreza o último carry Problema 69 64 SUBTRAÇÃO NO SISTEMA DE COMPLEMENTO DE 2 A subtração utilizando o sistema de complemento de 2 envolve na verdade a operação de adição Realizase a operação de negação do subtraendo Adicionase o número obtido ao minuendo A resposta representará a diferença entre ambos 20 Problema 69 B A X B A X Para obter B acha o complemento de 2 de B ou seja faz a negação de B 21 e Subtraia 16 de 17 Use 8 bits incluindo o bit de sinal Sistema de complemento de 2 1710 1 0001 sistema binário puro 1710 0001 0001 sistema de comp 2 1610 1 0000 sistema binário puro 1610 0001 0000 sistema de comp 2 faz negação para obter 1610 1610 1111 0000 1 1 1 17 0 0 0 1 0 0 0 1 16 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 número positivo portanto está na forma binária direta Quando o resultado for um número positivo basta fazer a conversão de binário para decimal 0 0 0 0 0 0 0 1 1 Problema 69 17 17 16 16 despreza o último carry 22 h Subtraia 36 de 15 Use 8 bits incluindo o bit de sinal Sistema de complemento de 2 1510 11112 sistema binário puro 1510 0000 1111 sistema de comp 2 faz negação para obter 1510 1510 1111 0001 3610 10 01002 sistema binário puro 3610 0010 0100 sistema de comp 2 111 15 1 1 1 1 0 0 0 1 36 0 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 1 21 despreza o último carry Problema 69 15 36 15 36 23 Overflow aritmético A condição de overflow pode ocorre apenas quando dois números positivos ou dois números negativos são somados Quando somamos dois números de mesmo sinal pode produzir um resultado incorreto porque a resposta pode requerer mais bits e portanto ocorre um overflow transbordamento na posição do bit de sinal Método para detectar overflow Analise os bits de sinal dos dois números somados das parcelas Analise o bit de sinal do resultado Um overflow pode ocorre sempre que os números que estão sendo somados são ambos positivos bit de sinal 0 e o resultado é negativo bit de sinal 1 ou quando os números somados são ambos negativos bit de sinal 1 e o resultado é positivo bit de sinal 0 Problema 910 24 a Some 37 com 95 Use 8 bits incluindo o bit de sinal Sistema de complemento de 2 3710 10 0101 sistema binário puro 3710 0010 0101 sistema de comp 2 9510 101 1111 sistema binário puro 9510 0101 1111 sistema de comp 2 1 1 1 1 1 1 1 37 0 0 1 0 0 1 0 1 95 0 1 0 1 1 1 1 1 1 0 0 0 0 1 0 0 ocorreu overflow porque a soma de dois números positivos gerou um número negativo Problema 610 37 95 37 95 25 b Subtraia 37 de 95 Use 8 bits incluindo o bit de sinal Sistema de complemento de 2 1 1 95 1 0 1 0 0 0 0 1 37 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 0 0 despreza ocorreu overflow porque a soma de dois números o último carry negativos gerou um número positivo Problema 610 95 37 95 37 3710 10 0101 sistema binário puro 3710 0010 0101 sistema de comp 2 faz negação para obter 3710 3710 1101 1011 9510 101 1111 sistema binário puro 9510 0101 1111 sistema de comp 2 faz negação para obter 9510 9510 1010 0001 95 37 67 ADIÇÃO BCD Usando a adição binária comum some os códigos BCD para cada dígito Para aquelas posições em que a soma for menor ou igual a 9 nenhuma correção é necessária A soma estará no formato BCD adequado Quando a soma de dois dígitos for maior que 9 o fator de correção 0110 deverá ser somado ao resultado para obter uma resposta BCD válida 26 27 11 1111 carry 0000 0111 0011 1000 0000 0110 0100 1000 0000 1101 1000 0000 Correção 1 1 0000 1101 1000 0000 0000 0110 0000 0110 Correção 0001 0011 1000 0110 Exemplo 0738 0648 1386 decimal BCD 28 11 carry 0011 1000 0101 0001 0001 1000 0100 1001 1101 Correção 1 1 1 carry 0 1 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 Correção 0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 Correção 0 1 0 1 0 0 0 0 0 0 1 1 3 8 5 1 1 8 5 0 3 decimal BCD Problema 613 d 29 68 ARITMÉTICA HEXADECIMAL Adição hexadecimal pag 266 Somamse os dígitos hexa em decimal Se a soma for menor ou igual a 15 o resultado dela pode ser expresso como um dígito hexa Se a soma for maior ou igual a 16 subtraia 16 e transporte um carry 1 para a posição do próximo dígito A 6 5 6 F C 1 B 8 2 8 E 0 8 8 16 16 1 0 carry carry Exemplo 1 Exemplo 2 30 1 1 0 F F 0 F F 1 F E F 15 F 15 30 16 1 1 4 decimal 1 E hexa carry 1 1 F 15 F 15 31 16 1 1 5 decimal 1 F hexa carry Exemplo 3 31 Subtração hexadecimal pag 267 Usase o mesmo método utilizado para os números binários que é Determine o complemento de 2 do subtraendo em hexa Some o minuendo com o complemento de 2 do subtraendo Qualquer carry na posição MSD deve ser desprezado 32 Procedimento 1 5 1 F número hexa 0101 0001 1111 converta em binário 1010 1110 0000 complemento de 1 0000 0000 0001 some 1 ao LSB 1010 1110 0001 complemento de 2 A E 1 converta novamente em hexa Como obter o complemento de 2 de um número hexadecimal Procedimento 2 Subtraia cada dígito hexa de F em seguida some 1 ao LSD dígito menos significativo F F F 5 1 F subtrai cada dígito do número de F A E 0 complemento de 1 0 0 1 some 1 ao LSD A E 1 complemento de 2 de 51F Determine o complemento de 2 de 51F16 3 F A 2 B 7 Devemos determinar o complemento de 2 do subtraendo primeiro Exemplo 33 Usando o procedimento 2 F F F 2 B 7 subtrai cada dígito do número de F D 4 8 complemento de 1 0 0 1 some 1 ao LSD para obter o complemento de 2 D 4 9 complemento de 2 de 2B7 Subtraia 2B716 de 3FA16 faça em hexadecimal 34 A 10 9 9 1 3 19 16 1 3 carry 1 1 F 15 4 4 1 4 20 16 1 4 carry 1 1 3 3 D 13 1 1 17 16 1 1 Como obter 1 4 3 hexa 3ª 2ª 1ª Depois some o minuendo ao complemento de 2 do subtraendo 3ª 2ª 1ª 1 1 3 F A D 4 9 1 1 4 3 hexa Despreza esse carry 69 Circuitos Aritméticos Uma unidade lógica e aritmética ULA recebe os dados armazenados na memória e executa operações aritméticas e lógicas com instruções provenientes da unidade de controle 35 Unidade lógica e aritmética Figura 64 Blocos funcionais de uma ULA Registrador A 36 A unidade de controle é instruída a adicionar um número que está na memória a um armazenado no registrador acumulador registrador A O número é transferido da memória para o registrador B O número no registrador B e o número do registrador acumulador são somados no circuito lógico e o resultado é transferido para o acumulador para depois ser transferido para outro destino Registrador A 610 Somador Binário Paralelo Computadores e calculadoras realizam operações de adição sobre dois números de cada vez sendo que cada número binário pode ter vários dígitos binários 37 Figura 65 Processo típico de uma adição binária Carry Em cada passo desse processo de adição realizamos a adição de três bits o bit da 1ª parcela o da 2ª parcela e o carry proveniente da posição anterior O resultado da adição desses três bits produz dois bits um da soma e um de carry a ser somado aos bits da próxima posição Assim se projetarmos um circuito lógico que possa duplicar esse processo então tudo o que teremos a fazer é usar o mesmo circuito para cada posição de bit Esse circuito lógico é denominado somador completo full adder FA Carry 38 Figura 66 Diagrama em blocos de um circuito somador paralelo de cinco bits utilizando somadores completos full adder FA 1ª parcela 2ª parcela Carry posição anterior soma carry Somador completo é usado para cada posição de bit 39 611 Projeto de um Somador Completo Construindo uma tabelaverdade com Três entradas A B e CIN Duas saídas S e COUT Carry in Carry out IN IN IN IN ABC ABC ABC ABC S IN IN IN IN OUT ABC ABC ABC ABC C B A Soma Tabelaverdade 40 IN IN IN IN ABC ABC ABC ABC S IN IN IN IN BC A BC BC A BC S IN IN C A B C A B S X A AX AX S CIN B X IN IN C B A C B A S Fazendo IN IN IN IN OUT ABC ABC ABC ABC C IN IN IN IN IN IN OUT ABC ABC ABC ABC ABC ABC C IN IN IN IN OUT C AB C B B AC A A BC C AB AC BC C IN IN OUT Método algébrico para simplificar repete repete 41 O circuito completo com as entradas A B e CIN e as saídas S e COUT representa o somador completo FA AB AC BC C IN IN OUT CIN B A S 42 IN IN IN IN OUT ABC ABC ABC ABC C IN IN IN OUT C AB C AB AB C C CIN B A S Ou A B Cin S Cout CIN B A S AB B A C C IN OUT AB B A C C IN OUT 1 B A AB CIN 43 Meio somador Um FA somador completo opera com três entradas para gerar uma soma e carry como saídas Em alguns casos é necessário um circuito que some apenas dois bits de entrada para gerar uma soma e um carry como saídas Um exemplo seria a adição dos bits LSB de dois números binários nos quais não há carry de entrada Um circuito lógico pode ser projetado para receber dois bits de entrada A e B e gerar duas saídas uma soma S e um carry COUT Esse circuito é denominado meio somador half adder HA A B S COUT 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 Problema 619 B A AB AB S AB COUT Solução B A Cout S Meio Somador