Buscar

CL_CAP_6_2019_2

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 66 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 66 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 66 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 
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 
6.1- 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 
Carry out na soma binária 
3 
Exercício : Use 5 bits. Sistema de numeração binária 
Some 14 com 17 
 1410 = 011102 (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 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 
6.2- REPRESENTAÇÃO DE NÚMEROS COM SINAL 
• Um registrador de seis bits pode armazenar números binários puros 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 -) deve-se 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. 
5 
010001 111011 
↗ 
Bit de sinal 
↖ 
 Bit de sinal 
número positivo número negativo 
6 
Representação de números com sinal no Sistema sinal-magnitude 
Os números mostrados na Fig. 6.1 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 na representação positiva como na negativa. 
Essa representação é denominada sistema sinal-magnitude para números binários 
com sinal. 
A faixa de valores que pode ser representada no sistema sinal-magnitude é: 
- (2N - 1) a + (2N - 1) onde N é o número de bits na magnitude. Existe um total de 
2N+1 diferentes valores, incluindo duas representações de zero. 
Fig. 6.1 
magnitude correspondem ao equivalente binário direto 
magnitude correspondem ao equivalente binário direto 
Número negativo 
Número positivo 
7 bits 
7 
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 sinal-magnitude 
 - (2N - 1) a + (2N - 1) 
Existe um total de 2N+1 diferentes valores, incluindo duas representação de zero. 
n = 3 bits → total de bits incluindo o bit de sinal (magnitude e bit de sinal). 
Onde N é o número de bits na magnitude. 
Se N = 2  - (22 – 1) = -3 a + (22 - 1) = + 3 
Total de valores diferentes: 2N+1 → 22+1 = 8 valores, com duas representações 
de zero. 
8 
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. 
9 
Sistema de complemento de 2 : 
• Se o número for positivo, a magnitude é representada na forma binária direta e um 
bit de sinal 0 é colocado mais a esquerda, 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 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) 
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) 
10 
Número positivo → 01111 → +15 
(magnitude 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 
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. 
 
 01001 (valor do +9) 
 000 01001 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. O MSB (bit de 
sinal) ainda é 1, indicando um valor negativo. 
 
 00111 +7 
 11001 - 7 complemento de 2 do +7 
 111 11001 Uns (1 s) acrescentados para obter 8 bits 
 
 bit de sinal 
11 
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. 
12 
13 
 
 1000 = -23 = - 8 
 10000 = -24 = - 16 equivalente decimal -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. 
14 
Exemplo: Sistema de complemento de 20 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 
N = 2 bits na magnitude 
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 diferentes valores, incluindo uma representação de zero. 
 Onde N é o número de bits na magnitude 
Se N = 2  - 22 = - 4 a + (22 - 1) = + 3 
Total de valores diferentes: 2N+1 → 22+1 = 8 diferentes valores 
15 
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. 
16 
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 = 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 
17 
(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 (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. 
 
18 
)()( 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. 
19 
(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 6.9 
 +17 +17 
- (+16) + (-16) 
despreza o último carry (carry devido a soma dos bits de sinal é desprezado) 
subtraendo 
20 
(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 
 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 
21 
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 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). 
 
22 
(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 6.10 
+37 + (+95) 
 +37 
+ (+95) 
Para verificar se ocorrer overflow: compara 
os bits de sinal das parcelas com o do 
resultado 
23 
(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 = 101 1111 (sistema binário puro) 
 
+ 9510 = 0101 1111 (sistema de comp. 2) faz negação para obter -9510 
- 9510 = 1010 0001 
 
 3710 = 10 0101 (sistema binário puro) 
+ 3710 = 0010 0101 (sistema de comp. 2) faz negação para obter -3710 
 - 3710 = 1101 1011 
 -95 
+ (-37) 
subtraendo 
Para verificar se ocorrer overflow: compara 
os bits de sinal das parcelas com o do 
resultado 
6.7- 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 iguala 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. 
24 
** Soma 0110 (seis) para pular os seis códigos inválidos. 
25 
 0 1100 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 
 Quatro bits equivale a 1 nibble 
 carry = 1 entre nibble 
precisa de correção 
26 
 1 1 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 
 ↓ 
 1 1 1 
 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 
 ↓ 
 1 
 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 
27 
6.8- ARITMÉTICA HEXADECIMAL 
 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 
 ------ E16 
 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 
28 
 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ª 
29 
 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. 
30 
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: 
31 
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 
32 
 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 
33 
• 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. 
34 
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 
 
6.9- 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 6.4- Blocos funcionais de uma ULA 
Registrador A 
instruções 
dados 
dados 
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úmerono 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. 
37 
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 
38 
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. 
39 
6.11- Projeto de um Somador Completo 
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 
40 
. .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
X X 
INS A B C  
41 
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. 
42 
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
43 
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 
44 
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: 
B
A
Cout
S
Meio 
Somador
A
B
S
Cout
A
B
6.14- Somador Paralelo em Circuito Integrado 
• 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. 
45 
 
A3 A2 A1 A0 
B3 B2 B1 B0 3 2 1 0 
C0 C4 
 S3S2S1S0 → 
carry na posição LSB 
(Saída Soma) 
Carry proveniente 
da posição MSB ↘ 
46 
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 C0 C4 
C4 
A0 A1 A2 A3 A0 A1 A2 A3 
B0 B1 B2 B3 B0 B1 B2 B3 3 2 1 0 3 2 1 0 
CI de mais baixa ordem CI de mais alta ordem 
Faz C0 = 0 
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. 
47 
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 
C0 C4 
48 
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 para 
somar + 1 
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 
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 → [A] + [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, [A] – [B] → [A] + [ ] . 
O resultado aparecerá nas saídas ∑3 a ∑0 
49 
Adição e subtração combinadas 
B
50 
Fig. 6.14 
ADD = 1 → adição 
SUB = 0 
SUB=1(C0=1)→ subtração 
ADD = 0 
Somador/subtrador paralelo, usando o sistema de complemento de 2. 
C0 
B0 0B
0B
SUB 
ADD B0 
SUB 
ADD 
Y0 = ADD B0 + SUB 0B
[A] + [B] 
1ª parcela 
registrador A 
2ª parcela 
registrador B 
 [A] + [-B] 
3B
B 
Y BSUBBADDY .. 
BSUBBADDY .. 
BSUBBADDY .. 
2B3B B1 B2 B3 1B
C4 
C4 
3 2 1 0 
51 
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 comoum 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 
C0 C4 
3210 
52 
Problema 6.32 
Solução: 
X = 0 → ADD = 
X = 1 → SUB = X 
X
X 
↖ 
Y 
B B 
X 
X
[A] + [B] 
[A] + [-B] 
2ª parcela 
registrador B 
X = 0 → somar 
X = 1 → subtrair 
X 
(a) 
BXBXY .. 
BSUBBADDY .. 
.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 
C0 C4 
3210 
53 
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 
54 
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. 
55 
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 estados de 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 
Ov (flag de overflow para a soma). Este flag vai para 1 sempre que o sinal do resultado 
da soma for contrário ao das parcelas de mesmo sinal. (ver solução exercício 6.23) 
Extra: 
56 
Figura 6.14 
Solução - Problema 6.53 - pag. 303 
Z (flag de zero)→ 
Z = 1 → resultado (3 2 1 0 ) = 0 
Z = 0 → resultado (3 2 1 0 ) ≠ 0 
Registrador de flags 
carry zero sinal overflow 
Overflow para a operação soma 
(ver solução exercício 6.23). 
sinal 
zero 
carry 
0123 Z
0123 Z
57 
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 
58 
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 completo Solução do Problema 6.20 
Cin 
Cout 
S S2 
Entradas 
Saídas 
S1 
C1 C2 
MS1 
Cout 
MS2 MS2 
MS2 MS2 
59 
Exemplo1: 
 
Como determinar o número total de posições de memória. Cálculo em decimal. 
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. 
60 
Exemplo2: 
 04 
 - 01 
 ------- 
 03 
 + 1 (+ 1 para obter o total de posições) 
----------- 
 04 → total de posições de memória 
Determinando o número de posições de memória entre 01 e 04: 
Cálculo em decimal. 
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 
61 
 03FF 
- 0200 
--------- 
 F F F F 
 - 0 -2 -0 -0 subtrai cada dígito do número de F 
 ---------------- 
 F D F F → complemento de 1 
 + 0 0 0 1 → some 1 ao LSD para obter o complemento de 2 
-------------------- 
 F E 0 0 → complemento de 2 de 0200 
 1 
 0 3 F F 
 + F E 0 0 
 ----------- 
1 0 1 F F 
 + 1 (+ 1 para obter o total de posições) 
 ----------- 
 0 2 0 0 → total de posições de memória na faixa de 0200 a 03FF 
Solução: Primeira faixa 0200 a 03FF 
Problema 6.16 – O manual do usuário de microcomputador diz que ele tem uma faixa de 
memória utilizável situada nos seguintes endereços hexa: 0200 a 03FF e 4000 a 7FD0. 
Qual é o número total de posições de memória disponíveis? Dê a resposta final em 
decimal. 
Some o minuendo com o complemento de 2 do subtraendo para obter o total de 
posições de memória na faixa 0200 a 03FF . 
Determine o complemento de 2 do subtraendo em hexa. 
→ 
 03 
 + 14 
 ------- 
 17 
 - 16 
 ------ 
 1 1 
carry 
Despreza 
o último 
carry 
 3 
+ E 
----- 
1 1 
62 
 7FD0 
- 4000 
 --------- 
 F F F F 
 - 4 -0 -0 -0 subtrai cada dígito do número de F 
 ---------------- 
 B F F F → complemento de 1 
 + 0 0 0 1 → some 1 ao LSD para obter o complemento de 2 
 ----------------- 
 C 0 0 0 → complemento de 2 de 4000 
 7 F D 0 
 + C 0 0 0 
 ----------- 
1 3 F D 0 
 + 1 (+ 1 para obter o total de posições) 
 ------------ 
 3 F D 1 → total deposições de memória na faixa de 4000 a 7FD0 
 1 
 3 F D 1 
+ 0 2 0 0 
 ---------- 
 4 1 D 1 = 4x163 + 1x162 + 13x161 + 1x160 = 1684910 
Determine o complemento de 2 do subtraendo em hexa. 
Total de posições de memória nas duas faixas: 0200 a 03FF e 4000 a 7FD0 
→ 
Segunda faixa 4000 a 7FD0 
Resposta final em decimal → 1684910 
 07 
 + 12 
 ------- 
 19 
 - 16 
 ------ 
 1 3 
carry 
Despreza 
o último carry 
Some o minuendo com o complemento de 2 do subtraendo para obter o total de 
posições de memória na faixa 4000 a 7FD0 
 15 
 + 2 
 ------- 
 17 
 - 16 
 ------ 
 1 1 
 F 
+ 2 
----- 
 7 
+ C 
----- 
1 1 
63 
C0 C0 C4 
C4 
A0 A1 A2 A3 A0 A1 A2 A3 
B0 B1 B2 B3 B0 B1 B2 B3 3 2 1 0 3 2 1 0 
Figura 6.11(b) 
Problema 6.26 - Mostre os níveis lógicos de cada entrada e saída do circuito da Figura 
6.11 (b) quando EC16 for somado com 4316 . (Edição 11ª ) 
Solução: 
EC16 = 1110 11002 
4316 = 0100 00112 
Conversão hexadecimal para binário 
1 1 1 0 1 1 0 0 
0 1 0 0 0 0 1 1 
0 0 1 0 1 1 1 1 
1 
0 
0 
 1 1 1 0 1 1 0 0 
+ 0 1 0 0 0 0 1 1 
 _____________ 
1 0 0 1 0 1 1 1 1 
C8 7654 3210 
0 
64 
C0 C0 C4 
C4 
A0 A1 A2 A3 A0 A1 A2 A3 
B0 B1 B2 B3 B0 B1 B2 B3 3 2 1 0 3 2 1 0 
Figura 6.11 
Problema 6.26 - Mostre os níveis lógicos de cada entrada e saída do circuito da Figura 
6.11 (b) quando 3548 for somado com 1038 . (Edição 10ª ) 
Solução: 
3548 = 23610 = EC16 = 1110 11002 
1038 = 6710 = 4316 = 0100 00112 
1 1 1 0 1 1 0 0 
0 1 0 0 0 0 1 1 
0 0 1 0 1 1 1 1 
1 0 
0 
 1 1 1 0 1 1 0 0 
+ 0 1 0 0 0 0 1 1 
 ______________ 
1 0 0 1 0 1 1 1 1 
3548 = 3x8
2 + 5x81 + 4x80 = 23610 
1038 = 1x8
2 + 0x81 + 3x80 = 6710 
0 
C8 7654 3210 
65 
Solução do Prob. 6.54: ↓ 
0100 1001 → 0000 0000 0100 1001 = + 7310 
1010 1110 → 1111 1111 1010 1110 = - 8210 
 ↑ 
Problema 6.54- 
0100 1001 = + 7310 
1010 1110 = - 82 
Representados na forma de 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. 
66 -------------------------------------------------------------------------------------------- 
Lista de Exercícios do Capítulo 6 - 10ª e 11ª Edição 
SEÇÃO EXEMPLOS PROBLEMAS 
Introdução 
6.1 1 
6.2 1, 2, 3, 4, 5 2, 3, 4, 5, 6, 7 
6.3 8, 9 
6.4 10 
6.7 13 
6.8 6, 7, 8, 9 14, 15, 16, 17 
6.9 
6.10 
6.11 18, 19, 20 
6.12 23 
6.14 10 26 
6.15 27, 28, 29, 30, 32 
Aplicações em Micro 53, 54, 55 
Esses são os exercícios mínimos recomendados do Capítulo 6

Outros materiais