Buscar

CL-Cap6

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 68 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 68 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 68 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

CAPÍTULO 6
1
ARITMÉTICA DIGITAL:
OPERAÇÕES E CIRCUITOS
Livro: Sistemas Digitais – princípios e aplicações – 11ª Ed.
Ronald J. Tocci/ Neal S. Widmer/Gregory L. Moss
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 
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 
Números sem sinal
6.1- ADIÇÃO E SUBTRAÇÃO BINÁRIAS
3
Carry out na soma binária 
3
Exercício : Use 5 bits. Sistema de numeração binária 
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
Cy (carry out  carry para fora) 
Quando o carry out for 1 significa que o resultado não cabe na representação de 5
bits, portanto ocorreu um transbordamento.
Quando é somado dois números no sistema de numeração binária (direta), o resultado
pode ser incorreto, porque a resposta pode requerer mais bits, portanto ocorre um
transbordamento e dessa forma o carry out (Cy) vai a 1.
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.
4
Subtração binária 
Números sem sinal
5
Faixa de valores → 010 a (2
n – 1)10 , em um total de 2
n valores diferentes
n = número de bits
No sistema binário puro, usando n bits, podemos representar números decimais na
faixa de 010 a (2
n – 1)10 , em um total de 2
n valores diferentes. Números sem sinal
não há bit de sinal, assim, os n bits são usados para representar a magnitude.
Números sem sinal
Ex.:- n = 3 bits,
Faixa de valores → 010 a (2
3 – 1) = 710 ou 0002 a 1112
Existem 23 = 8 valores diferentes
Faixa de valores no sistema binário puro
Um registrador de seis bits pode armazenar números binários puros na faixa de
000000 a 111111 (de 010 a 6310). Isso representa a magnitude do número, ou seja,
número sem sinal.
6
010001 111011
↗
Bit de sinal 
↖
Bit de sinal 
número positivo número negativo
6.2- REPRESENTAÇÃO DE NÚMEROS COM SINAL 
Para representar um número com o sinal (+ ou -) deve-se acrescentar mais a
esquerda do número um outro bit denominado bit de sinal. A convenção adotada
é:
Um 0 no bit de sinal indica um número positivo.
Um 1 no bit de sinal indica um número negativo.
7
Representação de números com sinal no Sistema sinal-magnitude
Os números mostrados na Figura são constituídos de um bit de sinal e quatro bits de
magnitude. Os bits de magnitude correspondem ao equivalente binário direto do
valor decimal representado, tanto na representação positiva como na negativa.
Essa representação é denominada sistema sinal-magnitude para números binários
com sinal.
magnitude correspondem ao 
equivalente binário direto = 510
magnitude correspondem 
ao equivalente binário 
direto = 510
Número negativo
Número positivo
5 bits
bit de sinal (-) 
5 bits sendo que 1 para sinal e 4 para magnitude
= +510
= -510
0 0 1 0 1
1 0 1 0 1
bit de sinal (+) 
8
Faixa de valores no sistema sinal-magnitude
- (2N - 1) a + (2N - 1) , onde N é o número de bits de magnitude.
Existe um total de 2N+1 valores diferentes, incluindo duas representações de zero. 
Ex.:- N = 3 bits de magnitude
Faixa de valores → - (23 - 1)= -7 a + (23 - 1) = +7
Existem 2N+1  23+1 = 24 = 16 valores diferentes, incluindo duas representações de
zero.
A faixa de valores que pode que ser representada no sistema sinal-magnitude com N
bits de magnitude é:
Números com sinal
9
Exemplo: Sistema sinal magnitude 
N = 2 bits da 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
Onde N é o número de bits da magnitude.
N = 2  - (22 – 1) = -3 a + (22 - 1) = + 3 
Total de valores diferentes: 2N+1 → 22+1 = 8 valores diferentes, com duas representações
de zero.
- (2N - 1) a + (2N - 1) 
3 bits  sendo que 1 para sinal e 2 para magnitude
Os bits de magnitude correspondem ao
equivalente binário direto do valor decimal
representado, tanto na representação
positiva como na negativa.
10
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.
11
Sistema de Complemento de 2 :
Representação de números com sinal no Sistema de Complemento de 2 
Os números são constituídos de um bit de sinal e bits de magnitude, formando
um total de n bits incluindo o bit de sinal.
Número positivo
5 bits
= +5100 0 1 0 1
bit de sinal (+) 
Número negativo
bit de sinal (-) 
5 bits sendo que 1 para sinal e 4 para magnitude
= -5101 1 0 1 1
magnitude do número
binário está na forma de
complemento de 2.
a magnitude do número binário
está na forma binária direta
12
Para determinar o número negativo deve-se 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 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)

13
Número positivo  01111  +15
(corresponde ao equivalente binário direto)
Número negativo  10001  -15
(representado na forma de complemento de 2)
01111 = +1510 (n=5 bits incluindo o bit de sinal)
↓↓↓↓↓
10000 (inverte cada bit)
+ 00001 (soma 1)
10001 (representação de -1510 no sistema de complemento de 2)
Exemplo: 
Representação de números com sinal usando complemento de 2
Determinando o negativo de 01111 (+15) no sistema de complemento de 2. 
Use 5 bits incluindo o bit de sinal
número sem sinal  11112  1510
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  bit mais a
esquerda) ainda é 0, indicando um valor positivo.
01001 (valor do +9)
00001001 Zeros acrescentados para obter 8 bits
bit de sinal bits de magnitude
Se precisarmos armazenar um número negativo de cinco bits em um registrador de 8
bits, simplesmente acrescentamos 1s à frente. O MSB (bit de sinal  bit mais a
esquerda) ainda é 1, indicando um valor negativo.
00111 +7
11001 - 7 complemento de 2 do +7
11111001 Uns (1 s) acrescentados para obter 8 bits
bit de sinal bits de magnitude
14
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.
00001001 +9
Faz o complemento de 2 (negação) 11110111 -9
Faz a negação novamente 00001001 +9
A operação de negação altera o número para seu equivalente oposto.
15
16
1000 = -23 = - 8
10000 = -24 = - 16 equivalentedecimal -2N
100000 = -25 = - 32
5 zeros
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 (zeros) na magnitude.
1000  - 810 
↓↓↓↓
0111 (inverte cada bit)
+ 0001 (soma 1)
1000  volta para o - 810
***
Para determinar o equivalente decimal  -2N
17
Faixa de valores no sistema de complemento de 2
- 2N a + (2N - 1) , onde N é o número de bits da magnitude.
Existe um total de 2N+1 valores diferentes, incluindo o zero. 
Ex.:- N = 3 bits de magnitude
Faixa de valores → - 23 = -8 a + (23 - 1) = +7
Existem 2N+1  23+1 = 16 valores diferentes, incluindo uma representação de zero.
A faixa de valores que pode ser representada no sistema de complemento de 2
com N bits de magnitude é:
Números com sinal
n = 4 bits  sendo que 1 para sinal e 3 para magnitude
18
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
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
Caso especial - 2N
Faixa de valores que pode ser representada no sistema de complemento de 2:
- 2N a + (2N – 1)
Existe um total de 2N+1 valores diferentes, incluindo uma representação de zero.
Onde N é o número de bits da magnitude
Se N = 2  - 22 = - 4 a + (22 - 1) = + 3 
Total de valores diferentes: 2N+1  22+1 = 8 diferentes valores 
Num total de n = 3 bits  sendo que 1 para sinal e 2 para magnitude
19
6.3- ADIÇÃO NO SISTEMA DE COMPLEMENTO DE 2
• Executa-se 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.
20
Problema 6.9
(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 = 00001110 (sistema de comp. 2)
1710 = 10001 (sistema binário puro) 
+1710 = 00010001 (sistema de comp. 2) faz a negação para obter -1710 
-1710 = 11101111
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
21
(d) Some - 48 com -80
Use 8 bits incluindo o bit de sinal. Sistema de complemento de 2
4810 = 110000 (sistema binário puro)
+ 4810 = 00110000 (sistema de comp. 2 ) faz a negação para obter -4810
- 4810 = 11010000 
8010 = 1010000 (sistema binário puro)
+ 8010 = 01010000 (sistema de comp. 2) faz a negação para obter -8010
- 8010 = 10110000
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 (carry devido a soma dos bits de sinal é desprezado)
Problema 6.9
6.4- 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.
• Realiza-se a operação de negação do subtraendo.
• Adiciona-se o número obtido ao minuendo.
• A resposta representará a diferença entre ambos.
22
)()( BAX  B)(A)(X →
Para obter (-B) acha o complemento de 2 de B, ou seja, faz a negação de B.
A operação de negação altera o número para seu equivalente oposto.
23
(e) Subtraia +16 de +17 →
Use 8 bits incluindo o bit de sinal. Sistema de complemento de 2
1710 = 10001 (sistema binário puro)
+1710 = 00010001 (sistema de comp. 2 )
1610 = 10000 (sistema binário puro)
+1610 = 00010000 (sistema de comp. 2) faz negação para obter -1610
-1610 = 11110000
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 6.9
+17 +17
- (+16) + (-16)
despreza o último carry (carry devido a soma dos bits de sinal é desprezado) 
subtraendo
24
(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 = 00001111 sistema de comp. 2 , faz negação para obter -1510
- 1510 = 11110001
3610 = 1001002 sistema binário puro
+ 3610 = 00100100 sistema de comp. 2 
1 1
- 15 → 1 1 1 1 0 0 0 1 colocar o sinal +
+ 36 → + 0 0 1 0 0 1 0 0 
1 0 0 0 1 0 1 0 1 → + 21
despreza o último carry (carry devido a soma dos bits de sinal é desprezado)
Problema 6.9
-15 - (-36) → -15 + (+36) 
-15 -15
- (-36) + (+36)
subtraendo
25
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 no sistema de completo de 2
Comparar os bits de sinal das parcelas com o bit de sinal do resultado
Um overflow ocorre quando 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).
26
(a) Some +37 com +95
Use 8 bits incluindo o bit de sinal. Sistema de complemento de 2
3710 = 100101 (sistema binário puro)
+ 3710 = 00100101 (sistema de comp. 2)
9510 = 1011111 (sistema binário puro)
+ 9510 = 01011111 (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 6.10
+37 + (+95)
+37
+ (+95) 
Para verificar se ocorrer overflow: compara
os bits de sinal das parcelas com o do 
resultado 
0
27
(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
(carry devido a soma dos bits de sinal é desprezado)
Problema 6.10
-95 - (+37) → -95 + (-37) 
9510 = 1011111 (sistema binário puro)
+ 9510 = 01011111 (sistema de comp. 2) faz negação para obter -9510
- 9510 = 10100001
3710 = 100101 (sistema binário puro)
+ 3710 = 00100101 (sistema de comp. 2) faz negação para obter -3710
- 3710 = 11011011
-95
+ (-37) 
subtraendo
Para verificar se ocorrer overflow: compara 
os bits de sinal das parcelas com o do 
resultado 
-95
- (+37) 
• 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.
28
6.7- ADIÇÃO BCD
** Soma 0110 (seis) para pular os seis códigos inválidos do BCD.
29
B C D Decimal 
0 0 0 0 0
0 0 0 1 1
0 01 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 0 0 0 8
1 0 0 1 9
Código BCD - Decimal Codificado em Binário
São usados apenas os números binários de 4 bits, entre 0000 e 1001.
O código BCD não usa os números 1010 , 1011, 1100, 1101, 1110 e 1111.
30
0000 1100 1111 000  carry
0000 0111 0011 1000  1ª parcela
+ 0000 0110 0100 1000  2ª parcela
--------------------------------
0000 1101 1000 0000
↓ Correção
0001 1000 0000 000  carry
0000 1101 1000 0000 
+ 0000 0110 0000 0110  Correção
-----------------------------------
0001 0011 1000 0110 resultado
Some os seguintes números decimais após convertê-los em código BCD.
0738
+ 0648
--------
1386
decimal
→
BCD
**Quatro bits equivale a 1 nibble
carry = 1 entre nibble  precisa de correção
Exemplo: 
resposta final 
31
0 1 1 0 0 0 0 0 0 0 0 
0 0 1 1 1 0 0 0 0 1 0 1
+ 0 0 0 1 0 0 0 1 1 0 0 0
-------------------------------
0 1 0 0 1 0 0 1 1 1 0 1
↓
0 0 0 0 0 0 1 1 1 0 0  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 1 1 1 0 0 0 0 0  carry
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 6.13
(d)
Nibble → grupo de 4 bits
resposta final 
 carry
 1ª parcela
 2ª parcela
resultado
resultado
32
Adição hexadecimal - pag. 266
• Somam-se os dígitos hexa em decimal.
• Se a soma for menor ou igual 15, o resultado pode ser expresso como um dígito
hexa.
•Se a soma for maior que 15, 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 1 para a próxima 
posição
→
↙ carry
Exemplo 1 Exemplo 2
6
+ 6
----
12 
10
+ 5 
----
15
1
11
+ 2
-----
14
6.8- ARITMÉTICA HEXADECIMAL 
B
+ 2
-----
E
E16
33
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 para a 
próxima posição
1 1
F 15
+ F + 15
------- -----
31
- 16
------
1 1 5 decimal 
1 F hexa
↖ carry 1 para a 
próxima posição
Exemplo 3
2ª 1ª
1ª2ª3ª
1 
0 
+ 0 
-------
1
3ª
34
Subtração hexadecimal - pag. 267
Usa-se 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.
35
Procedimento 1
5 1 F número hexa
0101 0001 1111 converta em binário
1010 1110 0000 complemento de 1 de 0101 0001 1111 
+ 0000 0000 0001 some 1 ao LSB
-----------------------
1010 1110 0001 complemento de 2
A E 1 converta novamente em hexa. Complemento de 2 de 51F
Como obter o complemento de 2 de um número hexadecimal: 
Procedimento 2
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
Subtraia cada dígito hexa de F ; em seguida, some 1 ao LSD (dígito menos significativo).
3 F A
- 2 B 7
Devemos determinar o complemento de 2 do subtraendo primeiro.
Exemplo:
36
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 
Subtraia cada dígito hexa de F ; em seguida, some 1 ao LSD
Hexa decimal 
A 10
B 11
C 12
D 13
E 14
F 15
37
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
o último carry
para a próxima 
posição
3 F A
- 2 B 7
38
• Para um dado valor negativo, o bit de sinal do número binário será 1, o que
sempre tornará o MSD do número hexa maior ou igual a 8.
• Quando o dado tem valor positivo, o bit de sinal será 0, sendo o MSD do número
hexa menor ou igual a 7.
Representação hexadecimal de números com sinal - pag. 268
É útil reconhecer se um valor hexa representa um número positivo ou negativo, 
quando o dado consiste de números com sinal. 
Problema 6.16 e 6.17- fazer 
- 27 (corrigir)
Números com sinal
Obs.:- Quando o MSD for maior ou igual a 8, o número representado será negativo,
portanto ele estará representado no sistema de complemento de 2. Use a
operação de negação para converter o número negativo em positivo para
determinar o equivalente decimal.
39
Quando o MSD de um número hexadecimal com sinal for maior ou igual a 8, o número
representado será negativo, portanto ele estará representado no sistema de
complemento de 2. Use a operação de negação para converter o número negativo em
positivo para determinar o equivalente decimal.
Exemplo:
Determine o equivalente decimal do número hexa com sinal E516 .
Como o MSD é maior que 7 → número negativo. Portanto o número está na forma de
complemento de 2.
Solução: Usando o procedimento 2
Para determinar o equivalente decimal: operação de negação 
F F
- E -5 subtrai cada dígito de F 
----- ----
1 A → complemento de 1
+ 0 1 → some 1 ao LSD
---- ----
1 B16 → complemento de 2 (positivo correspondente)
1 B16 = 1 x 16
1 + 11 x 160 = + 2710
Portanto E516 → - 2710 
• 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.
40
Unidade lógica e aritmética 
Figura 6.4- Blocos funcionais de uma ULA
Registrador A
instruções
dados
dados
6.9- Circuitos Aritméticos
41
• 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
instruções
dados
dados
6.10- 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.
42
Figura 6.5- Processo típico de uma adição binária
Carry da posição 
anterior
• 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 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 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).
resultado 
adição de 
três bits
Soma
Carry 
C0
43
Figura 6.6 - 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
Projetaremos um circuito lógico que realiza a adição de três bits (bit da 1ª parcela, bit
da 2ª parcela e o carry proveniente da posição anterior) e que produzirá como
resultado dois bits: um bit soma e um bit carry a ser somado aos bits da próxima
posição.Então o que teremos a fazer é usar o mesmo circuito para cada posição de bit.
carry para
a próxima
posição
44
Construa uma tabela-verdade com:
• Três entradas A, B e CIN
• Duas saídas S e COUT
CIN
COUT
↓
ININININ ABCCBACBACBAS 
ININININOUT ABCCABCBABCAC 
B
A
Soma
Tabela-verdade - Somador Completo
B
A
Cout
S
FA
CIN
CIN = Carry in
COUT = Carry out
6.11- Projeto de um Somador Completo
Cin  Carry da 
posição anterior
Cout carry para a
próxima posição
45
. .IN ININ INS A BC ABC AB C ABC   
)()( ININININ BCCBACBCBAS 
)()( ININ CBACBAS 
XAXAXAS 
INCBX 
  ININ CBACBAS 
Fazendo→
ININININOUT ABCCABCBABCAC 
ININININININOUT ABCABCABCCABCBABCAC 
)()()( ININININOUT CCABBBACAABCC 
ABACBCC ININOUT 
Método algébrico para simplificar:
↓ ↓
repete repete
INB C INB C
XX
INS A B C  
46
O circuito completo com as entradas A, B e CIN e as saídas S e COUT representa o
somador completo (FA).
ABACBCC ININOUT 
INCBAS 
Carry out (Cy) é o valor que não cabe na
representação da ordem de bits a ser
somada e que é transportado para a
soma dos bits de ordem imediatamente
superior.
47
ININININOUT ABCCABCBABCAC 
)()( INININOUT CCABBABACC 
INCBAS 
Ou
A
B
Cin
S
Cout
INCBAS 
ABBACC INOUT  )(
ABBACC INOUT  )(
1
BA
AB
CIN
Outro projeto do somador completo (FA).
A B
( )INC A B
48
Usando o mapa K para obter as equações booleanas simplificadas de S e COUT .
A expressão para S não pode ser simplificada usando o mapa K, porque não tem 1s
adjacentes.
Simplificação com o mapa K
A B Cin S Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
49
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 6.19 – Projeto um circuito lógico que funcione como 
um meio somador.
BABABAS 
OUTC AB
Solução:
A
B
S
Cout
A
B
B
A
Cout
S
Meio 
Somador
• O somador paralelo mais comum é um dispositivo de quatro bits, que contém quatro
FAs interligados e um circuito de carry antecipado.
• CIs 7483A, 74LS83A, 74LS283, e 74HC283 são somadores paralelos de quatro bits.
• As entradas do CI são dois números de quatro bits, A3A2A1A0 e B3B2B1B0 , e o carry
(C0) na posição LSB. As saídas são os bits do resultado da soma, 3 2 10 (S3S2S1S0),
e o carry (C4) proveniente da posição MSB.
50
A3 A2 A1 A0
B3 B2 B1 B0 3 2 1 0
C0C4
S3S2S1S0 →
carry na posição LSB
(Saída Soma)
Carry proveniente 
da posição MSB ↘
6.14- Somador Paralelo em Circuito Integrado
FA (somador completo) 
51
Somadores paralelos podem ser conectados em cascata para implementar a adição de
números binários maiores, nesse caso, dois números de 8 bits.
Conexão em cascata de somadores paralelos
C0 C0C4
C4
A0A1A2A3 A0A1A2A3
B0B1B2B3B0B1B2B3 3 2 1 03 2 1 0
CI de mais baixa ordem CI de mais alta ordem 
Faz C0 = 0
52
Adição – números com sinal 
(-3) reg. A
+ (+6) reg. B
------
+3
-3 = 1101 (comp. de 2)
+6 = 0110
-3 = 1101 (comp. de 2)
+6 = 0110
+3 = 0011
Faz C0 = 0
Despreza 
o último carry
1
1 1 0 1
+ 0 1 1 0
1 0 0 1 1
Despreza
o último carry
B3 B2 B1 B0 
A3 A2 A1 A0
3 2 1 0
C0C4
6.15- Sistema de Complemento de 2
Os números positivos e negativos podem ser somados em um circuito somador
paralelo básico, quando os números negativos forem colocados na forma do
complemento de 2.
53
Somador paralelo realiza a subtração (A - B) utilizando o sistema de complemento de 2.
Os bits do subtraendo (B) são invertidos e faz C0 = 1 para gerar o complemento de 2.
(+ 4) + (- 6 ) = -2
1 ← C0 ← soma 1 para obter o complemento de 2 de número 0110 (+6)
0100 ← [ A ]
+ 1001 ← [ ] ← complemento de 1 de 0110 que está armazenado no registrador B
----------
1110 ← [ ∑ ] = [ A ] + [- B ] como o bit de sinal é 1, o resultado é negativo e está na
forma de complemento de 2.
B
(+4) = 0100
(+6) = 0110
0 1 0 0
1 0 0 1 
1
1 1 1 0 
Faz C0 = 1 
somar + 1 
para obter o 
compl. de 2 de 
0110 
comp. de 1 de +6 →
(+4)
0110 (+6)
↓↓↓↓ (inverte)
1001 (comp. 1)
Subtração
(+ 4) - (+ 6) = -2
A3 A2 A1 A0
3 2 1 0
C0
B3 B2 B1 B0 
C4
1110  -2
Um circuito completo pode realizar tanto a adição quanto a subtração.
Esse circuito somador/subtrator é controlado por dois sinais de controle, chamados
ADD e SUB.
ADD = 1 e SUB = 0 → o circuito realizará a adição dos números armazenados nos
registradores A e B. O resultado aparecerá nas saídas ∑3 a ∑0
ADD = 0 e SUB = 1 → o circuito subtrairá o número que está em B daquele que está
em A. O resultado aparecerá nas saídas ∑3 a ∑0
54
Adição e subtração combinadas
55
Fig. 6.14
SUB= 0 e ADD= 1 adição 
ADD= 0 e SUB= 1 (C0=1)
subtração
Somador/subtrador paralelo, usando o sistema de complemento de 2.
C0
B00B
0B
SUB
B0
ADD
Y0 = ADD B0 + SUB 0B
1ª parcela
registrador A
2ª parcela
registrador B
3B
B3
Y 
BSUBBADDY .. 
BSUBBADDY .. 
BSUBBADDY .. 
2B3B B1B2B3 1B
C4
3 2 1 0
dois sinais de controle  ADD e SUB
2B
B2 B1
1B
56
Problema 6.32
(a) Modifique o circuito mostrado na Figura 6.14 de forma que uma única entrada de
controle, X, seja usada no lugar de ADD e SUB. O circuito deve funcionar como um
somador, quando X = 0, e como um subtrator, quando X = 1.
(b) Em seguida, usando a álgebra booleana, simplifique cada conjunto de portas.
Desenhe o circuito resultante.
Figura 6.14 
X = 0 → ADD 
X = 1 → SUB 
C0C4
3210
X = 0 → ADD =
X = 1 → SUB = X
X
57
Problema 6.32
Solução: 
X
↖
Y
B B 
X
X
2ª parcela
registrador B
X = 0 → somar
X = 1 → subtrair
X
(a) 
BXBXY .. 
.X B .X B
(b)
XBY 
B B B B B B 
X B Y
0 0 0
0 1 1
1 0 1
1 1 0 B
B
B
B
A porta XOR funciona como um inversor controlado 
C0C4
3210
X = 0 → ADD =
X = 1 → SUB = X
X
BSUBBADDY .. 
58
Cont... Solução (b) 
Problema 6.32
X B Y
0 0 0
0 1 1
1 0 1
1 1 0 B
B
B
B
Quando X = 0 → soma
Quando X =1→ subtração
x
74LS283C4
Σ3 Σ2 Σ1
Σ0
C0
A0A1A2A3
B0B1B2B3
A3 A2 A1 A0 Σ1Σ2Σ3
Σ0
CLKCLKCLKCLK
DDDD
C4
Registrador B
Pulso 
TRANSFER
B3 B2 B1 B0
XBY 
A porta XOR funciona como 
um inversor controlado .
Problema 6.23 - pag. 300
59
Utilizando-se registradores de quatro bits, incluindo o bit de sinal, projete um circuito
lógico que analisa os bits de sinal e produza uma saída ALTA, sempre que a condição de
overflow ocorrer. Projete este circuito para o somador.
333333  BABAOv
A3 B3 Σ3 Ov
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 0
Solução do Probl. 6.23:
Um método que pode ser usado para somadores que operam no sistema de
complemento de 2 é o de comparar os bits de sinal das parcelas com o do resultado.
A3 A2 A1 A0
+ B3 B2 B1 B0________
Σ3 Σ2 Σ1 Σ0
OV =1 → quando dois números positivos
(negativos) são somados e gera um
resultado negativo (positivo).
A condição de overflow pode
ocorre apenas quando dois
números positivos ou dois
números negativos são
somados.
Método da comparação dos bits de sinal 
Não tem como simplificar. 
60
Em uma ULA típica de microprocessador, os resultados de todas as operações
aritméticas são normalmente transferidos para o registrador acumulador como na
Figura 6.14, e também são usados para controlar os estadosde vários flip-flops
especiais denominados flags. Estes flags são usados pelo microprocessador quando
ele está tomando certas decisões durante a execução de certos tipos de instruções. Os
três flags mais comuns são:
C (flag de carry). Este flag é sempre igual ao carry do MSB da ULA.
S (flag de sinal). Este flag é sempre igual ao bit de sinal do último resultado da ULA
Z (flag de zero). Este flag vai para 1 sempre que o resultado da operação na ULA é zero.
Caso contrário, o flag vai para 0.
Utilizando o somador / subtrator da Figura 6.14 como se fosse uma ULA, projete o
circuito lógico que implementa estes flags. O registrador de flags deverá ser carregado
exatamente na transição positiva de TRANSFER. Desenhe o circuito.
Problema 6.53 - pag. 303
61
C (flag de carry)= C4
Solução - Problema 6.53 - pag. 303
S (flag de sinal) = 3
0123 Z
3+2+1+0 = 0  Z = 1
3+2+1+0 = 1 Z = 0
ou
ou Figura 6.14 
Z (flag de zero)→
(3 2 1 0) resultado = 0 → Z = 1
(3 2 1 0) resultado ≠ 0 → Z = 0
62
Figura 6.14 
Solução - cont... Prob. 6.53 - pag. 303
Registrador de flags
C= carryZ= zeroS= sinal
0123 Z
CZS
CLKCLKCLK
DDD
Pulso 
TRANSFER
Σ3 C4
Σ2 Σ1Σ0Σ3
S Z C
63
Problema 6.20 – Um somador completo pode ser implementado de diversas maneiras. A
Figura 6.27 mostra como um somador completo pode ser construído de dois meios
somadores (HA).Construa uma tabela–verdade para essa configuração e observe que esse
circuito funciona como um somador completo (FA). Analise o circuito e complete a T.V.
A B Cin S1 C1 S2 C2 S Cout
Figura 6.27 
64
A B Cin S1 C1 S2 C2 S Cout
0 0 0 0 0 0 0 0 0
0 0 1 0 0 1 0 1 0 
0 1 0 1 0 1 0 1 0
0 1 1 1 0 0 1 0 1
1 0 0 1 0 1 0 1 0 
1 0 1 1 0 0 1 0 1
1 1 0 0 1 0 0 0 1
1 1 1 0 1 1 0 1 1
A B S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1 
S1
Cout = C1 + C2
C1
C2
A
B
meio somador
MS1
MS1 MS2
Cin
A B Cin S Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
somador completoSolução do Problema 6.20
Cin
Cout
SS2
Entradas
Saídas
S1
C1 C2
MS1
MS2 MS2
MS2 MS2
Cout = C1 + C2
65
Exemplo1:
00 primeira posição 
01
02 temos 6 posições de memória
03
04
05 sexta posição
Determinando o número de total de posições de memória:
05 última posição 
- 00 primeira posição 
-------
05
+ 1 (+ 1 para obter o total de posições) 
-----------
06 → total de posições de memória
Subtração hexadecimal
• 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.
Como determinar o número total de posições de memória. Cálculo em decimal. 
66
Exemplo2:
04
- 01
-------
03
+ 1 (+ 1 para obter o total de posições) 
-----------
04 → total de posições de memória
Total de posições de memória nas duas faixas:
00 
01
02
03
04
05
06
07
08
09
4 posições de memória
09
- 07
-------
02
+ 1 (+ 1 para obter o total de posições) 
-----------
03 → total de posições de memória
04
+ 03
-----
07 → total de posições de memória
3 posições de memória
Endereço em decimal
Fazer Problema 6.16
Determine o número total de posições de memória entre 01 e 04 e entre 07 e 09.
Cálculo em decimal.
67
Solução do Prob. 6.54: 
01001001 → 0000000001001001 = + 7310
10101110 → 1111111110101110 = - 8210 
01001001 = + 7310
10101110 = - 82 
Representados na forma de complemento de 2
Determine as representações de 16 bits para esses números decimais.
Problema 6.55-
Compare as representações de 8 e 16 bits para o +73 e o - 82 no Prob. 6.54. Existe uma
regra geral que pode ser usada? Qual é?
Solução:
Se o bit de sinal for positivo (0)→ acrescentar mais 8 zeros (0s) na frente do número de 
8 bits.
Se o bit de sinal for negativo (1)→ acrescentar mais 8 uns (1s) na frente do número de 
8 bits. 
Problema 6.54- Mover números binários a partir de registradores de 8 bits para os de 16 bits. 
68--------------------------------------------------------------------------------------------
Lista de Exercícios do Capítulo 6 - 11ª Edição 
SEÇÃO EXEMPLOS PROBLEMAS
6.1 6.1
6.2 6.1, 6.2, 6.3,6. 4, 6.5 6.2, 6.3, 6.4, 6.5, 6.6, 6.7
Questões para revisão
6.3 6.8, 6.9
6.4 6.10
6.7 6.13
6.8 6.6, 6.7, 6.8, 6.9 6.14, 6.15, 6.16, 6.17
6.9
6.10
6.11 6.18, 6.19, 6.20
6.12 6.23
6.14 6.10 6.26
6.15 6.27, 6.28, 6.29, 6.30, 6.31, 6.32
Aplicações em Micro 6.53, 6.54, 6.55
Questões para revisão
Livro: Sistemas Digitais – princípios e aplicações – 11ª Ed.
Ronald J. Tocci/ Neal S. Widmer/Gregory L. Moss
Esses são os exercícios mínimos recomendados do Capítulo 6

Continue navegando