Professional Documents
Culture Documents
COMPUTAO
ARQUITETURA DE COMPUTADORES I
Material Terico
Sumrio
Dados de Sada
Processamento
Que executa uma srie de instrues sistematicamente: essas instrues seguem uma sequncia
lgica (algoritmo) e so passadas para o computador por meio de um programa. Pode haver mais de uma
linguagem de programao (com sintaxe e semntica prprias) para implementar o mesmo algoritmo
(lgica).
Para atingir um ou mais objetivos:
Eis uma das grandes divises dos computadores, que podem ser:
Computadores de Propsito Especfico (ou Especial): desenvolvidos para aplicaes
especficas sendo que, geralmente, o foco do projeto est na especializao do hardware. Ex:
computadores de bordo e controladores de robs industriais.
Computadores de Propsito Geral: desenvolvidos para atender diversas aplicaes
sendo que o foco do projeto est no software visando a capacidade de adaptao para soluo de
muitos problemas. Ex: computadores pessoais (PC).
digital: os dados so representados e processados por meio de valores discretos conforme uma
determinada base matemtica (no caso, base 2 ou binria).
Um computador deve ser capaz de processar dados. Os dados podem ter grande
variedade de tipos, e a gama de requisitos de processamento muito ampla. Entretanto,
veremos que existem poucos mtodos ou tipos fundamentais de processamento de dados.
tambm essencial que um computador armazene dados. Mesmo quando
realizado um processamento de dados do tipo on the fly (isto , quando os dados de
entrada so processados e os resultados so enviados diretamente para a sada), o
computador precisa armazenar temporariamente ao menos aquela poro dos dados que
est sendo processada naquele instante. Portanto, existe pelo menos uma funo de
armazenamento temporrio de dados. igualmente importante que um computador seja
capaz de armazenar dados de maneira permanente, por perodos longos. Os dados so
armazenados no computador, para subsequente recuperao e modificao.
Exemplo: 13 7
SUBTRAENDO
- em regra, inverte-se o sinal do subtraendo com o complemento da base decimal conforme o maior
nmero de casas decimais do minuendo ou subtraendo:
Outros exemplos:
a) 45 -32 =
45 + (complemento de 32 em 100) =
45 + ( 68) = 113 (minuendo com dezena e unidade; logo, despreza-se a centena)
45 32 = 13
b) 2345 56 =
2345 + (complemento de 56 em 10000) =
2345 + ( 9944) = 12289 (considera-se apenas milhar, centena, dezena, unidade).
2345 56 = 2289
Outros casos:
c) - 345 + 6 =
- (345 -6) =
-(345 6) = - (345 + 994) = -(1339)
- (345 6) = - 339
d) - 34 - 13 = - (34 + 13) = -(47) = -47
Veja,
neste
link,
um
simulador
orange.fr/pages/truc_mat/textes/pascaline.htm
da
Pascalina:
http://therese.eveilleau.pagesperso-
Ainda no sculo XVII, Gottfried Leibniz incrementou a Pascalina com as operaes de multiplicao e
diviso.
No sculo XIX, Charles Babbage (citados por alguns autores como o av do computador moderno)
desenvolveu duas mquinas mecnicas: a Mquina Diferencial e a Mquina Analtica. A primeira
executava, mecanicamente, clculos polinomiais e funes trigonomtricas para a Marinha Real Inglesa. As
inovaes tecnolgicas foram as seguintes: realizava repetidas e sucessivas operaes de adio e
multiplicao; e imprimia os resultados.
A Mquina Analtica era composta por uma memria (com capacidade para armazenar 1000
nmeros de 20 algarismos), uma unidade de processamento (que realizava as quatro operaes
aritmticas), uma unidade de entrada (leitora de cartes perfurados) e uma unidade de sada (perfurador
de cartes).
Segundo [MONTEIRO 2007],
possua um programa que podia modificar o
funcionamento da mquina, fazendo-a realizar diferentes clculos. Esta era de fato sua grande diferena e
vantagem sobre as anteriores: o fato de se tornar de uso mais geral por possuir a capacidade de
modificar suas operaes e assim realizar diferentes clculos. Assim, [TANENBAUM 2001] ratifica
que A grande vantagem da mquina analtica estava no fato de ela ser de propsito geral.
Em 1935, Konrad Zuse cria a primeira mquina de calcular com rels eletromagnticos.
Em 1944 Howard Aiken monta a mquina de Babbage com rels eletromecnicos.
Em virtude de segredo de estado do governo britnico, a Mquina Colossus, desenvolvida por Alan
Turing e colocada em operao em 1943, s veio a conhecimento pblico nos anos 90. Dessa forma, a
histria da computao teve de ser adaptada para fazer justia e esse grande matemtico ingls que, durante a
Segunda Guerra Mundial, trabalhou na criptoanlise do Enigma (dispositivo de criptografia utilizado pelos
alemes). Segundo [MONTEIRO 2007], Turing bastante conhecido pela teoria da computao que
desenvolveu, conhecida como Mquina de Turing, descrita em 1937 e que consistia na definio de uma
funo de computao, pela qual uma mquina poderia simular o comportamento de qualquer outra
mquina usada para computao, se fosse adequadamente instruda para tal.
Resumindo:
Em 1957 foi criada a DEC (Digital Equipament Corporation) que, por meio da srie dos PDP, iniciou
o advento dos minicomputadores.
10
11
Como concluso desta aula, vale reproduzir o seguinte texto de [STALLINGS, 2002]:
O computador composto de um pequeno conjunto de componentes lgicos bsicos, que podem ser
combinados de vrios modos para armazenar dados binrios e executar operaes aritmticas e lgicas sobre
esses dados. possvel obter, para cada aplicao particular, uma configurao de componentes lgicos
projetada especificamente para executar essa aplicao. Esse processo de conectar os diferentes
componentes do sistema para obter a configurao desejada pode ser concebido como uma forma de
programao. O 'programa' resultante formado pelo hardware e chamado programa hardwired .
Considere agora outra alternativa: suponha que construmos uma configurao de funes lgicas e
aritmticas de propsito geral. Esse conjunto de componentes de hardware capaz de executar vrias
funes sobre os dados, dependendo dos sinais de controle que lhe so aplicados. Na situao anterior, em
que o hardware dedicado para uma aplicao particular, o sistema apenas l dados e produz resultados
(Figura a). Um hardware de propsito geral capaz de ler dados e sinais de controle e produzir resultados.
Assim, em vez de projetar um novo hardware para cada aplicao nova, o programador simplesmente
precisa fornecer um novo conjunto de sinais de controle.
Como esses sinais de controle devem ser fornecidos? A resposta simples, porm sutil. Um programa
constitudo de uma sequncia de passos. A cada passo, alguma operao lgica ou aritmtica executada
sobre algum dado. Para cada passo, necessrio um novo conjunto de sinais de controle. Podemos definir
um cdigo para cada possvel conjunto de sinais de controle e acrescentar ao hardware de propsito geral
um elemento capaz de interpretar esses cdigos e gerar os sinais de controle correspondentes (Figura b).
Programar agora ficou muito mais fcil. Em vez de projetar um novo hardware para cada
aplicao nova, precisamos apenas fornecer uma nova sequncia de cdigos. Cada cdigo corresponde a
uma instruo; uma parte do hardware interpreta essas instrues e gera os sinais de controle
correspondentes. Para distinguir esse novo mtodo de programao, uma sequncia de cdigos ou
instrues chamada de software.
12
Qde Bits
Qde Bits
Estados possveis
1
Estados possveis
1
N
Estados possveis
21 = 2
2
2 =4
23 = 8
24 = 16
25 = 32
2 = 64
27 = 128
28 = 256
2 = 512
10
210 = 1024
13
Para facilitar a nossa manipulao com valores binrios, em cincia da computao tambm
utilizamos outras duas bases: octal e hexadecimal. Mas, lembre-se, internamente o computador sempre
trabalhar com valores binrios.
Base
Quantidade de Estados
Dgitos
2 binria
01
8 octal
01234567
16 - hexadecimal
16
0123456789ABCDEF
Conforme o diagrama abaixo, pode-se perceber que tanto a base 8 quanto a 16 preservam o nmero de
estados da informao em log2.
Base 16
Base 8
Base 2
0
Base 10
0
14
Valor na Base 10
10 0
8 x 100
10 1
10
9 x 101
90
10 2
100
3 x 102
300
10 3
1.000
6 x 103
6.000
10 4
10.000
5 x 104
50.000
10 5
100.000
2 x 105
400.000
Exemplo:
256.398
15
Q10
Q10
Q10
Q10 < 2
2
65
32
16
4
0
2
2
13110 = 100000112
2.2.3 Converso Binrio para Decimal (N2 para N10)
N10 = N2 x 2 (b- 1) + ... +N2 x 21 + N2 x 20
Menos
significativo
1 x 27 +
0 x 26 +
0 x 25 +
0 x 24 +
0 x 23 +
0 x 22 +
1 x 21 +
1 x 20
1 x 128 +
0 x 64 +
0 x 32 +
0 x 16 +
0x8 +
0x4 +
1x2 +
1x1
128 + 2 + 1 = 131
16
29
28
27
26
25
24
23
22
21
20
512
256
128
64
32
16
28
27
26
25
24
23
22
21
20
512
256
128
64
32
16
21 - 1
22 - 1
23 - 1
15
24 - 1
31
25 - 1
63
26 - 1
127
27 - 1
255
28 - 1
511
29 - 1
10
1023
210 - 1
17
26
25
24
23
22
21
20
64
32
16
- Verifica-se se 113 maior ou igual ao maior valor de tabela. Se for, marque o bit igual a um na
posio testada e subtraia de 113 o respectivo valor decimal. Repita essa operao at o bit menos
significativo.
- No caso, 113 maior que 64, ento, marque o bit igual a 1 e subtraia 64 de 113:
64
32
16
11310 = 11100012
18
Quantidade de Estados
Dgitos
2 binria
01
8 octal
01234567
16 - hexadecimal
16
0123456789ABCDEF
Q10
Q10
Q10
Q10 < 8
8
16
13110 = 2038
Menos
significativo
2 x 83 +
6 x 82 +
7 x 81 +
2 x 80
2 x 512 +
6 x 64 +
7x8 +
2x1
83
82
81
80
4096
512
64
Base 10
Base 8
b) Octal/Decimal
177568=
84
83
82
81
80
4096
512
64
Base 10
Base 8
20
16
Q10
16
Q10
16
Q10
16
Q10 < 16
16
58
93510 = 3A716
16
10
Menos
significativo
11 x 163 +
10 x 162 +
11 x 161 +
10 x 160
11 x 4096 +
10 x 256 +
11 x 16 +
10 x 1
21
163
162
161
160
65536
4096
256
16
Base 10
12 (C)
11 (B)
Base 16
b) Hexa/Decimal: ( A= 10 ; B = 11 ; C = 12 ; D = 13 ; E = 14 ; F = 15)
DADA16 =
164
163
162
161
160
65536
4096
256
16
Base 10
Base 16
22
a) Binrio/Octal :
Forme grupos de 3 bits (partindo da direita para esquerda) e faa as converses para octal.
Ex: 1110101101
|001|110|101|101
1
5 5
b) Binrio/Hexa:
Forme grupo de 4 bits (da direita para esquerda) e faa as converses para hexa.
Ex: 1110101101
|0011|1010|1101
3
4 | 5 | A | E | F |
5 5
3 5
7 => 10553578
23
4 REPRESENTAO DE DADOS
4.1 Unidades com Binrios
1 Bit = BInary DigiT a menor unidade de informao dentro do computador.
1 Nibble = 4 bits , um nibble pode representar qualquer dgito hexadecimal.
1 Byte = 8 bits , segundo [TOCCI 2007 ], o Byte se tornou a unidade fundamental para se
representar qualquer tipo de informao, principalmente em dispositivos de armazenamento como memria
primria e secundria. E [HYDE 2003] complementa informando-nos que a menor quantidade de
dados enderevel dentro da memria na maioria das arquiteturas.
Word (Palavra) : em termos gerais, a palavra um conjunto de bits que no seja um nibble ou byte.
Dessa forma, pode-se ter palavras de 10 bits, por exemplo. Entretanto, na maioria das arquiteturas uma
palavra representa 16 bits. Assim, segundo [HYDE 2004]:
1 Word (Palavra) = 16 bits.
1 Double Word , DWord (Palavra Dupla) = 32 bits.
1 Quad Word, QWord (Palavra Qudrupla) = 64 bits.
1 Long Word , LWord (Palavra Longa) = 128 bits.
Palavras de 10 bits, por exemplo, so conhecidas como Ten Word (TWord).
Em [HYDE 2003], tem-se as seguintes representaes na memria:
BYTE
Bit 7 mais significativo ( HO Bit)
HO = High Order
LO Nibble
LO = Low Order
BYTE
WORD
HO BYTE
Nibble 3 (HO)
Nibble 2
LO BYTE
Nibble 1
Nibbe 0 (LO)
DWORD
HO WORD
BYTE 3 (HO)
Nibble7(HO)
Nibble 6
LO WORD
BYTE 2
Nibble 5
Nibbe 4
BYTE 1
Nibble 3
Nibble 2
BYTE 0 (LO)
Nibble 1
Nibbe0 (LO)
24
Load(10)
BYTE
Load[W](12)
W = word
WORD
Load[D](14)
D = Dword
DWORD
Load[Q](18)
Q= QWord
QWORD
Endereo 16
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
MEMRIA2
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
Como j sabemos, o byte a menor unidade de informao enderevel na memria. Por exemplo,
uma determinada arquitetura trabalha com a instruo LOAD(M) que carrega para um determinado
registrador o contedo de 1 Byte de dados localizado no endereo M da memria. Nesse caso, essa mesma
arquitetura pode ter instrues que carregam uma word, dword ou qword. Nesse caso, na sintaxe da instruo
h a indicao da unidade entre colchetes. Por exemplo, LOAD[W](12) carregar um registrador de 16 bits
com o contedo de 2 bytes a partir do endereo 1216, ou seja, os bytes armazenados em 1216 e 1316.
Os registradores unidade de memria dentro da CPU tambm podem ser organizados conforme a
quantidade de bytes endereados. Por exemplo, na arquitetura 80x86 (ou x86), o acumulador conhecido
apenas como registrador AX segue a estrutura abaixo:
AX
BYTE
BYTE
AH
AL
Sistemas de 16 bits
EAX
BYTE
BYTE
BYTE
Sistemas de 32 bits
BYTE
RAX
BYTE
BYTE
BYTE
BYTE
BYTE
Sistemas de 64 bits
BYTE
BYTE
BYTE
importante observar que na arquitetura x86, o processador de 16 bits (word). Dessa forma, a
unidade bsica de endereamento uma palavra de 16 bits. Entretanto, para manter a compatibilidade, h
como enderear o byte por meio do AH (registrador A com byte mais significativo) e AL (registrador A com
o byte menos significativo). O EAX uma dword para arquitetura de 32 bits e o RAX uma qword para
64bits.
Ler sobre famlias de processadores Intel em:
http://pt.wikipedia.org/wiki/X86
BCC Arquitetura de Computadores I
25
Cdigo BCD
Codificao em Dgitos Decimais
0
1
2
3
4
5
6
7
8
9
26
Pela tabela anterior, pode-se verificar que com um nbble possvel representar os dez dgitos do
sistema decimal. Dessa forma, como 1 byte possvel representar valores de 0 a 99 onde as dezenas sero
codificadas com o nibble mais significativo e as unidades com o nibble menos significativo:
BYTE
Nibble HO
1
1
9
Nibble LO
0
1
7
97 codificado em BDC
Sinal
1111
Sem sinal
1100
Positivo
1101
Negativo
27
Hexa
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
Caracter
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US
Dec
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Hexa
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
Caracter
!
"
#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
Dec
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
Hexa
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
Caracter
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
Dec
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
Hexa
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F
Caracter
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL
28
4.3.3 Unicode
Com o ASCII possvel representar todos os caracteres latinos. Entretanto, h outros caracteres de
idomas no latinos que no cabem nos 7 bits do ASCII. Dessa forma, foram sendo criadas extenses para
permitir a representao de caracteres de outros idiomas. Uma dessas extenses, por exemplo, foi a srie de
normas ISO 8859.
O Unicode um padro mantido pela Unicode Consortium que visa representar qualquer sistema de
escrita existente e que conta, atualmente, com pouco mais de 107.000 caracteres.
Os esquemas de padronizao do Unicode so conhecidos como UTF (Unicode Transformation
Format):
UTF-7: uma codificao de caracteres de tamanho varivel capaz de representar um texto Unicode
usando uma seqncia de caracteres ASCII. usada principalmente em emails.
UTF-8: uma codificao de tamanho varivel de um a quatro bytes (octetos). necessrio apenas
um byte para codificar os 128 caracteres ASCII (Unicode U+0000 a U+007F). So necessrios dois bytes
para caracteres Latinos com diacrticos. So tambm usados dois bytes para representar caracteres dos
alfabetos Grego, Cirlico, Armnio, Hebraico, Srio e Thaana (Unicode U+0080 a U+07FF). So necessrios
trs bytes para o resto do Plano Multilingual Bsico (que contm praticamente todos os caracteres comuns
utilizados). Existem ainda outros caracteres que necessitam de quatro bytes.
UTF-16: um formato Unicode de 16-bits que prov uma maneira de representar os diversos
caracteres abstratos, presentes no Unicode e no ISO/IEC 10646, como uma srie de palavras (neste caso, de
16-bits), para ento poder ser armazenados ou transmitidos por uma rede.
UTF-32: um formato Unicode de 32 bits. Sua principal vantagem fornecer um modo uniforme para
representao de todos os caracteres.
Para saber mais, acesse: http://www.w3.org/International/questions/qa-choosing-encodings.pt-
br.php
29
Decimal
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
Valores representveis:
-(2n-1 -1) at +(2n-1 -1)
0 1 1 1 1 1 1 1
127
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 1
-1
1 0 0 0 0 0 1 0
-2
.
1 1 1 1 1 1 1 1
-127
0
1
1
0
1
0
0
1
1
0
0
1
1
30
Sinal Magnitude
0 1 1 1
0 1 1 0
0 1 0 1
0 1 0 0
0 0 1 1
0 0 1 0
0 0 0 1
0 0 0 0
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
-
oo
Complemento 2
0 1 1 1
0 1 1 0
0 1 0 1
0 1 0 0
0 0 1 1
0 0 1 0
0 0 0 1
0 0 0 0
1 1 1 1
1 1 1 0
1 1 0 1
1 1 0 0
1 0 1 1
1 0 1 0
1 0 0 1
1 0 0 0
c) Negao: pegue o complemento booleano de cada bit do nmero positivo correspondente e ento
some 1 ao padro de bits resultantes.
d) Expanso do nmero de bits: acrescente posies de bits esquerda e preencha esses bits com o
valor do bit de sinal original.
12
= 01100 ->
00001100
-13
= 10011 ->
11110011
e) Regra de overflow: se dois nmeros com o mesmo sinal (ambos positivos ou ambos negativos)
forem somados, ocorrer overflow apenas se o resultado tiver sinal oposto.
O resultado de uma adio pode ter um nmero de bits maior do que o tamanho da palavra usada. Essa
condio denominada overflow (transbordamento). Quando isso ocorre, a Unidade de Lgica e
Aritmtica do processador deve sinalizar esse fato, para que o resultado no seja utilizado.
+5
+4
0
0
1
1
1
0
0
0
0
1
0
1
-7
-6
1
1
1
0
0
0
0
0
1
1
1
0
1
31
Na converso entre bases 2 e 10 com nmeros negativos, deve-se considerar o bit mais significativo
como sendo o bit de sinal e fazer a converso considerando esse sinal. Por exemplo, na converso de valores
de 1 byte:
-128
1
0
1
0
64
0
1
1
0
32
0
1
1
0
16
0
1
1
0
8
1
1
1
0
4
0
0
1
1
2
0
0
0
0
1
0
0
0
0
-120
120
-4
4
Segundo [STALLINGS 2002]: A representao em complemento de dois pode ser visualizada por
meio da representao geomtrica mostrada na figura acima, extrada de Benham (1992). O crculo na
metade superior de cada parte da figura formado selecionando o segmento adequado da reta de nmeros e
juntando as duas extremidades. Comeando a partir de qualquer nmero do crculo, podemos somar um valor
k positivo (ou subtrair um valor k negativo) a esse nmero, movendo k posies no sentido horrio, ou
subtrair um valor k positivo (ou somar um valor k negativo), movendo k posies no sentido anti-horrio.
Caso essa operao cruze o ponto em que as duas extremidades se juntam, a resposta obtida incorreta.
32
1
0
1
0
0
1
1
+
1
1
1 0
0 0 0 0 0
1
0
+ 0
1
0 0 0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
+ 0
1
0 0 0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0 1 0 1 0 1
1
+ 0 0 1 1 1 0
0
0 0 0 0 0 0 0 0 0 0 0
1
1
0
0
1
0
1
0 0 0 0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
2
0
0 1 0 1 0 1
1
- 0 0 1 1 1 0
1
0 0 0 0 0 0 0 0 0 0 0
b) Subtrao:
0
- 0
0
0 0 0
1
0
1
0
0 2
1
1 0
1
1
0
0 1
0 0 0 0 0 0 0
0
0
0
0
c) Multiplicao:
x
1
1
0 0 0
1 0
1
0 0
0 1
0 1
0 0
1
0
0
0
0
1 0
0 0 0 0 1 1
1 0 1
1
1 0 1
0 0 0
1 1 0
0 1 1
1 0
0 1
1 0
0
1 0 0 1
x
1 1
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d) Diviso:
1 0 1
1 0
0 0 1
1
0
0 0 0 0
0 1 0
0 1 0 1
0
0
0
0 0 0 0 0
1 0 0
1 0 0
1 0
0 0 1
1
0
0
0
1
1
0
1
1
0
1 1 1 0 1
0 0 0 1 1 1
1
1
0 1
0 1
0 0
0 0 0
33
1
0
1
0
1
0
1
0
1
0 1 0 0 1
1 1 1 0 0
0 0 1 0 1
Bit desconsiderado
1
1 1 1 1 0 1 1 1
0 0 0 0 0 1 0 0
1 1 1 1 1 0 1 1
Bit desconsiderado
1
1
1
1
1
1
1
1
1
1
1
1
1
0 1 1 1
1 1 0 0
0 0 1 1
Bit desconsiderado
34
5.4.2 Subtrao
1 1
0
+
1
1 0
1
1
0
0
1
1
0
0
1
1 1 0 0 0
1 1 1 1 1
1 0 1 1 1
Bit desconsiderado
35
Destacamos aqui os dois conceitos fundamentais da lgebra booleana que so variveis lgicas e
funes lgicas.
a) Variveis Lgicas: uma varivel lgica uma varivel que tm trs propriedades distintas:
- a varivel lgica s pode assumir um de dois valores possveis (Verdadeiro/Falso ,
Sim/No, 0/1);
- os valores so expressos por afirmaes declarativas (proposies lgicas).
- os dois valores possveis, expressos por afirmaes declarativas, devem ser tais que, com
base em raciocnio humano, ou seja, com base na lgica, sejam mutuamente exclusivos.
b) Funes Lgicas: so regras de operaes lgicas por meios das quais uma ou mais
variveis lgicas de entrada produzem uma varivel lgica de sada.
36
Significado Lgico
Produto Lgico
Soma Lgica
Complemento Lgico (negao)
Soma Lgica Exclusiva (ou um ou outro).
Smbolo
.
+
Barra
Alm desses quatro operadores, h mais dois tambm muito teis que so o complemento do
AND (NAND) e do OR (NOR).
Abaixo, tem-se a Tabela Verdade com os operadores lgicos bsicos.
Operadores Lgicos Bsicos
AND
OR
NOT (A)
XOR
A.B
A+B
A B
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
Variveis
Lgicas
A
B
0
0
0
1
1
0
1
1
NAND
A.B
1
1
1
0
NOR
A+B
1
0
0
0
Uma funo lgica aplica uma ou mais operadores sobre uma ou mais variveis lgicas
produzindo uma sada lgica.
Exemplo: Dadas as variveis lgicas A e B, o valor de z ser dado pela seguinte funo:
z = (A . B) + B
A
0
0
1
1
B
0
1
0
1
A.B
1
1
1
0
B
0
1
0
1
z
1
1
1
1
37
(Fonte:
http://www.aprendereletronica.com.br/portas-logicas-and-nand-or-nor-not-ou-exclusivocoincidencia-php/ , acessado em 13/04/2013)
38
Complementao
A=A
POSTULADOS
Adio
Multiplicao
0+0=0
0+1=1
1+0=1
1+1=1
0.0=0
0.1=0
1.0=0
1.1=1
IDENTIDADES
Adio
Multiplicao
A+0=A
A+1=1
A+A=A
A+=1
A.0=0
A.1=A
A.A=A
A.=0
PROPRIEDADES
Comutativa:
Associativa:
A+B=B+A
A.B=B.A
A + (B + C) = (A + B) + C = A + B + C
A . (B . C) = (A . B) . C = A . B . C
Distributiva:
A(B + C) = AB + AC
TEOREMAS DE De MORGAN
(A . B) = A + B
(A + B) = A . B
Outras Identidades:
A + A.B = A
A + .B = A + B
(A + B) . (A + C) = A + B.C
39
40
[TAUB 1984] explica que, da mesma forma que as operaes AND, OR e NOT so
suficientes para expressar qualquer funo lgica, as funes NAND e NOR so por si s
suficientes:
Frequentemente conveniente projetar um circuito lgico usando somente um
tipo de porta lgica. As portas NAND e NOR so apropriadas para este propsito, pois as
operaes NAND e NOR so suficientes e, consequentemente, qualquer operao lgica
pode ser efetuada por um arranjo de portas idnticas. A implementao lgica com portas
NAND ou NOR , todavia, inconveniente por no serem as operaes associativas. O
procedimento usual , ento, projetar uma estrutura usando portas AND, OR e NOT e,
posteriormente, transform-las em uma estrutura equivalente que use apenas portas
NAND ou NOR conforme seja desejado.
41
Exemplo: Dado o circuito lgico abaixo, faa a simplificao algbrica da funo boolena
[IDOETA 1984].
A
B
C
A
S
C
A
B
S = ABC + AC + AB
S = A(BC + C + B)
Colocando A em evidncia.
S = A(BC + (C + B) )
S = A(BC + (CB))
S = A(BC + BC )
S = A(1)
S=A
42
43
Conforme [CAMPOS 2001], pode-se montar o Mapa de Karnaugh das seguintes formas:
Os agrupamentos de bits 1 so chamados de enlaces, sendo que os enlaces sempre renem bits
1 em agrupamentos de potncias de 2 (1, 2, 4 e 8):
44
45
A
B
C
A
S
C
A
B
46
Referncias:
[MONTEIRO 2007]
[STALLINGS 2002]
[TANENBAUM 2001]
[SHANNON 1948]
[HYDE 2004]
HYDE, R. Write Great Code: Understanding the Machine, Volume I. San Francisco,
CA. No Starch Press, 2004.
[HYDE 2003]
HYDE, R. The Art of Assembly Language. San Francisco, CA. No Starch Press, 2003.
[TOCCI 2007]
[IDOETA 1984]
[TAUB 1984]
[CAMPOS 2001]
47