Arquitetura e Organização de Computadores
Operações Aritméticas e Lógica Digital
◦ Prof. Sandro Wambier
1
Adição binária◦ Fazem-se as contas coluna a coluna, da direita para a
esquerda, fazendo o transporte de um (<e vai um>) quando for o caso.◦ ◦ Observando-se as seguintes operações básicas:
0 + 0 = 0 0 + 1 = 1 1 + 1 = 10 (1 mais 1 é igual a 0 e vai 1) 1 + 1 + 1 = 11 (1 mais 1 mais 1 é igual a 1 e vai 1)
◦ Exemplo
2
1111101110
11+11011+11011
11
11
00
11
00111010
Subtração binária◦ Como o conjunto de símbolos contém apenas 2
dígitos ao se efetuar a subtração parcial entre 2 dígitos se o segundo (diminuidor) exceder o primeiro
(diminuendo) subtrai-se uma unidade ao dígito imediatamente à
esquerda no diminuendo (se existir e o seu valor for 1), convertendo-o a 0 substituímos o diminuendo por 2b
Se o dígito imediatamente à esquerda for 0 procura-se nos dígitos consecutivos
3
Subtração binária◦ Exemplos: 11101 – 111
◦ Exercício: 100001-101
4
1 1 1 0 11 1 1 0 1- 1 1 1- 1 1 1
00
00 22
11
0022
110011
Subtração binária◦
◦ Exercício: 100001-101 = 11100
5
1 0000 11 0000 1- 10 1- 10 1
00
22
00
11
111111
11
Operações Lógicas com números ◦ As operações lógicas trabalham apenas com
operandos com bit único Para realizar estas operações sobre um número (8, 16, 32
bits) é necessário realizar a operação bit-a-bit
◦ Exemplo: operação lógica AND com dois operandos de 8 bits
1011 0101 AND 1110 1110 = 1010 0100
◦ Como as operações lógicas são definidos em termos de valores binários, deve-se converter os números decimais, hexadecimais, etc., para números binários antes de realizar as operações lógicas
6
◦ Algumas strings de bits têm nomes próprio: uma seqüência de 8 bits são chamados de byte uma seqüência de 4 bits é chamada de nibble um grupo de 16 bits é chamado de word um grupo de 32 bits é chamado de double word um grupo de 64 bits é chamado de quad word
7
Um caractere normalmente é representado por um byte
◦ maioria dos códigos alfanuméricos representam caractere através de um byte
◦ código ASCII a letra 'A' é representada pelo byte “0100 0001“
◦ uma seqüência de caracteres é expressa por uma cadeia de bytes sucessivos
8
Código ASCII
9
Todas as complexas operações de um computador digital acabam sendo combinações de simples operações aritméticas e lógicas básicas: somar bits, subtrair bits, comparar bits, mover bits. Estas operações são fisicamente realizadas por circuitos eletrônicos, chamados circuitos lógicos (ou gates - portas lógicas).
Os sistemas lógicos são estudados pela álgebra de Boole, conceituada pelo matemático inglês George Boole (1815 - 1864).
A álgebra de Boole trabalha com apenas duas grandezas: falso ou verdadeiro.As duas grandezas são representadas por 0 (falso) e 1 (verdadeiro).
10
LOGICA DIGITAL
Nos circuitos lógicos do computador, os sinais binários são representados por níveis de tensão.
11
LOGICA DIGITAL
Qual binário foi representado?
A porta AND combina dois ou mais sinais de entrada de forma equivalente a um circuito em série, para produzir um único sinal de saída, ou seja, ela produz uma saída 1, se todos os sinais de entrada forem ; caso qualquer um dos sinais de entrada for 0, a porta AND produzirá um sinal de saída igual a zero.
12
PORTAS LOGICAS – AND ( e )
Ci 7408 4 portas AND
A porta OR combina dois ou mais sinais de entrada de forma equivalente a um circuito em paralelo, para produzir um único sinal de saída, ou seja, ela produz uma saída 1, se qualquer um dos sinais de entrada for igual a 1; a porta OR produzirá um sinal de saída igual a zero apenas se todos os sinais de entrada forem 0.
13
PORTAS LOGICAS – OR ( ou )
Ci 7432 4 portas OR
A porta NOT inverte o sinal de entrada (executa a NEGAÇÃO do sinal de entrada), ou seja, se o sinal de entrada for 0 ela produz uma saída 1, se a entrada for 1 ela produz uma saída 0.
14
PORTAS LOGICAS - NOT
A porta NAND equivale a uma porta AND seguida por uma porta NOT, isto é, ela produz uma saída que é o inverso da saída produzida pela porta AND.
15
PORTAS LOGICAS – NAND ( AND NOT )
A porta NOR equivale a uma porta OR seguida por uma porta NOT, isto é, ela produz uma saída que é o inverso da saída produzida pela porta OR.
16
PORTAS LOGICAS – NOR ( OR NOT )
A porta XOR compara os bits; ela produz saída 0 quando todos os bits de entrada são iguais e saída 1 quando pelo menos um dos bits de entrada é diferente dos demais.
17
PORTAS LOGICAS – XOR
Exemplo de circuitos utilizando portas lógicas:
A) Uma campainha que toca (saída) se o motorista der a partida no motor do carro (entrada) sem estar com o cinto de segurança afivelado (entrada).
Se a ignição for ACIONADA (1) e o cinto estiver DESAFIVELADO (1), a campainha é ACIONADA (1). Caso contrário, a campainha não toca
18
PORTAS LOGICAS
Basta utilizarmos uma porta AND.
19
PORTAS LOGICAS
Ignição on Cinto off Bip on
0 0 0
0 1 0
1 0 0
1 1 1
B) Detector de incêndio com vários sensores (entradas) e uma campainha para alarme (saída).
Se QUALQUER UM dos sensores for acionado (significando que um dos sensores detectou sinal de incêndio), a campainha é ACIONADA.
20
PORTAS LOGICAS
Basta utilizarmos uma porta OR.
21
PORTAS LOGICAS
Sensor 1 Sensor 2 Alarme on
0 0 0
0 1 1
1 0 1
1 1 1
Efetuar a soma binária : 0100101 + 1010111 = 11011 + 11001 = 1100011 + 1011011 = 101100101 + 100111011 = 1100111101 + 101110110 = 1010100 + 10101 = 11010 + 111001 = 10101010 + 100100100 = Efetuar a subtração binária: 100101 – 011010 = 11001001 - 10111011 = 101101 - 100111 = 1001001 - 111100 = 1111 - 111 = 1011 - 1010 = 10001 - 1101 =
22
5) Resolver as expressões abaixo, seguindo a operação lógica indicada:
a) A = 0111 e B = 0111, calcule X = A.B (AND). b) A = 01000 e B = 01101, calcule X = A.B (AND). c) A = 11001 e B = 00111, calcule X = A.B (AND). d) A = 0111 e B = 0111, calcule X = A+B (OR). e) A = 0011 e B = 0100, calcule X = A+B (OR). f) A = 0101 e B = 0001, calcule X = A+B (OR). g) A = 0111, calcule X = A (NOT). i) A = 0001, calcule X = A (NOT). j) A = 0001 e B = 1110, calcule X = A.B (NAND). k) A = 01001 e B = 11010, calcule X = A.B (NAND). l) A = 00101 e B = 11111, calcule X = A.B (NAND). m) A = 01101 e B = 00001, calcule X = A.B (NOR). n) A = 00101 e B = 11100, calcule X = A.B (NOR). o) A = 0101 e B = 0001, calcule X = A.B (XOR). p) A = 0111 e B = 0011, calcule X = A.B (XOR). q) A = 1001 e B = 1000, calcule X = A.B (XOR).
23