Sei sulla pagina 1di 120

INTRODUO A COMPUTAO

Introdua a computao.indd 1 18/7/2013 18:00:31


Process Black
Obra organizada pela Universidade Luterana do Brasil.
Informamos que de inteira responsabilidade dos autores a
emisso de conceitos.
Nenhuma parte desta publicao poder ser reproduzida por
qualquer meio ou forma sem a prvia autorizao da Editora
da ULBRA.
A violao dos direitos autorais crime estabelecido na Lei n .610/98
e punido pelo Artigo 184 do Cdigo Penal.
Conselho Editorial EAD
Dris Cristina Gedrat
Thomas Heimman
Mara Salazar Machado
Andra de Azevedo Eick
Astomiro Romais
Setor de Processamento Tcnico da Biblioteca Martinho Lutero - ULBRA/Canoas
Dados Internacionais de Catalogao na Publicao (CIP)
C117i Cabral, Anderson Ricardo Yanzer.
Introduo a computao / Anderson Ricardo Yanzer Cabral, Mauricio da Silva
Escobar. Canoas: Ed. ULBRA, 2013.
120p.
1. Computao. 2. Sofware. 3. Hardware. I. Escobar, Mauricio da Silva
Escobar. II. Ttulo.

CDU: 681.3
Editorao: Roseli Menzen
Dados tcnicos do livro
Fontes: Palatino Linotype, Franklin Gothic Demi Cond
Papel: oset 75g (miolo) e supremo 240g (capa)
Medidas: 15x22cm
ISBN 978-85-7528-498-8
Introdua a computao.indd 2 18/7/2013 18:00:46
Process Black
APRESENTAO
Seja bem-vindo(a) ao estudo da disciplina de Introduo Computao!
Esta disciplina prope o estudo sobre a origem da computao, sua evoluo
tecnolgica e cientfica, bem como o perfil dos profissionais que atuam nessa
rea.
O livro tambm aborda fundamentos computacionais, apresentando ao aluno uma
viso geral de como um computador funciona internamente, qual a diferena entre
hardware e software, os detalhes de como um computador representa informaes,
como organizar logicamente e projetar circuitos digitais bsicos de um computador
e, como construir programas utilizando uma linguagem simblica.
O livro-texto da disciplina est organizado em dez captulos, subdivididos
em unidades para que sua leitura e compreenso se dem de forma a agregar
conhecimentos e favorea a realizao das atividades propostas ao final de cada
captulo.
Cada um dos captulos e suas respectivas unidades propem estudo aprofundado
sobre os conhecimentos focados nesta disciplina. importante que, ao longo de
suas leituras e estudos, voc faa apontamentos pessoais que possam ser teis
para a realizao das atividades solicitadas ao final de cada captulo. Estas tm a
inteno de possibilitar articulao entre o que foi estudado com contextualizaes
possveis em seu cotidiano profissional.
As referncias bibliogrficas sugerem obras de autores que fundamentam
teoricamente os estudos realizados e oferecem a voc possibilidades de
aprofundamento com leituras complementares. Durante o decorrer da disciplina
sero sugeridos materiais complementares atravs de websites, vdeos e slides
sobre os temas abordados.
Um bom trabalho a todos ns!
Professores Anderson Yanzer e Mauricio Escobar
Introdua a computao.indd 3 18/7/2013 18:00:46
Process Black
4
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Introdua a computao.indd 4 18/7/2013 18:00:46
Process Black
SOBRE O AUTOR
Anderson Ricardo Yanzer Cabral
Mestre e Doutor em Cincia da Computao; Gerente da Incubadora Tecnolgica da
ULBRA e Diretor adjunto da Sociedade Brasileira de Gesto do Conhecimento
Mauricio da Silva Escobar
Doutor em Cincia da Computao pela PUCRS. Atualmente atua como professor
na ULBRA Canoas/RS.
Introdua a computao.indd 5 18/7/2013 18:00:46
Process Black
6
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Introdua a computao.indd 6 18/7/2013 18:00:47
Process Black
SUMRIO
1 A ERA DA INFORMAO/CONHECIMENTO ..................................................................9
1.1 Perl Prossional ................................................................................................9
1.2 A era da Informao/Conhecimento ...................................................................11
Atividades .............................................................................................................16
2 HISTRICO DOS COMPUTADORES ............................................................................19
2.1 Histrico dos Computadores ..............................................................................19
Atividade .............................................................................................................26
3 HARDWARE: ARQUITETURA E ORGANIZAO DE COMPUTADORES..............................29
3.1 O modelo de Von Neumann .................................................................................29
3.2 Detalhes internos da CPU ..................................................................................31
3.3 Memrias .........................................................................................................32
3.4 Registradores ...................................................................................................34
3.5 Memria CACHE ................................................................................................34
3.6 Memria principal .............................................................................................35
3.7 Memria secundria ..........................................................................................35
Atividades .............................................................................................................36
4 SOFTWARE .............................................................................................................39
4.1 Conceito de Software .........................................................................................39
4.1 Classicao de Softwares Bsicos ...................................................................40
4.2 Classicao de Softwares Aplicativos ..............................................................41
4.3 Linguagem de Programao ..............................................................................42
4.4 Algoritmo ..........................................................................................................46
Atividade .............................................................................................................48
5 SISTEMA DE NUMERAO .......................................................................................51
5.1 Converso de bases ...........................................................................................53
5.2 Nmeros binrios com sinal ...............................................................................57
5.3 Soma binria .....................................................................................................57
5.4 Subtrao binria ..............................................................................................58
Atividades .............................................................................................................60
Introdua a computao.indd 7 18/7/2013 18:00:47
Process Black
6 LGICA DIGITAL ......................................................................................................63
6.1 Portas e operaes lgicas ................................................................................63
6.2 lgebra booleana ..............................................................................................67
6.3 Equivalncia de circuitos ...................................................................................68
6.4 Proriedades da lgebra booleana .......................................................................69
Atividades .............................................................................................................70
7 CIRCUITOS LGICOS ...............................................................................................73
7.1 Decodicador ....................................................................................................73
7.2 Multiplexador ....................................................................................................75
7.3 Comparador ......................................................................................................76
7.4 Somador ...........................................................................................................76
7.5 Subtrator ..........................................................................................................77
7.6 Unidade lgica e aritmtica (ULA) ......................................................................78
7.7 Clock .............................................................................................................79
7.8 Unidade bsica de memria ...............................................................................80
Atividades .............................................................................................................81
8 PROJETO DE CIRCUITOS LGICOS ............................................................................85
8.1 Construindo um circuito atravs de uma expresso booleana ...............................87
8.2 Exibindo informaes ........................................................................................87
8.3 Construindo uma memria de 2 bits ....................................................................88
8.4 Construindo um contador de 2 bits .....................................................................89
Atividades .............................................................................................................89
9 INTRODUO LINGUAGEM DE MQUINA ................................................................93
9.1 Simulador SMS .................................................................................................95
9.2 Perifricos simulados ........................................................................................96
9.3 Registradores ...................................................................................................97
9.4 Conjunto de instrues .....................................................................................97
Atividades ...........................................................................................................101
10 EXECUO DE PROGRAMAS ..................................................................................105
10.1 Controles bsicos de repetio .......................................................................103
10.2 Manipulando dados na memria .....................................................................105
10.3 Lendo dados do teclado .................................................................................107
10.4 Trabalhando com o perifrico semforo ..........................................................109
10.5 Trabalhando com o perifrico elevador ............................................................110
Atividades ...........................................................................................................113
Introdua a computao.indd 8 18/7/2013 18:00:47
Process Black
1
A ERA DA INFORMAO/CONHECIMENTO
Anderson Ricardo Yanzer Cabral
Este captulo tem por objetivo contextualizar o aluno quanto importncia da
informao no processo de desenvolvimento e evoluo da informtica e dos
principais recursos computacionais disponveis nas ltimas dcadas. Passamos
pela chamada era da informao e estamos, para muitos autores e pensadores,
na era do conhecimento. A busca pela informao e pelo conhecimento um dos
fatores relevantes para os avanos tecnolgicos.
O livro-texto desta disciplina est organizado em oito captulos, subdivididos em
unidades que seguem uma sequncia indica para um melhor aproveitamento da
disciplina. Ao final de cada captulo so apresentadas atividades para consolidao
de alguns pontos da disciplina.
importante que, ao longo de suas leituras e estudos, voc faa apontamentos
pessoais que possam ser teis para a realizao das atividades solicitadas ao final
de cada captulo. Podem ser utilizadas ferramentas colaborativas para organizar
os conhecimentos desenvolvidos na disciplina.
As referncias bibliogrficas sugerem obras de autores que fundamentam
teoricamente os estudos realizados e oferecem possibilidades de aprofundamento
com leituras complementares. Existem muitos websites, blogs e slides disponveis
na internet com material relevante e complementar para esta disciplina.
1.1 Perfil Profissional
Antes de apresentar os contedos do captulo sobre informao e conhecimento,
ser apresentado o perfil do profissional de informtica, de acordo com o projeto
pedaggico do curso, baseado nas demandas do mercado de trabalho.
Introdua a computao.indd 9 18/7/2013 18:00:47
Process Black
10
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Este perfil composto por:
Habilidades pessoais: pensamento sistmico; capacidade de resoluo
de problemas; capacidade de inovar; pensamento crtico; anlise de risco;
disciplina pessoal; persistncia; curiosidade; capacidade de autoaprendizado
e abertura s mudanas.
Habilidades interpessoais: trabalho colaborativo; capacidade de comunicao
e capacidade para resoluo conjunta de problemas.
Conhecimentos tcnico cientcos: abstrao, representao e organizao da
informao; arquitetura de sistemas empresariais; conceitos de distribuio da
informao em sistemas; dinmica de mudanas; uso e desenvolvimento de
ferramentas e sistemas computacionais.
Alm de apresentar o perfil profissional desejado, que tambm apontado por
empresrios da rea como o ideal, tambm apontamos algumas dicas de como
aproveitar melhor o seu curso (MAR et al. 2006):
Nade ou afunde
O meu sucesso acadmico e, por conseguinte prossional, determinado
basicamente por mim (estudante);
A Universidade me proporcionar a oportunidade, mas depende de
mim aproveit-la.
Leia e tambm aprenda sozinho
O conhecimento tambm deve ser buscado atravs de leituras em livros,
artigos e revistas especializadas;
Um dos problemas dos estudantes atuais a supercialidade nas
leituras, portanto use o tempo necessrio para entender o que foi
lido.
Ensine o seu mestre
Eu gostei muito deste conceito... Pois v luta e aprenda mais sobre
ele, para depois debater com o seu professor, com certeza ele car
lisonjeado.
E ainda...
So importantes as experincias em estgios e trabalhos de pesquisa e as
redes de contatos que so construdas entre colegas e professores.
Introdua a computao.indd 10 18/7/2013 18:00:47
Process Black
11
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Aproveite o conhecimento a sua disposio, a internet possui muito
lixo mas tambm possui muito conhecimento com alta qualidade.
Faa cursos de extenso e capacitaes que o tornaro diferenciado no
mercado de trabalho.
O ambiente acadmico propcio para cultivar amizades e o
companheirismo entre colegas e professores.
V a congressos, participe de eventos e de palestras de empresas
renomadas e especializadas.
Estude ingls!
Aps concluir o seu curso, no esquea que este foi s o comeo de uma grande
caminhada, portanto:
Batalhe por um excelente emprego na rea em empresas privadas, pois o
mercado de TI est altamente aquecido e com muitas oportunidades.
Desenvolva o seu esprito empreendedor e monte sua prpria empresa, existem
muitas oportunidades para startups.
D continuidade sua carreira acadmica (especializao, mestrado, doutorado)
e torne-se um pesquisador.
Mantenha-se atualizado com as novas tecnologias, elas surgem a uma
velocidade cada vez maior.
Troque de emprego, se for preciso, mas cuidado para no queimar o lme
no mercado cando trocando a todo momento de emprego.
Permanea sempre empregvel.
1.2 A era da Informao/Conhecimento
Muitos livros e artigos nas ltimas dcadas apontaram que estvamos vivendo
a chamada era da informao, mas no incio da dcada de 90 muitos autores
comearam a reverenciar o momento como a era do conhecimento. Ultimamente,
alguns autores apontam que estamos vivendo a era da inovao. Todos estes
elementos, informao, conhecimento e inovao, esto associados evoluo
tecnolgica. A busca pela informao acompanha o homem desde os seus
primrdios e a tecnologia tem sido um aliado crucial.
Desta forma, percebemos que a informtica e os recursos computacionais avanam
para prover, em maior quantidade e qualidade, mais informao e conhecimento
e, a inovao desempenha um papel importante neste cenrio.
Introdua a computao.indd 11 18/7/2013 18:00:47
Process Black
12
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Para uma melhor compreenso deste conceitos, abaixo apresentamos as suas
definies.
Dado
Consiste em um fato bruto (nome de um funcionrio, nmero de matrcula,
cdigo de um produto, etc.), ou suas representaes (imagens, sons, nmeros,
etc.)
Dados so materiais brutos sem ao que precisam ser manipulados e colocados
em um contexto compreensivo.

Informao
A informao um conceito central na rea de Sistemas de informao,
o recurso mais valioso e importante nas organizaes na sociedade atual, a
sociedade da informao.
Conceitos associados informao:
Dado
Conhecimento
Competncia
uma coleo de fatos organizados de forma a possuir um valor adicional aos
fatos em si. Em outras palavras, so dados concatenados, que passaram por
um processo de transformao, cuja forma e contedo so apropriados para
um uso especco.

Conhecimento
Implica estar ciente e ter o entendimento de um conjunto de informaes e
como estas informaes podem ser teis para suportar determinado processo
ou tarefa, envolvendo uma combinao de instintos, ideias, informaes,
regras e procedimentos que guiam aes e decises. O conhecimento uma
informao valiosa da mente humana, que inclui reexo, sntese e contexto.
difcil de estruturar, de capturar em computadores, normalmente tcito
(no explcito) e sua transferncia complexa.
Introdua a computao.indd 12 18/7/2013 18:00:47
Process Black
13
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Associado aos conceitos de dado, informao e conhecimento, temos o conceito
de competncia, que neste contexto, pode ser observado como:
O processo contnuo e articulado de formao e desenvolvimento de
conhecimentos, habilidades e atitudes de gestores a partir da interao com
outras pessoas no ambiente de trabalho, tendo em vista o aprimoramento de
sua capacitao.
A capacidade de mobilizar, integrar e colocar em ao conhecimentos,
habilidades e formas de atuar a m de atingir ou superar desempenhos
congurados na misso da empresa e da rea
A Figura 1 ilustra a relao entre estes conceitos.
Figura 1 Relao dado, conhecimento e informao
O homem sempre buscou na informao uma forma de diferenciao e vantagem
competitiva. Isso vale para negcios, guerras, luta pelo poder, desenvolvimento
social, econmico e at pessoal. A informao sempre desempenhou um papel
importante na tomada de decises, que como vimos, est associado ao conceito
de competncia. A evoluo da informtica est diretamente associada busca da
melhor gesto da informao.
Para Pierre Fayard (2000), que trata do tema informao e comunicao em
estratgia, Informar-se significa direcionar um olhar panormico a uma ateno
contnua e focalizada em objetos delimitados, para compreender, situar, prever e
saber onde, quando e como agir conforme os interesses.
Figura 2 Dado e informao
Introdua a computao.indd 13 18/7/2013 18:00:47
Process Black
14
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Figura 3 O que fazemos com a informao
A informao possui uma srie de caractersticas que determinam seu valor para
a organizao ou processo em anlise:
Precisa: sem erros
Completa: contm todos os fatos relevantes no processo em anlise
Econmica: o seu custo para ser gerada
Flexvel: armazenada de forma a ser utilizada em diversos processo
Convel: depende dos dados de origem e dos mtodos de coleta
Relevante: so importantes para os tomadores de deciso
Clara: simples, normalmente informaes complexas no so teis aos
tomadores de deciso
Veloz: entregue quando necessria
Verificvel: deve permitir verificao pelo tomador de deciso quando
necessrio
Acessvel: facilmente acessvel por usurios autorizados no formato e momento
certo
Segura: acessada somente por usurios autorizados

Introdua a computao.indd 14 18/7/2013 18:00:48
Process Black
15
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Figura 4 A era da informao
Figura 5 Definio de informtica
Este primeiro captulo teve por objetivo apresentar aspectos gerais do perfil de
um profissional de informtica e os desafios de um estudante desta rea. Tambm
foram apresentados os conceitos de dados, informao e conhecimento, associando
a busca do homem pela informao e a relao que esta possui com os avanos
da tecnologia.
Introdua a computao.indd 15 18/7/2013 18:00:48
Process Black
16
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Atividades
1) Dos itens a seguir, quais poderiam ser classicados como dados
a) Idade
b) relao de produtos mais vendidos
c) preo
d) relao das pessoas acima de 60 anos
e) lista de produtos
2) Dos itens a seguir, quais poderiam ser classicados como informao
a) Procedimentos de como comprar os melhores produtos
b) relao de produtos mais comprados
c) peso
d) relao dos funcionrios mais antigos
e) lista de produtos mais caros
3) Dos itens a seguir, quais esto associados ao conceito de conhecimento
a) Procedimentos de como comprar os melhores produtos
b) relao de produtos que esto em estoque
c) o que fazer quando o computador acusa erro de memria
d) nome do funcionrio
e) lista de produtos mais baratos
4) Um hacker descobriu uma falha de segurana e invadiu o Internet Banking
do BB. Este deve pagar por esta ao como se fosse um crime?
( ) verdadeiro
( ) Falso
5) A empresa tem o direito de vasculhar os e-mails e arquivos dos empregados?
uma vez que estes assinaram termo de compromisso de utilizar os equipamentos
somente para ns prossionais.
( ) verdadeiro
( ) Falso
Introdua a computao.indd 16 18/7/2013 18:00:48
Process Black
17
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Referncias Bibliogrficas
Bsica
CAPRON, H. L.; JOHNSON, J. A. Introduo Informtica. So Paulo: Pearson, 2004.
FAYARD, Pierre. O jogo da interao: Informao e Comunicao em Estratgia. Caxias do Sul:
EDUCS, 2000.
Stallings, William. Arquitetura e organizao de Computadores. So Paulo: Pearson Pratice Hall,
2010.
WEBER, R. F. Fundamentos de Arquitetura de Computadores. Porto Alegre: Sagra-
Luzzatto, 2000.
Complementar
AUDY, Jorge Nicolas; ANDRADE, Gilberto Keller; CIDRAL, Alexandre. Fundamentos de
Sistemas de Informao. Porto Alegre: Bookman, 2005.
BROOKSHEAR, J. Glenn. Cincia da computao: uma viso abrangente. Porto Alegre: Bookman,
2005.
MARCHIORO, Gilberto; PETRY, Adriano; ZANUZ, Adriano. Caderno Universitrio:
Introduo Computao. Canoas: Editora da ULBRA, 2006.
GUIMARES, ngelo de Moura. Introduo Cincia da Computao. Rio de Janeiro: LTC, 2001.
MONTEIRO, Mrio Antonio. Introduo Organizao de Computadores. Rio de Janeiro: LTC,
2002.
TANENBAUM, A. S. Organizao Estruturada de Computadores. 4. ed. Rio de Janeiro: LTC,
2001.
TORRES, G. Curso Completo de Hardware. 4. ed. Rio de Janeiro: Axcel Books, 2001.
VELLOSO, Fernando de Castro. Informtica 5. ed. Rio de Janeiro: Campus, 2004.
Brookshear, J. Glenn. Cincia da computao: uma viso abrangente. Porto Alegre: Bookman, 2005.
Gabarito
1) a, c
2) b, d, e
3) a, c
4) v
5) v
Introdua a computao.indd 17 18/7/2013 18:00:49
Process Black
18
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Introdua a computao.indd 18 18/7/2013 18:00:49
Process Black
2
HISTRICO DOS COMPUTADORES
Anderson Ricardo Yanzer Cabral
Este captulo tem por objetivo contextualizar o aluno quanto ao desenvolvimento
e evoluo dos computadores desde o seu surgimento. Esta contextualizao
possibilita verificar as origens dos sistemas computacionais e a velocidade e a escala
de evoluo dos mesmos. Alguns recursos computacionais, por exemplo, dobram a
sua capacidade (processamento ou armazenamento) em perodos de dezoito meses.
Entendendo o histrico e evoluo dos sistemas computacionais, podemos ter uma
noo da dinmica e da velocidade dos avanos nas tecnologias da informao e
comunicao (TIC) e a sua influncia na vida das pessoas e das corporaes.
2.1 Histrico dos Computadores
A necessidade de computar (calcular, contar, avaliar, etc.) pelo homem, vem desde
os seus primrdios, pois est associada s necessidades bsicas da raa humana.
Talvez a mais primitiva esteja associada necessidade do homem contar e calcular
os mais variados tipos de objetos e recursos.
A capacidade do ser humano de calcular quantidades nos mais variados modos,
foi uma das descobertas que possibilitou o desenvolvimento da matemtica e da
lgica. O desenvolvimento da tecnologia da computao foi resultado da unio
de vrias reas do conhecimento humano, dentre os destaques podemos citar: a
matemtica, a eletrnica digital, a lgica, entre outras.
Na regio do mediterrneo surgiu o alfabeto e o baco. O baco foi um dos
primeiros mecanismos para contar e realizar clculos com uma certa automao.
Quanto a este invento, podemos apontar que:
Era usado nas civilizaes chinesa, hindu e romana.
Composto de prolas que se movimentando sobre hastes.
Introdua a computao.indd 19 18/7/2013 18:00:49
Process Black
20
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Permite representar nmeros (memria).
Usado para efetuar adies e subtraes.
Figura 1 baco
Os Bastes de Neper, tambm foram dispositivos inventados para auxiliar a
calcular de forma automatizada. Quanto a estes sabe-se que:
Foi inventado por John Neper no incio do sculo XVII (1615).
Criado para auxiliar a multiplicao.
Composto de 10 casas divididas por uma diagonal contendo unidades e
dezenas do produto.
Foram utilizados por mais de 200 anos.
Figura 2 - Bastes de Neper
Introdua a computao.indd 20 18/7/2013 18:00:49
Process Black
21
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
A Pascaline foi considerada a Primeira mquina de calcular e foi criada por Blaise
Pascal em 1642. Ela consistia de um conjunto de rodas dentadas e engrenadas entre
si e essas rodas representavam potncias de 10. Ela realizava adio e subtrao .
Figura 3 - Pascaline
Gottfried Wilhelm von Leibniz (1646-1716), um advogado alemo, construiu uma
verso melhorada da Pascaline, a Calculadora de Leibniz, que fazia as quatro
operaes e foi utilizada na prtica.
Figura 4 Calculadora de Leibniz
Outro equipamento que obteve sucesso no processo de automatizao de um
processo, que utilizava uma pr-configurao de entrada, foi Tear Mecnico de
Jaquard, que era uma mquina de tecer automtica, criada por Joseph Marie
Jacquard em 1806. Ela utilizava uma leitora de cartes perfurados e obteve um
grande sucesso, com 10000 mquinas em servio em 1812. Esta mquina era capaz
de produzir tecidos com desenhos bem elaborados e intrincados. Foi tamanho o
sucesso que Jacquard foi quase morto quando levou o tear para a cidade francesa
de Lyon, pois as pessoas tinham medo de perder o emprego com este tear
automatizado.
Introdua a computao.indd 21 18/7/2013 18:00:50
Process Black
22
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Figura 5 Tear mecnico de Jaquard
Em 1820, surgiu o Arithmometer, que foi a primeira calculadora produzida em
escala industrial por um francs chamado Charles Xavior Thomas.
Figura 6 Arithomometer
Charles Babbage em 1833 criou a sua Mquina Analtica, e esta era composta
de um moinho (unidade de clculo), um tambor (memria) e um dispositivo de
controle. Ela podia ser programada com cartes perfurados (cartes de operaes,
cartes de variveis e cartes de nmeros). Este invento tinha uma concepo
muito prxima da de um computador atual. Por algum tempo, o governo britnico
financiou Babbage para construir a sua inveno.
Figura 7 Mquina analtica de Babbage
Introdua a computao.indd 22 18/7/2013 18:00:50
Process Black
23
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Babbage teve muitas dificuldades com os recursos para a manufatura de
componentes mecnicos com a preciso necessria, no possuindo equipamentos
para a construo adequada dos seus projetos. O governo ingls financiou o
comeo do projeto, mas aps um perodo suspendeu o financiamento e Babbage
utilizou a fortuna da famlia at a falncia, sem que pudessem concluir o projeto
e a calculadora analtica nunca foi totalmente construda.
As mquinas do sculo XIX usavam a base binria (0 a 9), s que isso provocava
muitas dificuldades para representar um dgito decimal em componentes
eletrnicos. O matemtico ingls George Boole (1815-1864) publicou em 1854 os
princpios da lgica booleana, onde as variveis assumem apenas valores 0 e 1
(verdadeiro e falso), e esta concepo de representao de valores passou a ser
utilizada a partir do incio do sculo XX, sendo at hoje a base de representao
de valores para os sistemas digitais.
O uso da energia eltrica determina um marco na concepo de novos dispositivos
o telgrafo de Morse (Samuel Morse, 1837) um equipamento pioneiro no sistema
de comunicao distncia com uso de sinais eltricos.
Figura 8 Telgrafo de Morse
Por volta de 1890, nos EUA, Herman Hollerith (1860-1929) promoveu uma grande
evoluo na maneira de se processar os dados obtidos atravs dos censos da poca.
No censo de 1880, de forma manual, os dados levaram quase oito anos para serem
compilados. No censo de 1890 os dados foram processados em menos de trs anos,
com o uso de uma mquina de perfurar cartes e mquinas de tabular e ordenar,
criadas por Hollerith e sua equipe. Os dados obtidos sobre os indivduos eram
armazenados em cartes, por meio de perfuraes em locais especficos do carto.
Nas mquinas de tabular, um pino passava pelo furo e chegava a uma jarra de
mercrio, fechando os contatos de um circuito eltrico e causando um incremento
de 1 (soma 1), em um contador mecnico. Hollerith fundou anos depois uma
companhia para produzir mquinas de tabulao, que em 1924, veio a se chamar IBM.
Introdua a computao.indd 23 18/7/2013 18:00:51
Process Black
24
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Figura 9 Mquina estatstica de Hollerith
O Z-1 foi o primeiro computador eletromecnico e usava rels e foi construdo em
1936 pelo alemo Konrad Zuse, que tentou vend-lo ao governo alemo para uso
militar, que no se interessaram pela mquina.
Com o advento da II Guerra Mundial, a necessidade por vantagens competitivas
fez com as pesquisas aumentassem nessa rea. Nos Estados Unidos a Marinha,
em conjunto com a Universidade de Harvard e a IBM, construram o Mark I em
1944. Este equipamento Utilizava princpios inspirados pelos trabalhos de Babbage,
utilizava milhares de rels e ocupava 120 m
3
e fazia um barulho infernal. Uma
multiplicao de nmeros de 10 dgitos levava 3 segundos para ser efetuada.
Em segredo, o exrcito americano tambm desenvolvia seu computador, o ENIAC,
que usava apenas vlvulas e tinha por objetivo calcular as trajetrias de msseis com
maior preciso. O ENIAC: Eletronic Numeric Integrator And Calculator possuia
18.000 vlvulas, conseguia
fazer 500 multiplicaes
por segundo, porm s
ficou pronto em 1946,
meses aps o final da
segunda guerra mundial.

Figura 10 MARK I
Introdua a computao.indd 24 18/7/2013 18:00:51
Process Black
25
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Figura 11 ENIAC
O matemtico hngaro John von Neumann (1903-1957) formalizou o projeto lgico
de um computador. Von Neumann props que as instrues fossem armazenadas
em um dispositivo de memria do computador. At este projeto elas eram lidas
de cartes perfurados e executadas em sequncia. Armazen-las as instrues em
um tipo de memria, para depois execut-las, tornaria o computador mais rpido,
pois as instrues seriam obtidas e transferidas com muito mais rapidez (uso de
dispositivos de memria eletrnica). A quase totalidade dos computadores de hoje
em dia ainda est baseada no modelo proposto por Von Neumann.
Esse modelo define um computador sequencial digital, onde o processamento dos
dados feito passo a passo, caracterizando um comportamento determinstico (ou
seja, os mesmos dados de entrada produzem sempre a mesma resposta), que um
dos princpios bsicos da computao.
At a dcada de 50 os poucos computadores que existiam, eram quase que
exclusivos de projetos militares ou grandes institutos de pesquisa associados
rgos governamentais. Na dcada de 60 os computadores comeam a ter apelo
comercial, para uso em grandes corporaes e o computador que melhor representa
este marco o IBM System 360. Ele representou a guinada para computadores
mais poderosos e baratos e utilizava transistores e memria de ncleo magntico.
Aceitava uma grande variedade de perifricos e consolidou a posio de lder
da IBM que, se mantm at os dias atuais, uma das principais empresas de
tecnologia.
Os computadores da primeira gerao usavam vlvulas eletrnicas, quilmetros
de fios, eram lentos, enormes e esquentavam muito, sendo um dos principais
computadores desta gerao o UNIVAC.
Introdua a computao.indd 25 18/7/2013 18:00:52
Process Black
26
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
A segunda gerao substituiu as vlvulas eletrnicas por transistores e os fios
de ligao por circuitos impressos. Isso tornou os computadores mais rpidos,
menores e de custo mais baixo. A terceira gerao foi construda com circuitos
integrados, proporcionando maior compactao, reduo dos custos e velocidade
de processamento da ordem de microsegundos e tambm marcada pelo incio da
utilizao de avanados sistemas operacionais. A quarta gerao caracterizada por
um aperfeioamento da tecnologia j existente, proporcionando uma otimizao
da mquina para os problemas do usurio, maior grau de miniaturizao,
confiabilidade e velocidade maior, j da ordem de nanosegundos. A quinta gerao
iniciou com as arquiteturas avanadas e linguagens de programao orientadas
a objetos.
O termo quinta gerao foi criado pelos japoneses para descrever os potentes
computadores inteligentes que queriam construir em meados da dcada de
1990. Posteriormente, o termo passou a envolver elementos de diversas reas
de pesquisa relacionadas inteligncia computacional: inteligncia artificial,
sistemas especialistas e linguagem natural.
Mas o verdadeiro foco dessa ininterrupta quinta gerao a conectividade, o macio
esforo da indstria para permitir aos usurios conectarem seus computadores a
outros computadores. O conceito de supervia da informao capturou a imaginao
tanto de profissionais da computao como de usurios comuns. O advento da
internet e dos dispositivos mveis, tende a termos a unificao de outros tipos de
dispositivos que permitem a comunicao e possuem alto poder de processamento,
e nos dias atuais, o melhor exemplo so os smartphones.
Atividade
Pesquisa na internet sobre as novas tendncias computacionais relacionadas
nanotecnologia.
Exerccios
1) A arquitetura proposta por Von Neumann ainda utilizada pelos computadores
at os dias atuais?
( ) Verdadeiro
( ) Falso
Introdua a computao.indd 26 18/7/2013 18:00:53
Process Black
27
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
2) O primeiro equipamento de comunicao em grande escala a utilizar energia
eltrica foi:
( ) UNIVAC
( ) MARK III
( ) Telgrafo de Morse
( ) IBM 360
( ) Nenhuma resposta correta
3) O que aproximou o Tear de Jaquard do conceito de computao?
( ) produzir desenhos elaborados
( ) utilizar eletricidade
( ) utilizar cartes como entrada de informaes
( ) utilizar mecanismos de mecnica precisos
( ) Nenhuma resposta correta
4) Qual dos computadores abaixo foi o primeiro a obter sucesso comercial:
( ) Apple II
( ) UNIVAC
( ) MARK I
( ) IBM System 360
( ) Nenhuma resposta correta
5) O computador ENIAC foi construdo com o propsito de:
( ) Realizar censo de cidados
( ) Clculos meteorolgicos
( ) Clculo de trajetria de msseis
( ) Automao industrial
( ) Nenhuma resposta correta
Introdua a computao.indd 27 18/7/2013 18:00:53
Process Black
28
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Referncias Bibliogrficas
Bsica
STALLINGS, William. Arquitetura e organizao de Computadores. So Paulo: Pearson Pratice
Hall, 2010.
WEBER, R. F. Fundamentos de Arquitetura de Computadores. Porto Alegre: Sagra-Luzzato,
2000.
Complementar
BROOKSHEAR, J. Glenn. Cincia da computao: uma viso abrangente. Porto Alegre: Bookman,
2005.
MARCHIORO, Gilberto; PETRY, Adriano; ZANUZ, Adriano. Caderno Universitrio: introduo
Computao. Canoas: Editora da ULBRA, 2006.
TANENBAUM, A. S. Organizao Estruturada de Computadores. 4. ed. Rio de Janeiro: LTC,
2001.
VELLOSO, Fernando de Castro. Informtica 5. ed. Rio de Janeiro: Campus, 2004.
Gabarito
1) Verdadeiro,
2) Telgrafo de Morse;
3) Utilizar cartes como entrada de informaes;
4) IBM System 360 ;
5) Clculo de trajetria de msseis
Introdua a computao.indd 28 18/7/2013 18:00:53
Process Black
3
HARDWARE: ARQUITETURA
E ORGANIZAO DE COMPUTADORES
Mauricio da Silva Escobar
Um computador digital composto por diversos componentes eletrnicos que
realizam funes especializadas.
A arquitetura (ou modelo) de von Neumann, concebido em 1946, uma das
arquiteturas mais utilizadas como base para o projeto de computadores digitais.
O termo arquitetura nesse caso, pode ser visto inicialmente como uma forma de
organizar os componentes internos de um computador.
Atualmente, a maioria dos computadores modernos possuem o mesmo esquema
bsico, que compreende:
Memria,
CPU (Central Processing Unit), e,
Dispositivos de Entrada e Sada (E/S).
3.1 O modelo de Von Neumann
No modelo de Von Neumann, a memria enderevel, isto , ela organizada
em diversas posies e cada posio possui um endereo bem definido.
Em um computador, a memria utilizada para armazenar instrues e dados.
Um conjunto de comandos caracteriza uma aplicao, como por exemplo, o seu
navegador, o seu editor de textos. Um comando, no nvel da mquina, corresponde
a execuo de uma tarefa especfica, como por exemplo, somar dois nmeros.
Introdua a computao.indd 29 18/7/2013 18:00:53
Process Black
30
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
A figura 1 ilustra a arquitetura bsica do modelo Von Neumann.
Figura 1: modelo geral da arquitetura de Von Neumann.
A CPU a unidade central em um computador. Ela responsvel por comandar a
busca de instrues e dados da memria. Assim como comentado anteriormente,
as instrues so comandos que sero executados na CPU e os dados so as
informaes que sero processadas por essas instrues.
Alm buscar os dados, a CPU capaz de manipular esses dados gerando novas
informaes, que tambm so armazenadas na memria enquanto um programa
estiver ativo.
A CPU tambm capaz de processar novas dados oriundos dos dispositivos
de entrada e sada. Os dispositivos de entrada so equipamentos ou perifricos
capazes de alimentar um computador com dados. Os exemplos mais comuns de
dispositivos de entrada so o teclado e o mouse. Podemos citar tambm outros
exemplos mais sofisticados de entrada de dados, como por exemplo, um sensor
de temperatura, um leitor de cdigo de barras, dentre outros exemplos.
Os dispositivos de sada so equipamentos ou perifricos capazes de expor dados
para humanos ou outros computadores. O monitor um exemplo de dispositivo de
sada para humanos. Um dispositivo de infravermelho um exemplo de dispositivo
de sada que pode ser usado na comunicao entre computadores.
Por fim, de uma forma simples, o barramento pode ser visto como um canal de
comunicao que integra as partes de um computador. atravs do barramento
que todas as informaes trafegam entre os dispositivos de entrada e sada, a
memria e o processador.
Introdua a computao.indd 30 18/7/2013 18:00:53
Process Black
31
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
3.2 Detalhes internos da CPU
A CPU composta por vrias unidades bsicas que so:
A Unidade Lgica e Aritmtica (ULA)
Os Registradores (de dados e de controle)
A Unidade de Controle
A gura 2 ilustra a organizao interna da CPU:
Figura 2: organizao interna da CPU.
A ULA consiste de um conjunto de circuitos que realizam operaes sobre dados.
Essas operaes bsicas podem incluir: adio, subtrao e a manipulao de bits
(e e ou lgicos).
Os registradores so unidades de armazenamento construdos dentro da CPU. Os
registradores so acessados muito mais rapidamente que posies da memria
(chegando em alguns casos de 5 a 10 vezes mais rpidos).
Como normalmente os registradores so construdos logicamente dentro da
CPU, o nmero de registradores limitado, se comparado com a capacidade de
armazenamento de uma memria. Por esse motivo, os registradores so reservados
somente para as operaes e dados que o processador est utilizando em um dado
momento.
O processador comanda, constantemente, a cpia de valores entre os registradores
e a memria principal. Esses valores trafegam atravs dos barramentos que ligam
estes componentes.
A Unidade de Controle responsvel por controlar as vrias funes que uma
CPU pode executar. Ela formada de circuitos que realizam a busca de dados e
instrues a partir da memria principal. Ela tambm controla o fluxo de dados
dos registradores para a ULA e da ULA para os registradores.
Introdua a computao.indd 31 18/7/2013 18:00:54
Process Black
32
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Os caminhos que os dados seguem dentro da CPU formam a parte operativa.
Na parte operativa, os dados trafegam atravs dos barramentos a partir dos
registradores para a ULA e ento de volta para os registradores. Essa passagem
completa de dados chamada de ciclo da parte operativa.
3.3 Memrias
A memria um tipo de componente utilizado no projeto de computadores, cuja
funo armazenar informaes que sero manipuladas pelo sistema.
So diversos tipos de memria disponveis variando em velocidade, capacidade
de armazenamento e tecnologia de construo.
Um mesmo computador pode possuir diversos tipos de memria. Devido a grande
variedade de memrias e diferentes necessidades (como desempenho) ao projetar
um computador, praticamente impossvel projetar um computador com apenas
um tipo de memria.
Os diferentes tipos de memria presentes em um computador podem ser
organizadas hierarquicamente, seguindo uma relao Velocidade por Capacidade
de armazenamento.
A figura 3 ilustra a hierarquia dos diferentes tipos de memria que so comuns
em projeto de computadores.
Figura 3: organizao hierrquica dos tipos de memria.
Introdua a computao.indd 32 18/7/2013 18:00:54
Process Black
33
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
So diversos fatores que influenciam a produo de um determinado tipo de
memria.
O tempo de acesso de uma memria indica o tempo que a memria leva para
tornar uma informao disponvel, isto , desde o momento em que foi iniciada a
operao de acesso at que a informao tenha sido efetivamente transferida para
seu destino. Esses valores de transferncia variam de acordo com o tipo de circuito
utilizado no projeto da memria.
A capacidade refere-se quantidade de informao que pode ser armazenada em
uma memria. A unidade mais comum utilizada o byte. Dependendo do tamanho
da memria, isto , de sua capacidade, utiliza-se valores numricos simplificados,
atravs da incluso da nomenclatura M (mega), G (giga) ou T (tera).
Exemplos de nomenclatura para capacidades de diferentes tipos de memria:
A arquitetura x86 possui um registrador chamado EAX que possui 32 bits de
capacidade.
Um CD-ROM possui a capacidade de 700 MB (mega bytes).
Um DVD-ROM possui a capacidade de 4,7 GB (giga bytes).
Um disco rgido (HD hard disk ou sua variao HDD hard disk drive) possui
a capacidade de 1,5 TB (tera bytes).
A volatilidade indica se a memria mantm as informaes nela armazenadas sem
o fornecimento de energia. A memria voltil aquela que perde a informao
quando o equipamento desligado, por exemplo, em um computador desktop
tradicional, tudo que est na memria principal perdido caso o computador seja
desligado. Os registradores tambm so exemplos de memrias volteis.
A memria no voltil capaz de manter armazenadas informaes mesmo sem o
fornecimento de energia. Por exemplo, um pen drive e um disco rgido so exemplos
de memrias no volteis.
Por fim, a tecnologia de fabricao e o custo so aspectos considerveis no projeto
de memrias. O custo est diretamente associado qualidade dos materiais
utilizados que compreendem, por exemplo, nos condutores utilizados, nos
materiais magnticos, dentre outros tipos de componentes. Em geral, tratando-se
de memrias, quanto menor o componente (miniaturizao), mais avanada deve
ser a tecnologia de fabricao e de maior qualidade devem ser os materiais.
Alm dos materiais utilizados, o tamanho da memria influencia diretamente no
custo. O custo tende a elevar-se medida que a capacidade de armazenamento
aumenta.
Introdua a computao.indd 33 18/7/2013 18:00:54
Process Black
34
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
3.4 Registradores
Os registradores so unidades lgicas capazes de armazenar um determinado
nmero de bits. Eles podem ser usados, por exemplo, para receberem (armazenar)
o resultado resultante de uma operao aritmtica realizada pela ULA.
A figura 4 ilustra o esquema de um registrador de 4 bits.
Figura 4: exemplo da estrutura de um registrador.
Os detalhes internos e funcionamento do clock ser abordado no captulo Circuitos
Lgicos Bsicos. Por enquanto voc precisa saber que o clock um tipo de sinal
(valor lgico) que determina quando uma informao deve ser escrita ou no, neste
caso, armazenada no registrador.
Alm do clock, o registrador ilustrado na figura possui quatro sinais de entrada e
quatro sinais de sada. Os sinais de entrada no registrador receber um valor a ser
armazenado no registrador. Os sinais de entrada sero utilizados pelo computador
para ler o valor que est armazenado no registrador.
3.5 Memria CACHE
Ao longo do tempo, os processadores tornaram-se mais rpidos que as memrias.
Sempre que o computador precisa fazer uma operao, ele deve buscar as
informaes na memria, armazenar nos registradores, realizar a operao, e,
devolver a informao para a memria.
Na tentativa de melhorar o desempenho, os processadores modernos incorporam
em seus projetos memria cache. Devido a proximidade (fsica) ao processador,
os dados em cache so acessados mais rapidamente se tivessem que serem obtidos
na memria principal. Dessa forma, os dados mais utilizados pelo sistema so
armazenados na memria cache at que no sejam mais necessrios.
Por fim, a memria cache possui um custo elevado em relao s demais
tecnologias de memrias, com exceo dos registradores. Memrias cache internas
ao processador so mais caras que as externas ao processador.
Introdua a computao.indd 34 18/7/2013 18:00:54
Process Black
35
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
3.6 Memria principal
A memria principal um dos principais componentes da arquitetura de von
Neumann. A memria principal a memria bsica de um sistema computacional.
nela que so armazenados os programas a serem executados pelo computador,
sendo cada programa (ou aplicaes) caracterizado como um conjunto de instrues
e dados.
Atualmente, o principal tipo de memria utilizado no projeto de computadores
o RAM, que significa em ingls Random Access Memory, ou Memria de
Acesso Remoto. A RAM um tipo de memria que permite a leitura e escrita de
informaes de forma simultnea.
A figura 5 ilustra o chip de uma memria RAM.
Figura 5: exemplo de uma placa de memria RAM.
3.7 Memria secundria
Na base da hierarquia das memrias encontram-se os tipos de memrias como
maior capacidade de armazenamento e de menor custo, em relao s memrias
j apresentadas.
Um computador pode possuir diversas unidades de memria secundria,
diretamente conectados ao computador para acesso, como por exemplo, um disco
rgido ou outros equipamentos que podem ser conectados pelo usurio quando
desejado, como por exemplo, os disquetes, que hoje em dia uma tecnologia
obsoleta, cartes de memria ou at mesmo um pen drive.
A figura 6 ilustra diferentes tipos de tecnologias de armazenamento secundrio.
Introdua a computao.indd 35 18/7/2013 18:00:54
Process Black
36
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Figura 6: dispositivos de armazenamento secundrio.
Referncias bibliogrficas
Hennessy, John L. Organizao e projeto de computadores : a interface hardware/sofware / John L.
Hennessy, David A. Paterson ; colaborao James R. Larus ; traduo Nery Machado Filho. 2.
ed. Rio de Janeiro : LTC, 2000. xxii, 551 p., il. (5)
Monteiro, Mario A. Introduo a organizao de computadores / Mario A. Monteiro. 3. ed. Rio
de Janeiro : LTC, 1996. 397 p., il.
Tanenbaum, Andrew S. Organizao estruturada de computadores / Andrew S. Tanenbaum ;
traduo Nery Machado Filho. 4. ed. Rio de Janeiro : LTC, 2001. 398 p., il. (3) Tanenbaum,
Andrew S. Organizao Estruturada de Computadores - 5 edio. (Biblioteca Virtual
Pearson)
Stallings, William. Arquitetura e Organizao de Computadores - 8 edio. (Biblioteca Virtual
Pearson)
Atividades
1) Sobre Registradores correto armar que:
I. Podem ser utilizados para armazenar o resultado de uma operao na
ULA.
II. A gravao dos dados de entrada determinada pelo sinal do clock.
III. Sua estrutura pode ser utilizada no projeto de uma Memria.
Assinale a alternativa correta:
a) Apenas a I est correta.
b) Apenas a I e II esto corretas.
c) Apenas a II e III esto corretas.
d) Todas as alternativas esto corretas.
Introdua a computao.indd 36 18/7/2013 18:00:55
Process Black
37
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
2) Sobre a memria principal, selecione a alternativa correta:
a) Seu estado mantido mesmo sem o fornecimento de energia ao
computador.
b) Serve para armazenar instrues e dados.
c) So utilizadas no projeto de registradores.
d) Suas posies no possuem endereo bem denido.
3) Segundo a arquitetura de Von Neumann, a estrutura interna da CPU composta por:
I. Unidade de Controle
II. Memria RAM
III. Unidade Lgica Aritmtica
Assinale a alternativa correta:
a) Apenas a I est correta.
b) Apenas a II est correta.
c) Apenas a I e II esto corretas.
d) Apenas a I e III esto corretas.
4) Desenhe a arquitetura de Von Neumann.
5) Qual a diferena entre a memria RAM e um disco rgido em relao
caracterstica volatilidade.
Gabarito
1) d
2) b
3) d

Introdua a computao.indd 37 18/7/2013 18:00:55
Process Black
38
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
4)
5) O disco rgido capaz de manter informaes nele previamente armazenadas
mesmo sem o fornecimento de energia. A memria RAM mantm as
informaes enquanto o computador ou equipamento estiver ligado. Se
estas informaes no forem posteriormente persistidas em uma unidade de
armazenamento secundrio, sero perdidas caso ocorra uma interrupo no
fornecimento de energia.
Introdua a computao.indd 38 18/7/2013 18:00:55
Process Black
4
SOFTWARE
Anderson Ricardo Yanzer Cabral
Este captulo tem por objetivo contextualizar o aluno quanto ao conceito, o histrico
e a evoluo do software. Nos primeiros computadores o conceito de programao
estava estritamente ligado ao hardware. A programao era diretamente em
componentes de hardware ou em linguagens de mquina. Com a evoluo
dos computadores houve tambm um grande salto da variedade e complexidade
dos softwares disponibilizados. Com o surgimento dos computadores pessoais o
salto de diversidade de softwares foi imenso, pois deixou-se de produzir software
somente para as aplicaes das empresas.
4.1 Conceito de Software
O Computador uma mquina que resolve problemas executando uma srie de
comandos.
cada comando Instruo
Um Programa (ou Software) um conjunto de instrues que descreve a maneira
de se realizar uma tarefa.
Dentre algumas definies do que um software, podemos apontar que uma
sequncia de instrues escritas (em linguagem especfica) para serem interpretadas
por computadores com o objetivo de executar tarefas pr-determinadas. Para a
computao, o software classificado como a parte lgica, cujo funcionamento
est associado a fornecer instrues para as operaes do hardware. O hardware
podemos entender como a parte fsica que constitui o computador, por exemplo,
a CPU, a memria e os dispositivos de entrada e sada de dados (teclado, mouse,
monitor, etc.).
Introdua a computao.indd 39 18/7/2013 18:00:55
Process Black
40
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Uma das principais formas de classificar os tipos de software dividi-los em:
Sofware Bsico: so programas que possuem como propsito controlar o
funcionamento do computador. Sem o sofware bsico, o computador no
pode ser utilizado, pois os demais sofwares no poderiam ser executados. O
sofware bsico responsvel pelo gerenciamento, funcionamento e execuo
de todos os programas, sendo constitudo de sistema operacional e alguns
programas utilitrios.
Sofware Aplicativo: so os programas que possuem como propsito oferecer
funcionalidades (aplicaes) ao usurio. Este tipo de sofware facilita a
utilizao do computador para realizao de tarefas dos usurios. So
constitudos de programas de uso geral ou programas desenvolvidos com
propsitos restritos.
4.1 Classificao de Softwares Bsicos
4.1.1 Sistema Operacional
Todo computador precisa de, no mnimo, um programa em execuo para
que o computador possa ser utilizado. Este programa chamado de sistema
operacional, que determina entre vrias tarefas, quais programas podem ser
executados, quando, e que recursos (como memria, CPU e dispositivos de E/S)
este poder utilizar.
O sistema operacional, tambm, fornece uma camada de abstrao sobre o hardware,
possibilitando que outros programas tenham acesso ao hardware do computador,
de forma transparente. Isso permite aos programadores escreverem programas sem
a necessidade de conhecerem especificidades de todos os dispositivos eletrnicos
do computador, como por exemplo, os discos e memria. Ou seja, um programa
editor de texto, por exemplo, no precisa se preocupar em como escrever um dado
no hard disk do computador, pois o sistema operacional ir realizar esta tarefa para
o editor de texto.
O sistema operacional composto por um conjunto de programas de controle
projetados para trabalhar com o hardware e com softwares aplicativos. As
funes bsicas de um sistema operacional so: gerenciamento de programas;
gerenciamento de discos; gerenciamento e distribuio de memria; tratamento e
controle de dispositivos de entrada e sada (E/S) e fornecer interfaces de interao
com o usurio.
Introdua a computao.indd 40 18/7/2013 18:00:56
Process Black
41
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Os tipos de sistemas operacionais podem, de uma maneira genrica, serem
classificados:
Quanto ao nmero de usurios:
- Mono Usurio: opera para somente um nico usurio de cada vez. Exemplo:
MSDOS
- Multiusurio: compartilha os recursos com mais de um usurio ao mesmo
tempo. Exemplo: Windows, Linux, Unix,...
Quanto execuo de programas
- Monotarefa: executa apenas uma tarefa de cada vez. Exemplo: MSDOS
- Multitarefa Cooperativa: capaz de executar diversas tarefas simultaneamente.
Exemplo: Windows 3.1
- Multitarefa Preemptiva: executa diversas tarefas ao mesmo tempo e, tambm,
permite a recuperao do controle, caso um aplicativo em execuo apresente
problemas. Exemplo: Linux, Windows 95 em diante, MAC OS 8 em diante.
Devido aos sistemas operacionais multitarefa, muitos computadores aparentam
para o usurio estarem executando vrios programas ao mesmo tempo. Na
realidade, a CPU executa as instrues de um programa por um curto perodo de
tempo (time slice) e, em seguida, troca para outro programa e executa algumas
de suas instrues. Esta troca, chamada de preempo, cria a iluso de que vrios
programas esto sendo executados simultaneamente. O que acontece que o
acesso CPU do computador (tempo) compartilhado entre os programas em
execuo. Este compartilhamento de tempo e normalmente controlado pelo sistema
operacional.
4.1.2 Programas Utilitrios
So tipos de programas que fornecem recursos (ferramentas) para auxiliar o usurio
e executar tarefas de manuteno do sistema operacional. Os programas utilitrios
esto, muitas vezes, includos com sistemas operacionais. Muitos utilitrios so
considerados essenciais, como: editor de texto (bsico), backup, antivrus, firewall,
desfragmentador, compactador, limpeza de disco, etc.
4.2 Classificao de Softwares Aplicativos
Os softwares aplicativos so todos aqueles que oferecerem funcionalidades
(aplicaes) teis ao usurio. Tambm, pode-se afirmar que so todos aqueles
que no so softwares bsicos. Estes podem ser divididos, por exemplo, em duas
categorias:
Introdua a computao.indd 41 18/7/2013 18:00:56
Process Black
42
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
- Horizontais: programas de uso geral que resolvem as necessidades de variados
tipos de usurios. Exemplo: editores de texto, planilhas eletrnicas, bancos de
dados, jogos, navegadores, editores de imagens, etc.
- Verticais: programas projetados para necessidades especcas de empresas
e esto associados a alguma regra de negcio. So aplicativos normalmente
customizados para determinada empresa, pois atende as especicidades
desta. Podem partir de solues simples, como cadastros bsicos comuns em
empresas, at sistemas complexos, como por exemplo, sistemas de gesto
integrada de diversos setores da empresa.
Outra forma de classificar software quanto ao tipo de licena. Considerando que
a maioria dos programas de computador tem direitos autorais protegidos, estas
licenas de software podem ser:
- Comercial: o usurio deve pagar pelo uso do sofware, existindo diversas
formas de como acordar este pagamento, entre a empresa fornecedora e o
usurio.
- Shareware: quando o usurio pode experimentar o sofware por um perodo
acordado, antes de comprar, se assim desejar.
- Freeware: o sofware livre de direitos autorais, o usurio pode usar
livremente, com a condio de que no poder vend-lo para obter lucro. Um
exemplo clssico desta categoria o Linux.
Opensource, GPL e GNU: uma distribuio livre, de cdigo-fonte aberto e
disponvel gratuitamente para download. O usurio tem total liberdade para fazer
suas prprias alteraes e posteriormente os desenvolvedores podero utilizar esse
cdigo no projeto seguindo o mesmo padro GPL (GNU Public License) que o
formato padro Open-source
Domnio Pblico: sem direitos de explorao comercial.
4.3 Linguagem de Programao
um conjunto de regras sintticas e semnticas usadas para definir um programa
de computador. uma linguagem artificial, criada para dizer ao computador o
que deve ser feito. Possui vocabulrio e conjunto de regras que o programador
deve conhecer.
Assim como os computadores, as linguagens evoluram e tambm foram
classificadas em geraes:
- Primeira Gerao: composta por linguagens que possuem estruturas de
controle aparentemente orientadas a mquina com nmeros binrios (0s e 1s).
Essa programao era extremamente trabalhosa, difcil, variava de computador
Introdua a computao.indd 42 18/7/2013 18:00:56
Process Black
43
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
para computador, os programas no eram muito complexos, mas difceis de
serem construdos. Essa programao era extremamente trabalhosa, difcil,
variava de computador para computador, os programas no eram muito
complexos, mas difceis de serem construdos;
- Segunda Gerao: baseada na Linguagem Assembly, chamada de linguagem
de baixo nvel por operar diretamente recursos de hardware. Linguagem
semelhante binria, mas o programador no necessitava conhecer linguagem
binria da mquina. A segunda gerao elaborou melhor e generalizou
diversas estruturas de controle das linguagens de primeira gerao. Uma das
grandes contribuies desta gerao foram suas estruturas de nomes, que eram
hierarquicamente aninhadas.
- Terceira Gerao: as linguagens comeam a operar com mais simplicidade
e ecincia. Uma linguagem tpica desta gerao a linguagem Pascal, que
tambm foi muito utilizada para ns didticos. A preocupao deixa de estar no
controla da mquina para passar para a aplicao. Deixa de existir a necessidade
de entendimento de detalhes de funcionamento do computador.
- Quarta Gerao: So linguagens no procedurais. Buscam a capacidade
de reutilizao de componentes para facilitar o trabalho de programao
e aumentar a ecincia na programao. Esta gerao essencialmente o
sinnimo para linguagens com abstrao de dados. A maioria das linguagens
de quarta gerao orientada a objetos.
Quinta gerao - Nesta gerao dada nfase para o paradigma funcional e
o paradigma lgico onde temos linguagens mais voltadas para a Inteligncia
artificial como as linguagens lgicas (Prolog) e para as linguagens funcionais
(Lisp).
A ACM (Association for Computing Machinery), que uma das principais
instituies norteadoras dos avanos na rea da computao tambm apresenta
um sistema de classificao:
Linguagens aplicativas, ou de aplicao
Linguagens concorrentes, distribudas e paralelas
Linguagens de uxo de dados
Linguagens de projeto
Linguagens extensveis
Linguagens de montagem e de macro
Linguagens de microprogramao
Linguagens no determinsticas
Introdua a computao.indd 43 18/7/2013 18:00:56
Process Black
44
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Linguagens no procedurais
Linguagens orientadas a objeto
Linguagens de aplicao especializada
Linguagens de altssimo nvel
Quadro 1: Exemplos de Linguagens de Programao. Fonte: MAR et al., 2006
Exemplos de Linguagens de Programao
Linguagem Origem do nome Ano Comentrio
ADA
Augusta ADA Byron
(Lady Lovelace)
1979
Derivada do Pascal, utilizada inicialmente
para fins militares.
ALGOL
ALGOrithmic
Language
1960
Primeira linguagem de programao
estruturada, utilizada principalmente na
resoluo de problemas matemticos.
APL
A Programming
Language
1961
Linguagem interpretada, utilizando
um grande conjunto de smbolos
especiais e sintaxe compacta. Utilizada
principalmente por matemticos.
BASIC
Beginners All-
Purpose Symbolic
Instruction Code
1965
Linguagem de programao de alto nvel
muito popular, frequentemente utilizada
por iniciantes na programao.
C
Sucessor da
Linguagem B dos
Laboratrios Bell
1972
Linguagem de programao compilada,
estruturada, normalmente utilizada
em muitos locais de trabalho uma vez
que seus programas so portveis entre
diversos tipos de computadores.
C++
Verso avanada
de C, desenvolvida
pelos laboratrios
ATT Bell.
1985
C++ utilizada em diversas reas, como
sistemas de contabilidade e finanas,
e projeto auxiliado por computador.
Suporta programao orientada a objetos.
COBOL
COmmon Business-
Oriented Language
1959
Linguagem de programao English-
like, enfatizando estruturas de dados.
Largamente utilizada no passado,
especialmente em negcios.
FORTH
FOuRTH-
Generation language
(4 GL)
1970
Interpretada, linguagem estruturada,
facilmente entendida. Permite muita
funcionalidade em espao limitado.
Fortran
FORmula
TRANslation
1954
Inicialmente projetada para uso cientfico
e de engenharia esta linguagem de alto
nvel compilada atualmente utilizada em
muitas reas. Introduz diversos conceitos
como variveis, instrues condicionais e
subrotinas compiladas separadamente.
Introdua a computao.indd 44 18/7/2013 18:00:56
Process Black
45
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Exemplos de Linguagens de Programao
Linguagem Origem do nome Ano Comentrio
HTML
HyperText Markup
Language
1989
Projetada para publicao de hipertextos
na internet.
JAVA
Desenvolvedores da
Sun beberam muito
caf (marca Java)
codificando esta
linguagem
1990
Originalmente desenvolvida para uso em
set-top boxes, transferida para a World
Wide Web em 1994.
LISP LISt Processing 1960
Uma linguagem de programao
orientada a listas, utilizada
principalmente para a manipulao de
listas de dados. Linguagem interpretada,
frequentemente utilizada em pesquisas
cientficas, considerada linguagem padro
para projetos de Inteligncia Artificial.
LOGO
Originada do Grego
logos, significando
palavra
1968
Linguagem de programao normalmente
utilizada por crianas. Prov um
ambiente simples de desenho e diversas
caractersticas de alto nvel de Lisp. Uso
educacional.
Modula-2
Linguagem
MODULAr,
projetada como
segunda fase do
Pascal (Niklaus
Wirth criou ambas)
1980
Linguagem que enfatiza programao
modular. Linguagem de alto nvel baseada
em Pascal, caracterizada pela falta de
funes padres e procedimentos.
Pascal
Blaise PASCAL,
matemtico e
inventor do primeiro
dispositivo de
computao
1971
Linguagem estruturada, compilada,
baseada em Algol. Adiciona tipos de
dados e estruturas com uma sintaxe
simplificada. Como a linguagem C, uma
linguagem padro de desenvolvimento em
microcomputadores.
PERL
Practical Extraction
and Report
Language
1988
uma linguagem de processamento de
textos que parece uma combinao de C e
diversos utilitrios de processamento de
textos Unix.
PILOT
Programmed
Inquiry, Language
Or Teaching
1969
Linguagem de programao utilizada
principalmente para a criao de
aplicaes para computer-aided instruction.
Contem uma sintaxe muito reduzida.
Introdua a computao.indd 45 18/7/2013 18:00:56
Process Black
46
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Exemplos de Linguagens de Programao
Linguagem Origem do nome Ano Comentrio
PL/1
Programming
Language One
1964
Projetada para combinar as caractersticas
chaves do Fortran, COBOL, e ALGOL,
uma linguagem de programao
complexa. Linguagem estruturada,
compilada e adaptada a multitarefa e
tratamento de erros, utilizada em alguns
ambientes acadmicos e de pesquisa.
SGML
Standard
Generalized Markup
Language
1986
Projetada como uma metalinguagem,
utilizada como um padro internacional
para a descrio de textos no formato
eletrnico marcado.
SQL
Structured Query
Language
1986
Projetado para a criao de bancos de
dados complexos e acesso a dados em
bancos relacionais.
VB Visual Basic 1990
utilizado na construo rpida de
aplicaes contendo interface grfica.
XML
Extensible Markup
Language
1977
Utilizado para a criao de documentos
estruturados e pginas internet; est
normalmente associado internet.
4.4 Algoritmo
uma sequncia finita e ordenada de instrues e sem ambiguidade de passos, que
levam resoluo de um dado problema. Algoritmos podem ser implementados
em vrias linguagens de programao.
Um algoritmo no representa, necessariamente, um programa de computador, e sim
os passos necessrios para realizar uma tarefa. Sua implementao pode ser feita
por um computador, por outro tipo de autmato ou mesmo por um ser humano.
O conjunto de instrues que compem um algoritmo no to rico quanto o
conjunto de instrues da linguagem humana. O computador tem apenas um
limitado nmero de instrues bem definidas.
Os passos dos algoritmos devem ser: simples, sem ambiguidade estarem em uma
ordem cuidadosamente definida. Como exemplo, vamos solucionar o problema
de Trocar a lmpada queimada com a ajuda de um algoritmo:
Um primeiro algoritmo:
1. Remova a lmpada
2. Coloque a nova lmpada
Introdua a computao.indd 46 18/7/2013 18:00:56
Process Black
47
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Um algoritmo mais refinado seria:
1. Posicione a escada debaixo da lmpada queimada
2. Suba at que a lmpada possa ser alcanada
3. Gire a lmpada no sentido anti-horrio at que se solte
4. Escolha uma nova lmpada de mesma potncia da queimada
5. Posicione a nova lmpada no soquete
6. Gire-a no sentido horrio at que ela se rme
7. Desa a escada
A Figura 1 ilustra um algoritmo bastante simples.
Figura 1 Exemplo de algoritmo
Introdua a computao.indd 47 18/7/2013 18:00:57
Process Black
48
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Tambm podemos representar o algoritmo diretamente em uma linguagem de
programao como no exemplo abaixo, onde o algoritmo implementado ir retornar
a soma de dois valores, recebidos por parmetro, na linguagem pascal:
f unct i on Soma_Doi s_Val or es( A, B: I nt eger ) : I nt eger ;
var Resul t : I nt eger ;
begi n
Resul t : = A + B;
Soma_Doi s_Val or es: = Resul t ;
end;
Atividade
- Localize sites onde podem ser baixados (download) sofwares e verique os
tipos de licena disponveis
- Pesquise o que uma App Store (Application Store)
Exerccios
1) um tipo de sofware bsico:
a) Editor de texto
b) Planilha Eletrnica
c) Sistema operacional
d) Folha de pagamento
e) nenhuma das respostas
2) um tipo de sofware aplicativo:
a) Programa de backup
b) Desfragmentador de disco
c) Sistema operacional
d) Folha de pagamento
e) nenhuma das respostas
Introdua a computao.indd 48 18/7/2013 18:00:57
Process Black
49
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
3) No funo do sistema operacional
a) Gerncia dos discos
b) Gerncia da memria
c) Gerncia de arquivos
d) Gerncia de dispositivos de E/S
e) Todas as respostas anteriores so funes do sistema operacional
4) Um sofware que permite que o usurio experimentar por um perodo acordado,
antes de comprar, um:
a) Freeware
b) Shareware
c) Comercial
d) Domnio Pblico
e ) nenhuma das respostas
5) Em relao gerao das linguagens de programao, pode-se afirmar
que quanto mais nova a gerao, menor a preocupao com aspectos dos
recursos de hardware, mais simples a linguagem e maior a preocupao com
a reutilizao de cdigo.
( ) verdadeiro
( ) Falso
Referncias Bibliogrficas
Bsica
ACM. Association for Computing Machinery: Advancing Compunting as a Science & Profession.
Capturado em htp://www.acm.org. Maio, 2013.
CAPRON, H. L.; JOHNSON, J. A. Introduo Informtica. So Paulo: Pearson, 2004.
MARCHIORO, Gilberto; PETRY, Adriano; ZANUZ, Adriano. Caderno Universitrio: Introduo
Computao. Canoas: Editora da ULBRA, 2006.
Introdua a computao.indd 49 18/7/2013 18:00:57
Process Black
50
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
STALLINGS, William. Arquitetura e organizao de Computadores. So Paulo: Pearson Pratice
Hall, 2010.
WEBER, R. F. Fundamentos de Arquitetura de Computadores. Porto Alegre: Sagra-Luzzato,
2000.
Complementar
BROOKSHEAR, J. Glenn. Cincia da computao: uma viso abrangente. Porto Alegre: Bookman,
2005.
MARCHIORO, Gilberto; PETRY, Adriano; ZANUZ, Adriano. Caderno Universitrio:
Introduo Computao. Canoas: Editora da ULBRA, 2006.
VELLOSO, Fernando de Castro. Informtica 5. ed. Rio de Janeiro: Campus, 2004.
Gabarito
1) c,
2) d,
3) e,
4) a,
5) verdadeiro
Introdua a computao.indd 50 18/7/2013 18:00:57
Process Black
5
SISTEMA DE NUMERAO
Mauricio da Silva Escobar
Este captulo apresentar os conceitos e uma viso prtica sobre os principais
sistemas de numerao, bases numricas e tcnicas de converso entre sistemas
de numerao.
Toda informao processada por um computador, seja ela uma instruo (comando)
para o computador ou um dado que ser processado possuem uma representao
padro que possa ser entendida pelo computador, isto , interpretados e
processados.
O formato mais simples de representao o binrio que utiliza os valores 0 e
1 combinados para formar uma informao. Dessa forma, a menor informao
armazenada por um computador um dgito binrio, tambm conhecido como
bit. O bit consequentemente, pode assumir somente o valor 0 ou 1.
O computador utiliza combinaes de bits para formar uma informao a ser
processada. Por exemplo, se um programa deseja somar os nmeros 2 e 3 por
exemplo, primeiro ele deve converter individualmente esses nmeros para
uma representao uniforme (cadeias de bits) para ao final realizar a operao
aritmtica.
Outra conveno bastante utilizada na indstria a utilizao do termo byte. Um
byte consiste de uma informao formada por uma cadeia de 8 bits. Voc deve estar
acostumado com os termos utilizados pelo mercado quando divulga equipamentos
de armazenamento, como por exemplo, um disco de 1 giga bytes o simplesmente
1GB. Outra indicao bastante utilizada a abreviatura MB, que a abreviatura
do termo mega byte.
A forma mais utilizada para a representao numrica conhecida como notao
posicional. A notao posicional indica que a posio em que um algarismo aparece
Introdua a computao.indd 51 18/7/2013 18:00:57
Process Black
52
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
em um nmero define seu valor. O valor total desse nmero consiste dessa forma
da soma dos valores relativos a cada algarismo.
A base de um nmero indica o nmero de smbolos que ela possui, que combinados,
servem para formar um determinado nmero.
Principais sistemas de numerao e seus respectivos smbolos:
A base binria possui dois smbolos: 0 e 1.
Base decimal possui dez smbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9.
Base hexadecimal possui dezesseis smbolos: 0 a 9, A, B, C, D e E.
Todos esses sistemas de numerao so posicionais, isto a posio onde cada
algarismo aparece em um nmero influencia no valor do nmero.
Considere o exemplo a seguir:
123 na base decimal, ou representado da seguinte forma para deixar explcita a
base (123)
10
.
Neste exemplo o nmero composto por trs algarismos: 1, 2 e 3 e , cada algarismo
assume um valor correspondente posio em que ele aparece no nmero.
O algarismo 3 (mais direita) representa 3 unidades. Seu valor absoluto 3. O
algarismo 2 representa a potncia 1 da base 10, isto :
2 x 10
1
= 20.
Por fim, o valor 1 representa a potencia 2 na base 10, isto :
1 x 10
2
= 100
Para determinar o valor total do nmero basta somar o resultado de suas
potncias:
(1 x 10
2
) + (2 x 10
1
) + (3 x 10
0
) = 123
O exemplo a seguir representa um nmero em base hexadecimal (base 16):
(FA)
16
A determinao do seu valor similar ao exemplo anterior, que determinou o
nmero em representao decimal.
Deve-se calcular individualmente cada algarismo considerando sua potncia na
base em considerao, como a seguir:
(F x 16
1
) + (A x 16
0
)
O smbolo F neste caso, representa o valor decimal 15, sendo assim:
15 x 16
1
= 240
Introdua a computao.indd 52 18/7/2013 18:00:58
Process Black
53
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
O smbolo A representa o valor decimal 10, sendo assim:
10 x 16
0
= 10
O valor resultante pode ser expresso como:
240 (potncia 1) + 10 (potncia 0) = 250 em decimal.
5.1 Converso de bases
A seo anterior introduziu a noo de sistema de numerao e a representao de
um nmero utilizando uma base numrica em notao posicional.
Nesta seo sero apresentados os principais mtodos de converso entre as bases
numricas decimal binria e hexadecimal.
Decimal Binrio
A forma mais intuitiva para converter um nmero decimal para binrio (base 2)
montar uma tabela onde cada coluna representa uma das potncias de 2, da direita
para a esquerda, como no exemplo:
2
n
2
5
2
4
2
3
2
2
1
2
1
2
0
... 32 16 8 4 2 1
...

Para converter, voc deve preencher a tabela com 0s e 1s de forma que soma
dos decimais das casas em 1 seja igual ao nmero decimal desejado.
Exemplo, converter o nmero (38)10 para binrio:
2
n
2
5
2
4
2
3
2
2
1
2
1
2
0
... 32 16 8 4 2 1
... 1 0 0 1 1 0
32 + 4 + 2 = 38
Logo, o nmero binrio resultante : (100110)
2
Binrio Decimal
Para converter de binrio para decimal voc pode utilizar a mesma tabela (potncias
de 2) e somar os valores em decimal das colunas onde ocorre o valor binrio 1 na
tabela.
Introdua a computao.indd 53 18/7/2013 18:00:58
Process Black
54
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Exemplo:
Converter o nmero (1001110)
2
para decimal.
Passo 1 montar a tabela:
O nmero apresentado representado em 7 bits, dessa forma a tabela deve conter
7 colunas, como mostrado a seguir.
2
6
2
5
2
4
2
3
2
2
1
2
1
2
0
64 32 16 8 4 2 1
Passo 2 transpor o valor binrio na tabela.
2
n
2
5
2
4
2
3
2
2
1
2
1
2
0
64 32 16 8 4 2 1
1 0 0 1 1 1 0
Passo 3 somar os valores decimais respectivos s colunas com valor binrio em 1.
2
n
2
5
2
4
2
3
2
2
1
2
1
2
0
64 32 16 8 4 2 1
1 0 0 1 1 1 0
64 + 8 + 4 + 2 = (78)
10
Decimal Hexadecimal
A converso de um nmero decimal para hexadecimal ocorre atravs de divises
(inteiras) sucessivas pela base, isto , pelo nmero 16.
Lembre-se que em uma diviso temos 4 elementos, como ilustrado na figura a
seguir:
Dividendo 10 3 Divisor
9 3 Quociente
Resto 1
Introdua a computao.indd 54 18/7/2013 18:00:58
Process Black
55
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Na converso de decimal para hexadecimal precisaremos de todos os restos e do
ltimo quociente utilizados nas divises sucessivas para determinar qual ser o
nmero resultado em base hexadecimal. Considere o exemplo a seguir:
Converter o nmero (80)
10
para hexadecimal.
Dividendo 80 16 Divisor
80 5 Quociente
Resto 0
Ao determinar que no mais possvel realizar uma diviso inteira, isto , chegamos
ao final do processo, devemos utilizar o quociente final e os restos obtidos em
ordem inversa. Dessa forma, em relao ao exemplo anterior, o nmero resultado
ser (50)
16
.
Considere o segundo exemplo:
Converter o nmero (12)
10
para hexadecimal.
12 16
0 0
12
O valor resultado 12, que representado pelo smbolo C em hexadecimal. A
resposta correta ento nmero (0C)
16
.
Considere agora um nmero maior, que exercita a construo de um nmero
hexadecimal com mais de dois algarismos.
Converter o nmero (1480)
10
para hexadecimal.
1480 16
1472 92 16
8 80 5 16
12 0 0
5
Agrupando os elementos em ordem inversa a partir do ltimo quociente obtemos
os nmeros 0, 5, 12 e 8. Lembrando que 12 o smbolo C, obtemos como valor
final o nmero (5C8)
16
. O zero a esquerda pode ser desconsiderado, simplificando
o nmero para somente 3 algarismos.
Hexadecimal Decimal
A converso de hexadecimal para decimal similar converso para binrio.
Deve-se multiplicar cada algarismo do nmero hexadecimal pela sua base
Introdua a computao.indd 55 18/7/2013 18:00:58
Process Black
56
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
elevado na sua posio, somando-se ao resultado final. Considere os exemplos
a seguir:
Converter o nmero (F5)
16
para decimal.
Lembrando que F equivale ao nmero 15 em decimal.
(15 x 16
1
) + (5 x 16
0
) = (245)
10
Converter o nmero (5C8)
16
para decimal.
(5 x 16
2
) + (12 x 16
1
) + (8 x 16
0
) =
1280 + 192 + 8 = (1480)
10
Binrio Hexadecimal
Antes de vermos como converter um nmero binrio para hexadecimal
importante ressaltarmos uma propriedade importante sobre como representar
um nmero hexadecimal em binrio.
Um bit assume o valor 0 ou 1. O menor nmero hexadecimal, isto , de 1 dgito, pode
assumir o valor 0 a F (0 a 15). Dessa forma, para representar 1 dgito hexadecimal
so necessrios pelo menos 4 bits.
Entendida essa propriedade, para realizar a converso de um nmero binrio para
hexadecimal basta converter, da direita para esquerda, de 4 em 4 bits.
Exemplo: converter o nmero (11100101)
2
para hexadecimal.
Valor original (1110 0101)
Converter os primeiros 4 bits 0101 = 5
Converter os prximos 4 bits 1110 = E
Agrupar os resultados (E5)
16
Hexadecimal Binrio
A converso de hexadecimal para binrio ocorre convertendo-se individualmente
cada dgito (utilizando 4 bits), concatenando-se o nmero binrio resultante ao
nmero final.
Exemplo: converter o nmero (9E)
16
para binrio.
9 = (1001)
2
E = (1110)
2
Introdua a computao.indd 56 18/7/2013 18:00:58
Process Black
57
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Dessa forma, basta concatenar os valores parciais para formar o valor final.
(9E)
16
igual ao valor 10011110 em binrio.
5.2 Nmeros binrios com sinal
Existem algumas formas de representar nmeros binrios com sinal. A forma
mais utilizada chamada de Complemento de 2. O complemento de 2 uma
representao que utiliza o bit mais significativo, isto , o mais a esquerda de um
nmero binrio para representar seu sinal. O nmero ser negativo se este bit
estiver em 1 e no negativo se estiver em zero.
Para determinar o valor decimal de um nmero negativo em complemento de
2 basta inverter o valor de todos os bits e somar o valor 1 em binrio. A tabela a
seguir ilustra a utilizao de complemento de 2 para representar nmeros binrios
de 4 bits.
0000 0 1000 -8
0001 1 1001 -7
0010 2 1010 -6
0011 3 1011 -5
0100 4 1100 -4
0101 5 1101 -3
0110 6 1110 -2
0111 7 1111 -1

Este captulo apresentar os procedimentos para adio e subtrao de nmeros
binrios.
5.3 Soma binria
A soma binria similar soma de nmeros decimais, isto , soma-se
individualmente cada algarismo. A nica diferena que em binrio h somente
dois algarismo disponveis, o 0 e o 1.
Introdua a computao.indd 57 18/7/2013 18:00:58
Process Black
58
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Considere as regras de soma abaixo:
a) 0 + 0 = 0
b) 0 + 1 = 1
c) 1 + 0 = 1
d) 1 + 1 = 1 e vai 1
O vai 1 indica que houve um excedente na soma que deve ser considerado no
prximo algarismo.
Considere os exemplos a seguir:
5.4 Subtrao binria
A subtrao binria um pouco mais complicada em relao soma binria devido
a limitao de valores (apenas 0 e 1). Dessa forma ao subtrair 0 por 1 devemos pedir
emprestado ao primeiro algarismo esquerda que for diferente de zero.
Considere os exemplos a seguir:
Introdua a computao.indd 58 18/7/2013 18:00:59
Process Black
59
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
A partir da direita para esquerda:
a) 1 1 = 0
b) 0 1 no possvel. Devemos retirar o prximo 1 da esquerda passando-o para
a direita para aumentar a ordem do valor, isto , passando-o por exemplo para
o valor 2 (em binrio).
a. Logo, 2 1 = 1
c) 0 0 = 0
d) 1 0 = 0

A partir da direita para esquerda:
a) 1 1 = 0
b) 0 1 no possvel. Devemos retirar o prximo 1 da esquerda passando-o
para a direita para aumentar a ordem do valor, isto , retira-se o 1 da 4a ordem
cando 2 unidades na 3a ordem. Dessas 2 unidades, retira-se 1 unidade para
a 2a ordem, resultando em 1 unidade na 3a ordem.
a. Logo, 2 1 = 1
c) 1 1 = 0
d) 0 1 no possvel. Retira-se o prximo 1 passando-o para a direita.
a. Logo, 2 - 1 = 1
e) 0 0 = 0
f) 0 0 = 0
Uma segunda forma de realizar a subtrao binria transformando-a em duas
somas, isto :
X Y transformado para X + (-Y)
Introdua a computao.indd 59 18/7/2013 18:00:59
Process Black
60
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Para isso troca-se o sinal do subtraendo, inverte-se todos os seus bits e soma-se
a ele 1.
Considere o exemplo a seguir:
Primeiro inverte-se os bits do subtraendo e soma-se 1:
Agora realiza-se uma soma binria entre o minuendo original e o resultado
parcial:
No caso da subtrao binria, ignora-se o ltimo vai 1. Dessa forma, o resultado
: (1010)2.
Atividades
1. Resolva as converses (demonstre os passos realizados):
a. (197)
10
para ( ? )
2
b. (EF)
16
para ( ? )
10
c. (53)
10
para ( ? )
16
d. (F5)
16
para ( ? )
2
Introdua a computao.indd 60 18/7/2013 18:00:59
Process Black
61
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
2. O que signica a base de um nmero?
3. Represente em 7 bits os seguintes nmeros com sinal, utilizando complemento
de 2:
a. +32
b. -31
4. Realize a soma binria:
11011101
+ 00101111
5. Realize a subtrao binria:
11010101
- 00000010
Referncias bibliogrficas
Hennessy, John L. Organizao e projeto de computadores : a interface hardware/sofware / John L.
Hennessy, David A. Paterson ; colaborao James R. Larus ; traduo Nery Machado Filho.
2. ed. Rio de Janeiro : LTC, 2000. xxii, 551 p., il. (5)
Monteiro, Mario A. Introduo a organizao de computadores / Mario A. Monteiro. 3. ed. Rio
de Janeiro : LTC, 1996. 397 p., il.
Tanenbaum, Andrew S. Organizao estruturada de computadores / Andrew S. Tanenbaum ;
traduo Nery Machado Filho. 4. ed. Rio de Janeiro : LTC, 2001. 398 p., il. (3) Tanenbaum,
Andrew S. Organizao Estruturada de Computadores - 5 edio. (Biblioteca Virtual
Pearson)
Stallings, William. Arquitetura e Organizao de Computadores - 8 edio. (Biblioteca Virtual
Pearson)
Gabarito
1.
a. (197)
10
= (11000101)
2
b. (EF)
16
= (239)
10
Introdua a computao.indd 61 18/7/2013 18:00:59
Process Black
62
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
c. (53)
10
= (35)
16
d. (F5)
16
= ( 11110101)
2
2.
Signica a quantidade de smbolos que podem ser combinados para
formar uma informao (ou nmero). Ex. a base hexadecimal possui
16 smbolos, 0 a 9 e A a F, que podem ser combinados para formar um
nmero. A base binria possui dois smbolos, 0 e 1.
3.
a) +32 = (0100000)
2
b) -31 = (1100001)
2
Lembre que o bit mais signicativo (primeiro da esquerda para a direita)
utilizado para indicar o sinal.
4.
a) 11011101
+ 00101111
100001100
5.
b) 11010101
- 00000010
11010011
Introdua a computao.indd 62 18/7/2013 18:00:59
Process Black
6
LGICA DIGITAL
Mauricio da Silva Escobar
Um computador projetado para armazenar e processar informaes representadas
por algarismos que podem assumir o valor 0 ou 1.
No nvel fsico os valores simblicos 0 e 1 so representados por sinais eltricos que
so gerados ou mantidos por um circuito eletrnico. Tendo em vista a impreciso
de um sinal eltrico e a forma como cada componente pode ser construdo,
normalmente um sinal entre 0 e +0,5V corresponde ao valor lgico 0, e um sinal
entre +3V e +5V correspondem ao valor lgico 1.
Um computador formado por um conjunto de componentes que realizam
operaes especializadas, chamados de circuitos digitais. Internamente, tais
circuitos so formados por elementos capazes de manipular os sinais 0 e 1. Esses
elementos so chamados de portas lgicas, pois so capazes de manipular a
passagem de sinais eltricos.
6.1 Portas e operaes lgicas
Portas lgicas so estruturas eletrnicas, normalmente utilizadas na construo de
unidades de processamento, que admitem a presena de valores lgicos binrios:
0 e 1. As portas lgicas servem para calcular diversas funes booleanas, tendo
como entradas e sadas os valores lgicos.
Elas formam a base da construo de unidades de hardware, a partir da qual todos
os circuitos digitais so construdos. H diversos tipos de portas lgicas, sendo
cada porta capaz de realizar uma funo lgica especfica.
Introdua a computao.indd 63 18/7/2013 18:00:59
Process Black
64
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Uma operao lgica, assim como uma operao algbrica, produz um resultado
baseado nas suas entradas conforme uma determinada regra. Assim como na
lgebra comum, a lgica digital utiliza smbolos para representar as operaes
lgicas e seus operadores.
Todo circuito lgico produz um resultado, isto , um valor lgico que pode assumir
o valor 0 ou 1, que esto relacionados lgebra booleana. Na lgebra booleana, o
valor 0 equivale a FALSO (ou simplesmente F) e o valor 1 equivale a VERDADEIRO
(ou simplesmente V).
Se as variveis de entrada (ou sinais) s podem assumir valores V ou F, ento
podemos determinar todas as combinaes possveis de valores de entrada. Essas
possibilidades pode ser organizadas em uma estrutura em tabela chamada de
Tabela Verdade.
As colunas iniciais da tabela verdade representam os sinais de entrada, enquanto
que as ltimas colunas representam os valores de sada. A tabela verdade possui
um nmero de linhas determinado de acordo com o nmero de entradas do circuito
sendo analisado.
Dessa forma, a tabela verdade de um circuito ter 2
n
linhas, sendo cada linha
uma combinao dos valores de entrada. O n representa o nmero de entradas
do circuito.
Por exemplo: se o circuito possui 1(uma) entrada, ento a tabela verdade ter duas
linhas. A primeira linha para o valor 0 e a segunda linha para o valor 1. Se o circuito
tiver duas entradas, a tabela ter 4 (quatro) linhas, uma para cada combinao de
entrada (00, 01, 10 e 11).
A seguir sero apresentadas as principais portas lgicas, seguidas de suas tablas
verdade.
6.1.1 A porta NOT
A porta NOT, tambm chamada de inversor, serve somente para inverter o sinal
binrio presente na sua entrada.
A figura 1 mostra o circuito do inversor e sua respectiva tabela verdade.
Figura 1: representao da porta NOT
Expresso booleana:
Introdua a computao.indd 64 18/7/2013 18:01:00
Process Black
65
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
6.1.2 A porta AND
A porta AND utilizada para representar uma conjuno, isto , a sada de uma
porta AND s ser verdadeira (valor lgico 1) quando todas as suas entradas
estiverem em 1.
A figura 2 mostra o circuito AND e sua tabela verdade.
Figura 2: representao da porta AND
Expresso booleana:
6.1.3 A porta OR
A porta OR utilizada para representar uma disjuno, isto , a sada de uma porta
OR ser verdadeira (valor lgico 1) quando pelo menos uma de suas entradas
estiver em 1.
A figura 3 mostra o circuito OR e sua tabela verdade.
Figura 3: representao da porta OR
Expresso booleana:
6.1.4 A porta XOR
A porta XOR representa um OU exclusivo. Sua sada ser verdadeira (valor lgico
1) quando somente uma de suas entradas estiver em 1.
Introdua a computao.indd 65 18/7/2013 18:01:00
Process Black
66
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
A figura 4 mostra a porta XOR e sua tabela verdade.
Figura 4: representao da porta XOR
6.1.5 A porta NAND
A porta NAND (NOT AND) representa um AND negado, isto , a porta AND com
sada negada. Como a sada negada, toda a expresso booleana que representa
a sada da porta tambm negada.
A figura 5 mostra a porta NAND e sua tabela verdade.
Figura 5: representao da porta NAND
6.1.6 A porta NOR
A porta NOR (NOT OR) representa um OR negado, isto , a porta OR com sada
negada. Como a sada negada, toda a expresso booleana que representa a sada
da porta tambm negada.
A figura 6 mostra a porta NAND e sua tabela verdade.
Introdua a computao.indd 66 18/7/2013 18:01:00
Process Black
67
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Figura 6: representao da porta NOR
6.2 lgebra booleana
A lgebra Booleana consiste de funes para a descrio de circuitos lgicos cujos
valores s podem assumir os valores 0 ou 1.
Toda funo booleana, tambm, pode ser descrita atravs de uma tabela verdade.
Como mencionado anteriormente, essa tabela ter 2
n
linhas, onde n corresponde
ao nmero de entradas do circuito. Dessa forma, cada linha da tabela verdade
possuir uma combinao dos valores das entradas do circuito.
Exemplo de construo da tabela verdade para um circuito. Dado o circuito na figura 7,
com 3 (trs) entradas, monta-se a tabela verdade, que possuir 2
3
linhas, isto 8 linhas.
Figura 7: exemplo de circuito lgico
Nas colunas iniciais representam-se as entradas, seguidas das subexpresses at
que forme-se a sada do circuito, como apresentado na tabela a seguir.
Passo 1
Determinar
as entradas
Passo 2
Determinando as portas
intermedirias
Passo 3
Determinando as portas
intermedirias
Final:
Determinando
a sada do circuito
A B C A.B A.C S = (A.B) + (A.C)
0 0 0 0 0 0
0 0 1 0 0 0
0 1 0 0 0 0
0 1 1 0 0 0
1 0 0 0 0 0
1 0 1 0 1 1
1 1 0 1 0 1
1 1 1 1 1 1
Introdua a computao.indd 67 18/7/2013 18:01:00
Process Black
68
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
6.3 Equivalncia de circuitos
A equivalncia de circuitos visa reduzir o tamanho de um determinado circuito
atravs da aplicao de simplificaes booleanas.
A diminuio de um circuito implica, entre outros aspectos, na reduo do custo
de sua produo e, na diminuio de seu tamanho. Um circuito equivalente um
circuito que calcula a mesma funo do circuito original, preferencialmente usando
menos portas lgicas. Diz-se que um circuito equivalente se suas tabelas verdades
apresentam as mesmas sadas para as mesmas combinaes de entrada.
Exemplo de equivalncia de circuitos. Considere os circuitos apresentados na figura
8, seguidos por suas respectivas tabelas verdade.
Figura 8: exemplo de circuitos equivalentes
A B C A.B A.C S+(A.B )+(A.C) A B C B+C S+A.(B+C)
0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 1 1 0
0 1 0 0 0 0 0 1 0 1 0
0 1 1 0 0 0 0 1 1 1 0
1 0 0 0 0 0 1 0 0 0 0
1 0 1 0 0 1 1 0 1 1 1
1 1 0 1 1 1 1 1 0 1 1
1 1 1 1 0 1 1 1 1 1 1
Os dois circuitos apresentados, embora estejam organizados com combinaes
diferentes de portas lgicas possuem as mesmas sadas para as mesmas
combinaes de entrada, como mostrou a tabela verdade. Dessa forma pode-se
afirmar que os circuitos so equivalentes. No primeiro circuito foram utilizadas
3(trs) portas lgicas enquanto que no segundo, foram utilizadas 2(duas) portas
lgicas, havendo ganho (diminuio) de 1(uma) porta na sua construo.
Introdua a computao.indd 68 18/7/2013 18:01:01
Process Black
69
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
6.4 Proriedades da lgebra booleana
A simplificao de funes booleanas pode ser realizada atravs da aplicao
sucessiva de regras bsicas da lgica, conforme listadas na tabela a seguir: note
que quando o operador omitido, ele equivale ao operador ., isto , o operador
AND.
Nome Forma AND Forma OR
Lei da identidade 1A = A 0 + A = A
Lei da nulidade 0A = A 1 + A = 1
Lei da idempotncia AA = A A+ A = A
Lei da inverso A = 0 A + = 1
Lei comutativa AB = BA A + B = B + A
Lei associativa (AB)C = A(BC) (A+ B)+C = A+ (B+C)
Lei distributiva A(B+C) = AB + AC A+(BC) = (A+B)(A+C)
Lei da absoro A(A+B) = A A + AB = A
Lei de De Morgan
Exemplo de simplificao boolena
O exemplo a seguir demonstra a utilizao das propriedades da lgebra booleana
para a simplificao de um circuito. No que o circuito original possui apenas uma
porta lgica. Outra simplificao foi a remoo de uma entrada desnecessria no
circuito, isto , a entrada C.
Circuito original: Simplificao:
Circuito simplificado:
AB = A + B A + B = AB
A A
Introdua a computao.indd 69 18/7/2013 18:01:01
Process Black
70
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Este captulo apresentou uma viso geral dos fundamentos de lgica digital,
apresentando as principais portas lgicas, a montagem da tabela verdade
como forma de representar as entradas e determinar as sadas de um circuito e
propriedades da lgebra booleana, que podem ser utilizadas para a simplificao
de um circuito. A prxima seo encerra o captulo com exerccios prticos.
Atividades
1. Dena de forma sucinta o que e para que serve uma porta lgica.
2. Implemente utilizando portas lgicas um circuito equivalente lei da
absoro na forma AND.
3. D a expresso booleana e construa a tabela verdade do circuito lgico a
seguir:
4. D a expresso booleana e construa a tabela verdade do circuito lgico a
seguir:
5. A partir da expresso booleana a seguir, construa o circuito equivalente.
Expresso: (A.B) + ((A.C) + (B.C))
Referncias bibliogrficas
Hennessy, John L. Organizao e projeto de computadores : a interface hardware/sofware / John L.
Hennessy, David A. Paterson ; colaborao James R. Larus ; traduo Nery Machado Filho. 2.
ed. Rio de Janeiro : LTC, 2000. xxii, 551 p., il. (5)
Monteiro, Mario A. Introduo a organizao de computadores / Mario A. Monteiro. 3. ed. Rio
de Janeiro : LTC, 1996. 397 p., il.
Tanenbaum, Andrew S. Organizao estruturada de computadores / Andrew S. Tanenbaum ;
traduo Nery Machado Filho. 4. ed. Rio de Janeiro : LTC, 2001. 398 p., il. (3) Tanenbaum,
Introdua a computao.indd 70 18/7/2013 18:01:01
Process Black
71
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Andrew S. Organizao Estruturada de Computadores - 5 edio. (Biblioteca Virtual
Pearson)
Stallings, William. Arquitetura e Organizao de Computadores - 8 edio. (Biblioteca Virtual
Pearson)
Gabarito
1.
Portas lgicas so estruturas eletrnicas que podem ser utilizadas na construo
de circuitos digitais e so capazes de processar os valores lgicos binrios 0 e
1. As portas lgicas servem para calcular diversas funes booleanas, tendo
como entradas e sadas os valores lgicos.
2.
Lei da absoro na forma AND: A(A+B)
Circuito resultante:
3.
Expresso booleana: S = .B
Tabela Verdade:
A B NOT A S
0 0 1 0
0 1 1 1
1 0 0 0
1 1 0 0
4.
A B C + B S
0 0 0 1 1 1 0
0 0 1 1 1 0 1
0 1 0 1 1 1 0
0 1 1 1 1 0 1
1 0 0 0 0 1 1
1 0 1 0 0 0 1
1 1 0 0 1 1 0
1 1 1 0 1 0 1
A
A A A C
Introdua a computao.indd 71 18/7/2013 18:01:01
Process Black
72
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
5.
Expresso: (A.B) + ((A.C) + (B.C))
Introdua a computao.indd 72 18/7/2013 18:01:02
Process Black
7
CIRCUITOS LGICOS
Mauricio da Silva Escobar
Aps estudar os fundamentos de lgica digital, as propriedades das portas
lgicas, a montagem da tabela verdade para expressar as entradas e sadas de um
circuito e algumas das regras da lgebra booleana, nesse captulo ser mostrado
como possvel interligar as diversas portas lgicas na construo de circuitos
combinatrios (tambm chamados de combinacionais).
Um circuito combinatrio pode ser definido como um conjunto de portas lgicas cuja
sada em qualquer instante de tempo dada em funo somente de suas entradas.
Existem outros tipos de circuitos, chamados de circuitos sequenciais, que alm das
portas de entrada, possuem elementos de armazenamento. Estes elementos so
denominados flip-flops.
Podemos citar alguns circuitos combinatrios bastante utilizados no projeto de
computadores:
Decodicador
Multiplexador
Comparador
Somador e Subtrator
ULA (Unidade Lgica e Aritmtica)
7.1 Decodificador
O decodificador um tipo de circuito que normalmente possui n bits de entrada
e 2
n
bits de sada, no qual somente um bit de sada poder estar ativo (com valor
lgico 1) para cada combinao de entrada.
Introdua a computao.indd 73 18/7/2013 18:01:02
Process Black
74
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
A funo bsica de um decodificador traduzir uma combinao de bits de entrada
em um sinal que corresponde ao binrio representado pelos bits de entrada, como
ilustrado na figura 1.
Figura 1: esquema de decodificao
A figura 2 ilustra o circuito interno de um decodificador de 2 bits de entrada e 4
de sada, seguido de sua tabela verdade.
Figura 2: circuito de um decodificador 2:4
A tabela verdade que representa o decodificador apresentada a na figura 3. Note
que para cada combinao das portas de entrada somente uma das portas de sada
possui valor lgico 1.
Figura 3: tabela verdade do decodificador 2:4
Entradas Sadas
A
0
A
1
D
0
D
1
D
2
D
3
0 0 0 0 0 1
0 1 0 0 1 0
1 0 0 1 0 0
1 1 1 0 0 0
Um decodificador pode ser utilizado na ativao de endereos de memria,
selecionando por exemplo, qual chip de memria deve estar ativo, na converso
binria para displays de 7 segmentos, ou na converso ou traduo de bits de um
modo geral.
Introdua a computao.indd 74 18/7/2013 18:01:02
Process Black
75
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
7.2 Multiplexador
O multiplexador um tipo de circuito combinatrio que normalmente possui 2
n

entradas de dados, somente uma sada e n entradas de controle.
As entradas de controle servem para selecionar qual entrada de dados deve ser
direcionada para a sada. A figura 4 ilustra o circuito interno de um multiplexador
de 2 bits.
Figura 4: circuito interno de um multiplexador de 2 bits
O nmero portas de seleo determinado pelo nmero de entradas de dados a
serem utilizadas pelo multiplexador. Nesse caso, como so apenas duas entradas
de dados, o seletor precisa variar em apenas dois estados (0 ou 1) para indicar qual
porta de dados est sendo utilizada.
A figura 5 ilustra o funcionamento interno do multiplexador.
Figura 5: esquema de funcionamento do multiplexador
O multiplexador apresentado na figura 5 possui uma porta (entrada) de seleo e
duas portas (entrada) de dados. Quando o valor do seletor (porta SEL) est com
valor lgico 0, ele selecionar o valor atual da porta E0 e o colocar na sada. Caso
o seletor esteja com o valor lgico em 1, ele selecionar o valor atual da porta E1
e o colocar na sada do circuito. Lembre que cada porta pode receber o valor
lgico zero ou um.
Por exemplo: se a porta E0 est com o valor zero e o seletor tambm, possui o valor
zero, ento o multiplexador propagar o valor zero para a sada.
Introdua a computao.indd 75 18/7/2013 18:01:02
Process Black
76
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
A tabela verdade apresentada na figura 6 ilustra o mapeamento do comportamento
do multiplexador para algumas variaes de entrada e de seleo.
Figura 6: tabela verdade que ilustra a seleo em um multiplexador
Entradas
E0 E1 SEL SADA
0 0 0 0 Recebe o valor corrente de E0
0 1 1 1 Recebe o valor corrente de E1
1 0 1 0 Recebe o valor corrente de E1
1 1 0 1 Recebe o valor corrente de E0
7.3 Comparador
O comparador um tipo de circuito combinatrio de fcil implementao que
compara dois valores de entrada (A e B) em um determinado nmero de bits. Caso
os valores de entrada sejam iguais, a sada do comparador ser o valor lgico 1, e
0 se forem diferentes.
A implementao do comparador utiliza combinaes de uma porta XOR (ou
exclusivo) para cada bit de um nmero de entrada. A porta XOR produz o valor
0 (zero), caso os bits de entrada sejam iguais e 1 caso sejam diferentes. Se os dois
nmeros forem iguais, todas as portas XOR produziro o valor 0 (zero). Dessa
forma, para produzir o valor 1(um), que indica que os nmeros de entrada so
iguais, utilizada a porta NOR ao final do circuito para inverter o valor do teste. A
figura 7 mostra o circuito de um comparador de dois bits, que utiliza como entrada
dois nmeros de 2 bits (A e B).
Figura 7: circuito do comparador de 2 bits
7.4 Somador
O somador um tipo de circuito combinatrio (aritmtico) capaz de somar bit a
bit dois nmeros, propagando-se o sinal de vai 1.
A menor unidade de um somador, isto , um somador de 1 bit possui 3 sinais
de entrada e dois sinais de sada. Das entradas recebidas pelo somador, 1 bit
pertence ao primeiro nmero a ser somado, 1 bit pertence ao segundo nmero a
Introdua a computao.indd 76 18/7/2013 18:01:02
Process Black
77
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
ser somado e 1 bit chamado de vem 1. Das sadas, 1 bit o resultado da soma
e 1 bit o sinal de vai 1. O sinal vem 1 neste caso, utilizado para receber o
sinal de vai 1 resultante da soma do bit imediatamente anterior, como ilustrado
no exemplo na figura 8.
Figura 8: somador de 1 bit e um exemplo de soma binria
Combinando diversas clulas somadoras de 1 bit possvel realizar somas bin-
rias de operandos de n bits. A figura 9 ilustra um somador de 4 bits, consideran-
do A e B como operandos e S como o resultado da soma.
Figura 9: somador de 4 bits
Note que cada clula recebe 1 bit de cada operando, da direita para a esquerda. O
primeiro vem um (sinal VE) zero, pois no h um resultado anterior ele.
7.5 Subtrator
O subtrator um tipo de circuito combinatrio (aritmtico) capaz de subtrair bit
a bit dois nmeros, propagando-se o sinal de vai 1. Sua estrutura similar a
estrutura do somador de 1 bit.
Um subtrator pode ser implementado utilizando um somador, invertendo-se o
sinal do segundo operando e utilizando o valor 1 como valor do primeiro vem
1 da primeira clula. Essa tcnica a mesma utilizada quando realiza-se uma
subtrao binria, isto , quando transforma-se uma subtrao binria em uma
soma, invertendo os bits do subtraendo e somando a ele o valor 1.
Introdua a computao.indd 77 18/7/2013 18:01:03
Process Black
78
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
A figura 10 ilustra a adaptao necessria para tornar um somador de 1 bit em
um subtrator e a combinao de subtratores de 1 bit para formar um subtrator
de 4 bits.
Figura 10: subtrator de 4 bits
7.6 Unidade lgica e aritmtica (ULA)
A Unidade Lgica e Aritmtica (ULA) um tipo de circuito que combina em um
nico hardware a capacidade de realizar operaes lgicas e aritmticas bsicas.
A ULA utiliza um sinal especfico para a definio da operao a ser realizada,
conforme esquema de uma ULA de 1 bit mostrado na figura 11.
Figura 11: unidade lgica e aritmtica
A figura 12 mostra a organizao interna de uma ULA de 1 bit que implementa as
operaes aritmticas de soma, subtrao, e as operaes lgicas and, not e or.
Introdua a computao.indd 78 18/7/2013 18:01:03
Process Black
79
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Figura 12: estrutura interna de uma ULA de 1 bit
Note que ULA combina alguns dos circuitos combinatrios vistos anteriormente. Os
sinais X e Y representam valores de entrada a serem manipulados. O multiplexador
de duas entradas utilizado para aproveitar o circuito do somador transformando-o
em um subtrator.
O multiplexador de 4 entradas serve para selecionar qual operao a ULA
deve realizar. Ele possui dois sinais de entrada: S1 e S2. Quando o seletor deste
multiplexador estiver com o valor lgico 00 ele habilita a sada para o resultado do
somador; quando estiver com o valor 01 ele habilita a sada para o inversor (porta
NOT); quando estiver com o valor 10 ele habilita a sada para a porta AND; e,
quando estiver com o valor 11 ele habilita a sada para a porta OR.
Assim como ocorre nos demais circuitos combinatrios, combinando a ULA de 1
bit possvel construir uma ULA que opere para n bits de entrada.
7.7 Clock
Ao construir circuitos digitais importante estabelecer a ordem em que os eventos
iro ocorrer. Os relgios (ou clocks) so utilizados em no projeto de circuitos digitais
para permitir a sincronizao entre diversos circuitos.
O clock um tipo especial de circuito que gera pulsos em intervalos de tempo
constantes. O intervalo de tempo entre dois pulsos chamado de perodo do clock
(T), como ilustra a figura 13.
Introdua a computao.indd 79 18/7/2013 18:01:03
Process Black
80
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Figura 13: perodo do clock
A frequncia do clock pode ser medida em hertz (Hz), sendo calculada inverten-
do-se o perodo do clock (1/T). Ela representa o nmero de ciclos por segundo
gerados pelo clock.
Por exemplo: uma frequncia de 1GHz (equivale a 10
9
Hz) e indica que o clock gera
1 bilho de ciclos por segundo.
7.8 Unidade bsica de memria
A memria um componente fundamental em qualquer sistema computacional.
Nela so armazenadas informaes de uso geral (dados) e os programas a serem
executados (instrues para a mquina).
Para construir uma memria, isto , um circuito sequencial, podem ser utilizados
componentes capazes de armazenar uma informaes de 1 bit. Tais componentes
so chamados de flip-flops. Combinando tais circuitos possvel criar memrias
de n bits.
A figura 14 ilustra a estrutura interna de um flip-flop comum, chamado de Flip-
Flop D. O flip-flop e capaz de armazenar internamente um valor. O flip-flop s
armazenar o valor lgico da entrada D quando o sinal de clock variar de 0 para 1.
Enquanto o clock estiver em 0, o valor da memria no ser alterado.
Figura 14: estrutura interna de um Flip-Flop D
Introdua a computao.indd 80 18/7/2013 18:01:04
Process Black
81
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Atividades
1. Calcule a frequncia em hertz de relgios de computador com perodos iguais a:
20 s (micro segundos)
180ns (nano segundos)
2. Construa a tabela verdade para o Flip-op D.
3. Construa um comparador de 3 bits.
4. Sobre circuitos combinatrios correto armar que:
I. So utilizados no projeto de hardware de computadores.
II. Suas sadas dependem exclusivamente do valor de suas entradas.
III. No podem ser expressos atravs de uma expresso booleana.
Assinale a alternativa correta:
a) Apenas a I est correta.
b) Apenas a I e II esto corretas.
c) Apenas a II e III esto corretas.
d) Todas as alternativas esto corretas.
5. O circuito que possui n bits de entrada e 2
n
bits de sada, no qual somente um
poder estar ativo para cada uma das combinaes de entrada ? Seleciona a
alternativa correta.
a) Somador
b) Multiplexador
c) Decodicador
d) ULA
Introdua a computao.indd 81 18/7/2013 18:01:04
Process Black
82
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Referncias bibliogrficas
Hennessy, John L. Organizao e projeto de computadores: a interface hardware/sofware / John L.
Hennessy, David A. Paterson ; colaborao James R. Larus ; traduo Nery Machado Filho. 2.
ed. Rio de Janeiro : LTC, 2000. xxii, 551 p., il. (5)
Monteiro, Mario A. Introduo a organizao de computadores / Mario A. Monteiro. 3. ed. Rio
de Janeiro : LTC, 1996. 397 p., il.
Tanenbaum, Andrew S. Organizao estruturada de computadores / Andrew S. Tanenbaum ;
traduo Nery Machado Filho. 4. ed. Rio de Janeiro : LTC, 2001. 398 p., il. (3) Tanenbaum,
Andrew S. Organizao Estruturada de Computadores - 5 edio. (Biblioteca Virtual
Pearson)
Stallings, William. Arquitetura e Organizao de Computadores - 8 edio. (Biblioteca Virtual
Pearson)
Gabarito
1a)
f = 1 / T
f = 1 / 1*10
-6
f = 1

* 10
6
HZ = 1000000Hz = 1MHz
1b)
f = 1 / T
f = 1 / 1*10
-9
f = 1

* 10
9
HZ = 1000000000Hz = 1GHz
2)
Entradas
D Clock S
0 0 Mantm a informao j gravada na memria. No altera.
0 1 0 (Grava o valor 0 na memria)
1 0 Mantm a informao j gravada na memria. No altera.
1 1 1 (Grava o valor 1 na memria)
Introdua a computao.indd 82 18/7/2013 18:01:04
Process Black
83
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
3)

4)
D
5)
C
Introdua a computao.indd 83 18/7/2013 18:01:04
Process Black
84
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Introdua a computao.indd 84 18/7/2013 18:01:04
Process Black
8
PROJETO DE CIRCUITOS LGICOS
Mauricio da Silva Escobar
Aps estuar os fundamentos de lgica digital, as propriedades das portas lgicas,
a montagem da tabela verdade para expressar as entrada e sadas de um circuito e
algumas das regras da lgebra booleana, nesse captulo ser mostrado como utilizar
uma aplicao para a montagem e teste lgico de circuitos digitais.
Para demonstrar como modelar circuitos ser utilizado o aplicativo Digital Works
(http://www.electronics-lab.com/downloads/schematic/002/) pela simplicidade de
sua interface grfica, pelos recursos disponveis e pela facilidade de uso.
A imagem a seguir ilustra a tela inicial do Digital Works.
Como mencionado anteriormente, a interface grfica simples. Ela possui um menu
com opes gerais. Abaixo so dispostos alguns botes de controle de arquivos
(abrir, salvar, imprimir, etc). A seguir so mostrados botes com as portas lgicas
bsicas. Por fim, so apresentados botes para simular a execuo do circuito, isto
, simular um circuito digital capaz de variar seus valores lgicos.
Introdua a computao.indd 85 18/7/2013 18:01:04
Process Black
86
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Os componentes (portas lgicas e demais componentes) devem ser conectados
uns aos outros utilizando a ferramenta Wiring Tool.
Outro componente importante o Interactive Input, que serve para simular um boto
capaz de ser pressionado pelo usurio para gerar um sinal lgico. Para pressionar
o boto voc deve selecionar a ferramenta Object Interation (mo).
Para simular a execuo do circuito e poder interagir com os componentes voc
deve pressionar o boto Run.
O exemplo a seguir mostra a utilizao da porta lgica AND e entradas de
dados.
Note que o circuito est em execuo, os botes esto pressionados e a sada est
ligada. Para representar a sada do circuito foi utilizado o componente LED. O
Digital Works (DW) tambm permite que voc insira textos com anotaes na
modelagem do circuito. No exemplo, foram utilizadas anotaes para representar
as entradas A e B.
A seguir mostrada a implementao de um multiplexador de dois bits.
Introdua a computao.indd 86 18/7/2013 18:01:05
Process Black
87
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Note que o DW destaca (com linha mais forte) quando est passando corrente
(sinal lgico 1) por uma ligao do circuito.
8.1 Construindo um circuito atravs de uma expresso booleana
Como visto no captulo de lgica digital, todo circuito pode ser representado
atravs de uma funo booleana.
A montagem do circuito pode ser feita de maneira incremental, observando-se as
dependncias entre as portas lgicas, normalmente denotadas pela precedncia
imposta pelo parnteses, isto , subcircuito.
Considere o exemplo a seguir.
Monte o circuito equivalente para a expresso booleana S = A(B+C), representando
os sinais de entradas com botes, e a sada com um led.
O primeiro passo montar as entradas (A, B e C). A seguir recomenda-se montar
a subexpresso B+C, e por fim, conectar o circuito resultando entrada A. A figura
a seguir mostra o circuito resultante implementado no DW.
8.2 Exibindo informaes
Alm dos leds, o DW possui outros componentes capazes de exibir para o usurio
uma informao. O primeiro e mais simples, chamado de Numeric Output, capaz
de exibir em binrio, hexadecimal e decimal um valor determinado por um conjunto
(configurvel) de bits de entrada.
A imagem a seguir ilustra a utilizao das diferentes visualizaes do Numeric
Output.
Introdua a computao.indd 87 18/7/2013 18:01:05
Process Black
88
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
O outro componente de exibio o Display de 7 segmentos. Para utilizar o
display de 7 segmentos necessrio um decodificador, que transforma um valor
de entrada nos respectivos sinais necessrios para o display. A imagem a seguir
ilustra o display. Note que ele possui 7 sinais de entrada. Cada sinal responsvel
por ligar um dos segmentos do display.
O DW possui alguns circuitos integrados j implementados. Um destes circuitos
o decodificador para o display de 7 segmentos. Estes circuitos esto acessveis
atravs do boto Parts Centre na barra do DW.
A imagem a seguir ilustra a utilizao do decodificador (componente BCD to 7
Segment Decoder) combinado como o display para exibir um valor decimal. Aps
posicionar o display, mude seu modo para Anodo, clicando com o boto direito
do mouse sobre o display e selecionando a opo Common > Anode.
8.3 Construindo uma memria de 2 bits
Podemos construir uma memria de 2 bits utilizando um Flip-Flop do tipo D. O
Flip-Flop um circuito capaz de armazenar 1 bit.

Introdua a computao.indd 88 18/7/2013 18:01:05
Process Black
89
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
No exemplo anterior, foi representado um valor de entrada de 2 bits. Como as
memrias devem ser sincronizadas, isto , elas devem gravar os dados ao mesmo
tempo, foi utilizada uma entrada para simular o clock, conectada ao mesmo tempo
nos dos Flip-Flops. A sada (leds) utilizada para representar o valor atual da
memria.
8.4 Construindo um contador de 2 bits
Um contador pode ser implementado combinando uma memria e um somador
completo. A memria armazenar o valor atual do contador e o somador somar 1 ao
valor atual. A segunda entrada do somador deve ser o valor atual da memria.
A figura a seguir implementa o contador de 2 bits, capaz de contar de zero a 3.
Foram utilizados dois somadores completos de 1 bit, formando assim, um somador
de bits e duas memrias de 1 bit. Toda vez que o clock completa um ciclo, o contador
avana em 1 unidade. Para representar incremento, foi utilizada uma porta (Valor
1) sempre ligada.
Atividades
1. Implemente o circuito equivalente para a funo booleana
(A.B) + ((A.C) + (B.C))
2. Implementa o circuito de um comparador de 2 bits.
Introdua a computao.indd 89 18/7/2013 18:01:05
Process Black
90
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
3. Implemente o circuito de um decodicador de 2 bits.
Altere o circuito anterior e mostre o valor do decodicador no Numeric Ouput
em modo decimal.
4. Implemente uma memria de 3 bits, exibindo sua sada no componente Numeric
Output.
Referncias bibliogrficas
Hennessy, John L. Organizao e projeto de computadores : a interface hardware/sofware / John L.
Hennessy, David A. Paterson ; colaborao James R. Larus ; traduo Nery Machado Filho. 2.
ed. Rio de Janeiro : LTC, 2000. xxii, 551 p., il. (5)
Monteiro, Mario A. Introduo a organizao de computadores / Mario A. Monteiro. 3. ed. Rio
de Janeiro : LTC, 1996. 397 p., il.
Tanenbaum, Andrew S. Organizao estruturada de computadores / Andrew S. Tanenbaum ;
traduo Nery Machado Filho. 4. ed. Rio de Janeiro : LTC, 2001. 398 p., il. (3) Tanenbaum,
Andrew S. Organizao Estruturada de Computadores - 5 edio. (Biblioteca Virtual Pearson)
Stallings, William. Arquitetura e Organizao de Computadores - 8 edio. (Biblioteca Virtual
Pearson)
Gabarito
1.
Introdua a computao.indd 90 18/7/2013 18:01:06
Process Black
91
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
2.
3.
4.
5.
Introdua a computao.indd 91 18/7/2013 18:01:06
Process Black
92
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Introdua a computao.indd 92 18/7/2013 18:01:06
Process Black
9
INTRODUO LINGUAGEM
DE MQUINA
Mauricio da Silva Escobar
Aps estudar a organizao lgica de um computador, discorrendo sobre como a
CPU trabalha, para que servem os registradores e a memria principal, este captulo
abordar como podemos construir programas em linguagem de mquina, isto ,
como organizar um conjunto de comandos capazes de comandar o computador
a fazer tarefas especficas.
Um programa pode ser caracterizado como um conjunto de comandos que como
o computador deve executar uma determinada tarefa. Esses comandos recebem o
nome de instruo e so armazenados na memria do computador.
Em computao, existem diferentes linguagens para a programao de
computadores. Cada linguagem trabalha em nvel diferente de abstrao. A
abstrao neste caso, pode ser vista de forma simples como o conjunto de conceitos
que a linguagem dispe para que o programador possa resolver um determinado
problema.
Quanto mais alto o nvel de abstrao da linguagem, mais os elementos da
linguagem se aproximam do mundo real. Quanto mais baixo o nvel da linguagem,
mais seus elementos se aproximam dos comandos dados diretamente para o
computador.
Uma linguagem de mquina consiste de um conjunto de instrues que corresponde
s tarefas bsicas que uma CPU deve realizar.
Cada instruo em linguagem de mquina especfica a configurao dos
componentes de hardware (ULA, memria, registradores, etc) que define uma
computao (tarefa) em particular.
Introdua a computao.indd 93 18/7/2013 18:01:06
Process Black
94
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Toda linguagem de precisa ter pelo menos trs tipos de instrues, organizadas
nas seguintes categorias:
Instrues de acesso dados
Instrues lgicas e aritmticas
Instrues de desvio
As instrues de acesso dados servem para comandar o computador movimentar
dados entre os registradores e a memria principal. As instrues lgicas e
aritmticas servem para comandar o computador a por exemplo, comparar, somar,
subtrair, multiplicar (etc) valores armazenados nos registradores. Por fim, as
instrues de desvio servem para o programador comandar o computador a desviar
o fluxo de execuo do computador para pontos especficos em um programa.
Um programa em linguagem de mquina, como dito anteriormente, consiste
de um conjunto de instrues. Por padro, essas instrues sero executadas
sequencialmente pelo computador, isto , comando por comando. Para a criao
de lgicas mais elaboradas, o programador pode combinar os diferentes tipos de
instrues disponveis em determinada linguagem.
Devido a linguagem de mquina ser projetada para tirar o mximo proveito de
um computador (performance), ela dita como dependente de arquitetura, isto
, um programa escrito em uma dada linguagem de mquina s funcionar nos
computadores da arquitetura para a qual essa linguagem foi projetada.
Em linguagem de mquina, normalmente uma instruo caracterizada pelas
seguintes partes:
Operador Operando Operando ...
O operador consiste do comando a ser executado. Os operandos podem ser vistos
como valores ou informaes que sero manipuladas pelo operador. Cada comando
pode possuir um determinado conjunto de operandos, especificados no projeto
da linguagem.
Considere o exemplo a seguir:
Comande o computador a somar os valores 2 e 4.
Introdua a computao.indd 94 18/7/2013 18:01:06
Process Black
95
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
O termo somar pode ser visto como a operao a ser feita. Os valores 2 e 4 podem
ser vistos como operandos, j que so as informaes a serem manipuladas
pelo computador. Se formos organizar essa operao como comandos em uma
linguagem de mquina teremos um resultado similar :
SOMAR 2 4
O comando SOMAR considerado o operador e os valores 2 e 4 como operandos.
O computador realizar a soma e armazenar o resultado em um dos registradores
disponveis no computador.
O restante deste captulo apresentar o simulador SMS, que um
simulador de computadores utilizado no aprendizado de programao em
linguagem de mquina.
9.1 Simulador SMS
O simulador SMS pode ser obtido gratuitamente atravs do endereo
http://www.softwareforeducation.com/sms32v50. O simulador emula uma CPU
de 8 bits que similar famlia 80x86. Ele tambm simula uma memria RAM de
256 bytes, que ser usada para armazenar o programa e os dados utilizados por
uma aplicao.
Caractersticas gerais:
CPU de 8 bits
16 portas de entrada e sada.
Perifricos simulados nas portas 0 to 5.
Um montador.
Ajuda online.
Depurador de programas (executar passo a passo).
Execuo contnua de programas.
Velocidade da CPU (clock) congurvel.
Introdua a computao.indd 95 18/7/2013 18:01:07
Process Black
96
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
A figura 1 apresenta a interface geral do simulador.
Figura 1: Simulador SMS
A interface grfica do simular simples. Na parte superior esquerda so exibidos
os registradores de dados (AL, BL, CL e DL), os registradores de controle (IP, SP e
SR) e seus respectivos valores. Ao lado dos registradores so exibidos botes que
acionam a exibio dos perifricos, abrir um arquivo, salvar, dentre outras opes.
Ainda na parte superior, direita, so exibidos botes para o controle da execuo
de um programa. Os principais comandos so o Run que executa um programa,
o STOP que cancela a execuo do programa, o Step, que serve para depurar o
programa, executando-o passo (step) a passo. Os botes Slower e Faster servem
para controlar a velocidade de execuo, correspondendo respectivamente a mais
devagar e mais rpido. Por fim, a caixa de texto central (em branco) serve para voc
criar seu programa.
Antes de criar um programa preciso conhecer alguns detalhes sobre a organizao
do simulador e seu conjunto de instrues.
9.2 Perifricos simulados
O SMS simula diversos perifricos que podem ser utilizados para construo de
diversos tipos de aplicaes, conforme relao a seguir:
Teclado (porta 00)
Sinais de trnsito semforo (porta 01)
Introdua a computao.indd 96 18/7/2013 18:01:07
Process Black
97
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Display de sete segmentos (porta 02)
Aquecedor e termostato (porta 03)
Labirinto (porta 04)
Motor de passo (porta 05)
Display visual (mapeado em memria a partir da posio C0)
9.3 Registradores
Os registradores do SMS so capazes de armazenar valores de 8 bits, sempre
representados em hexadecimal.
A CPU do SMS possui quatro registradores de propsito geral (AL, BL, CL e DL)
e registradores especiais (IP e SR).
O registrador IP (Instruction Pointer) contm o endereo de memria da instruo
sendo executada pela CPU.
O registrador SR (Status Register) contm sinais que indicam o estado da CPU aps
a execuo de uma instruo. So quatro estados possveis:
Z Zero sinaliza o valor lgico 1 quando o resultado da ULA resulta em 0
S Sign sinaliza o valor lgico 1 quando o resultado da ULA resulta em valor
negativo
O Overow sinaliza o valor lgico 1 quanto o resultado da ULA resulta em
overow
I Interrupt sinaliza o valor lgico 1 quando interrupes esto habilitadas
Ao construir um programa, voc pode utilizar os valores dos registradores de
controle para a criao de lgicas elaboradas. Por exemplo, voc pode executar
um comando de comparao de dois valores e consultar o registrador de status.
Se o valor for zero, significa que os valores comparados so iguais.
9.4 Conjunto de instrues
Antes de criar um programa precisamos conhecer o conjunto de instrues
fornecidos pelo simulador SMS.
Introdua a computao.indd 97 18/7/2013 18:01:07
Process Black
98
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Instrues gerais:
Instruo Exemplo Descrio
; ; Comentrio
Serve para inserir comentrios ao longo de um
programa
CLO CLO Server para fechar janelas previamente abertas
END END
Indica o fim do programa. Todo programa em SMS
deve possuir a instruo END
INC INC BL Incrementa o contedo de BL em 1 unidade.
DEC DEC AL Decrementa o contedo de AL em 1 unidade
CMP
CMP AL, 0D Compara o contedo de AL com o nmero hexa 0D
(tecla Enter em ASCII) e seta o reg. SR
CMP AL, BL Compara o contedo de AL com BL e seta o
registrador SR.
CMP AL, [20]
Compara o contedo de AL com o contedo da
posio de memria [20]
ADD
ADD AL, BL Soma AL com BL e coloca o resultado em AL
ADD AL, 2 Soma AL com 2 (hexa) e coloca o resultado em AL
SUB
SUB AL, 12 Subtrai AL por 12 e coloca o resultado em AL
SUB BL, CL Subtrai BL por CL e coloca o resultado em BL
MUL
MUL AL, 5 Multiplica AL por 5 e coloca o resultado em AL
MUL AL, BL Multiplica AL por BL e coloca o resultado em AL
DIV
DIV AL, 5 Divide AL por 5 e coloca o resultado em AL
DIV AL, BL Divide AL por BL e coloca o resultado em AL
HALT HALT
Faz a CPU parar (sem finalizar). Pode ser usado em
diversos pontos do programa.
As Instrues de movimento de dados servem para manipular dados nos
registradores e memria RAM. Note que quando so utilizados os colchetes
est sendo indicada uma posio de memria (das 256 disponveis). No utilize
as posies iniciais, pois estas sero utilizadas para armazenar as instrues do
programa que ser executada. A tabela a seguir apresenta o conjunto de instrues
de movimento de dados.
Introdua a computao.indd 98 18/7/2013 18:01:07
Process Black
99
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Instruo Exemplo Descrio
MOV
MOV AL, 2 Copia o valor 2 (em HEXA) para o registrador AL
MOV [40], AL
Copia o valor de AL para a posio de memria
[40]
MOV BL, [50]
Copia o valor da posio de memria 50 para o
registrador BL
MOV [CL], 10
Copia o valor 10 para a posio de memria
apontada por BL (no implementado)
MOV AL, [BL]
Copia o valor da posio de memoria apontada por
BL para o registrador AL
MOV AL, BL
NO IMPLEMENTADO PELO SIMULADOR.
Devem ser usados os comandos PUSH e POP
PUSH
PUSH AL
Salva o contedo de AL na pilha.
A pilha uma estrutura capaz de armazenar dados.
Ela possui uma lgica de controle especfica, isto ,
ao inserir um elemento na pilha, ela o armazena no
topo de pilha. Ao remover um elemento da pilha,
removido o elemento que est no topo.
POP POP BL
Move o valor no topo da pilha para dentro do
registrador BL
As Instrues de desvio servem a criao de desvios condicionais ou incondicionais
em um programa. Os desvios so alteraes no fluxo de execuo de um programa,
que caso no possua um desvio executado sequencialmente do incio ao fim.
Por exemplo: digamos que voc queira comparar dois valores. Caso os valores
sejam iguais, voc quer desviar o programa para um trecho onde exibe a mensagem
Iguais para o usurio e para um segundo trecho que exibe a mensagem
Diferentes. Esses trechos so pores arbitrrias de cdigo marcadas atravs de
rtulos. Um rtulo uma palavra sem espaos em branco e iniciadas com uma
letra, seguida por dois pontos, com por exemplo:
ISTO_E_UM_RTULO_VLIDO:
Introdua a computao.indd 99 18/7/2013 18:01:07
Process Black
100
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
A tabela a seguir apresenta o conjunto de instrues de desvio:
Instruo Exemplo Descrio
JMP JMP SOMA Jump. Salto incondicional. Pula para um rtulo.
JZ JZ SOMA
Jump Zero. Salto para um rtulo caso o resultado da
ULA seja Zero.
JNZ JNZ SOMA
Jump Not Zero. Salto para um rtulo caso o resultado
da ULA seja diferente de zero.
JS JS Rotulo2
Jump Sign. Salta para um rtulo se a flag (S) estiver em
1 (resultado negativo na ULA)
JNS JNS Rotulo3 Jump Not Sign. Inverso do JS.
JO JO Rotulo4
Jump Overflow. Salta para um rtulo se a flag (O) estiver
em 1 (resultado em overflow na ULA)
JNO JNO Rotulo5 Jump Not Overflow. Inverso do JO.

As Instrues de entrada e sada servem para enviar e receber dados dos perifricos
simulados. Note o valor lido de um perifrico sempre armazenado no registrador
AL e o valor enviado para um perifrico sempre lido do registrador AL.
Instruo Exemplo Descrio
OUT OUT 01
Copia o contedo do registrador AL para a porta de
sada 01
IN IN 00
Copia o valor de entrada do perifrico na porta 00 para
o registrador AL
Este captulo introduziu os conceitos bsicos sobre linguagem de mquina e
apresentou as caractersticas e as instrues de programao do simulador SMS.
O prximo captulo apresentar uma viso prtica sobre a utilizao do simulador
SMS para a construo de aplicaes que utilizam os comandos de manipulao
de dados, os desvios e a utilizao dos perifricos.
Introdua a computao.indd 100 18/7/2013 18:01:07
Process Black
101
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Atividades
1. Construa uma aplicao no simulador SMS capaz de somar dois nmeros
inteiros.
2. Construa uma aplicao no simulador SMS capaz de subtrair dois nmeros
inteiros.
3. Construa uma aplicao no simulador SMS que salte entre trs rtulos e nalize
a execuo do programa.
4. Construa uma aplicao no simulador SMS que mostre o seu nome na tela.
Para exibir uma palavra na tela, voc deve inserir os valores de cada caractere a
partir da posio de memria C0 (C zero). Para representar um caractere, voc
deve utilizar o seu respectivo valor na tabela ASCII. Por exemplo, o caractere
A possui o valor hexadecimal 41 na tabela ASCII.
5. Construa uma aplicao no simulador SMS que compare dois valores
numricos e, caso sejam iguais, pule para o m. Caso sejam diferentes, execute
o comando HALT.
Referncias bibliogrficas
Hennessy, John L. Organizao e projeto de computadores : a interface hardware/sofware / John L.
Hennessy, David A. Paterson ; colaborao James R. Larus ; traduo Nery Machado Filho. 2.
ed. Rio de Janeiro : LTC, 2000. xxii, 551 p., il. (5)
Monteiro, Mario A. Introduo a organizao de computadores / Mario A. Monteiro. 3. ed. Rio
de Janeiro : LTC, 1996. 397 p., il.
Tanenbaum, Andrew S. Organizao estruturada de computadores / Andrew S. Tanenbaum ;
traduo Nery Machado Filho. 4. ed. Rio de Janeiro : LTC, 2001. 398 p., il. (3) Tanenbaum,
Andrew S. Organizao Estruturada de Computadores - 5 edio. (Biblioteca Virtual Pearson)
Stallings, William. Arquitetura e Organizao de Computadores - 8 edio. (Biblioteca Virtual
Pearson)
Gabarito
1.
MOV AL, 4
MOV BL, 3
ADD AL, BL ; O RESULTADO SERA ARMAZENADO EM AL
END
Introdua a computao.indd 101 18/7/2013 18:01:08
Process Black
102
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
2.
MOV AL, 4
MOV BL, 3
SUB AL, BL ; O RESULTADO SERA ARMAZENADO EM AL
END
3.
INICIO:
JMP DESVIO2
DESVIO1:
JMP FIM
DESVIO2:
JMP DESVIO1
FIM:
END
4.
INICIO:
JMP DESVIO2
DESVIO1:
JMP FIM
DESVIO2:
JMP DESVIO1
FIM:
END
Introdua a computao.indd 102 18/7/2013 18:01:08
Process Black
103
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
5.
MOV AL, 3
MOV BL, 3
CMP AL, BL
JZ FIM ; IGUAIS
HALT ; DIFERENTES
FIM:
END
Introdua a computao.indd 103 18/7/2013 18:01:08
Process Black
104
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Introdua a computao.indd 104 18/7/2013 18:01:08
Process Black
10
EXECUO DE PROGRAMAS
Mauricio da Silva Escobar
Este captulo apresentar uma viso prtica sobre a utilizao do simulador SMS
para a construo de aplicaes que utilizam os comandos de manipulao de
dados, os desvios e a utilizao dos perifricos.
10.1 Controles bsicos de repetio
Uma repetio, de forma simplificada, consiste em realizar um conjunto de
operaes diversas vezes at que uma determinada condio seja satisfeita. A
condio neste caso, dita como a condio de trmino do lao (ou repetio). Em
computao, utiliza-se tambm o termo loop para representar repeties.
Por exemplo: incremente um nmero de uma em uma unidade, indo de zero at 10.
Esse problema pode ser facilmente resolvido com uma estrutura em repetio. Cria-
se uma condio de trmino, que chegar at 10 e uma configurao de incio.
O programa inicia com o valor 0 (zero). A funo da repetio somar 1 ao valor
at que a condio seja atendida. Esse valor, que neste caso um contador, deve
ser armazenado em um registrador. Durante a repetio esse valor deve ser testado
verificando nesse caso, se a condio de trmino foi atendida. Note que o valor 10
em hexadecimal o valor A.
Introdua a computao.indd 105 18/7/2013 18:01:08
Process Black
106
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
O cdigo a seguir implementa essa lgica.
1
2
3
4
5
6
7
8
9
10
11
12
; Programa contador
MOV AL, 0
REPETICAO:
INC AL
CMP AL, A
JZ FIM
JMP REPETICAO
FIM:
END
Na linha 3, antes de iniciar a repetio inicializamos o contador (registrador AL)
com o valor 0. Para representar o trecho de cdigo que deve ser executado dentro
da repetio foi necessrio criar um rtulo para organizar o programa. Esse rtulo
foi chamado de REPETIO. Dentro do lao, na linha 6, o contador incrementado
em uma unidade utilizando o comando INC. Na linha 7 feita uma comparao
do contador com o valor hexadecimal A (10 em decimal). O comando JZ utilizado
para desviar o programa em caso de sucesso, isto , a comparao resultou em
verdadeiro.
Caso contrrio, continua-se na repetio. Quando a condio for falsa, isto , chegou
a 10, o programa desvia para o rtulo FIM, que por sua vez encerra a execuo
atravs do comando END.
O cdigo anterior pode ser alterado de forma a criar um contador infinito. Ele
contar at que o valor do contador atinja o limite representvel, isto , causando
um overflow. O cdigo a seguir implementa essa lgica.
1
2
3
4
5
6
7
8
9
10
; Programa contador
MOV AL, 0
REPETIO:
INC AL
JMP REPETIO
FIM:
END

Introdua a computao.indd 106 18/7/2013 18:01:08
Process Black
107
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Para criar um loop infinito bastou tirar a condio de trmino, mantendo o salto
incondicional (comando JMP).
O simulador SMS dispe de uma instruo de salto que executa quando a CPU
detecta que houve overflow. Essa instruo pode ser utilizada no exemplo
anterior para finalizar a execuo da aplicao quando o contador atingir o limite
representvel, sem que haja uma anormalidade no programa, isto , um resultado
no esperado. O programa a seguir implementa essa lgica adicionando ao cdigo
o comando JO (jump overflow) na linha 7.
1
2
3
4
5
6
7
8
9
10
11
; Programa contador
MOV AL, 0
REPETIO:
INC AL
JO FIM
JMP REPETIO
FIM:
END
De maneira geral, as instrues de salto podem ser usadas no controle das condies
que fazem com que, um mesmo programa alterne nos trechos de cdigo que devem
ser executados.
10.2 Manipulando dados na memria
Outra funcionalidade importante a utilizao da memria. O simulador SMS
dispe de uma memria simulada de 256 bytes. Note que a memria principal
utilizada tanto para o computador armazenar o programa a ser executado, quanto
para os dados que esse programa utiliza.
Quando maior o programa, isto , quando mais instrues forem utilizadas na
sua programao mais espao ser demandado na memria. As instrues so
armazenadas a partir do incio da memria.
Introdua a computao.indd 107 18/7/2013 18:01:08
Process Black
108
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
No simulador SMS a memria enderevel utilizando valores hexadecimais, indo
da posio 00 at a posio FF, como ilustrado na Figura a seguir.
A instruo que realiza a manipulao de dados a MOV. A posio de memria
a ser acessada deve ser colocada entre colchetes.
Note que a memria pode ser acessada para leitura ou escrita. O comando MOV
trabalha com dois operandos. Para escrever na memria deve-se especificar
a posio de memria no primeiro operando e, para ler da memria deve-se
especificar a posio de memria no segundo operando, sendo no primeiro
operando o registrador que armazenar o valor lido da memria.
O simulador SMS no permite a escrita de valores diretamente na memria.
Primeiro o valor deve ser armazenado em um registrador para s depois esse
registrador ser escrito na memria.
O exemplo a seguir ilustra a escrita do valor 50 para o e endereo D0 de
memria:
MOV AL, 50
MOV [D0], AL
END
Introdua a computao.indd 108 18/7/2013 18:01:09
Process Black
109
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Note que como queremos escrever na memria, o endereamento foi colocado no
primeiro operador.
O exemplo a seguir ilustra a leitura de um valor da memria:
MOV AL, [D0]
END
Nesse exemplo, o valor armazenado na posio D0 da memria ser copiado para
o registrador AL para posterior utilizao.
O exemplo a seguir ilustra a utilizao da memria para a realizao de uma
operao aritmtica. So lidos dois valores previamente definidos, feita a soma,
e aps, o resultado escrito em uma terceira posio de memria.
MOV AL, 1
MOV BL, 2
; copia os valores para a memria
MOV [50], AL
MOV [51], BL
; copia os valores da memria
; de volta para os registradores
MOV AL, [50]
MOV BL, [51]
ADD AL, BL
; copia o resultado para a memria
MOV [53], AL
END
10.3 Lendo dados do teclado
O teclado um dos perifricos simulados disponibilizados pelo simulador SMS. Ele
alocado na porta 00 e serve para o usurio entrar com valores em uma aplicao.
Voc pode ler uma tecla por vez, cujo cdigo do caractere, referente tabela ASCII
ser armazenado no registrador AL.
Introdua a computao.indd 109 18/7/2013 18:01:09
Process Black
110
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
O programa a seguir l uma tecla do usurio e, automaticamente, mostra o valor
lido na tela (a partir da posio de memria C0).
Quando o comando IN 00 executado, o simulador SMS bloqueia a execuo do
programa e abre uma janela solicitando ao usurio que entre com uma tecla. Aps,
o programa exibe na tela a tecla informada pelo usurio.
O programa a seguir, l do usurio dois valores inteiros entre 0 e 9, realiza uma
soma e armazena o resultado no registrador AL.
IN 00
PUSH AL
POP BL
SUB BL, 30
IN 00
SUB AL, 30
ADD AL, BL
END
Note que aps a leitura das teclas do usurio, o programa subtrai o valor lido por
30. Essa subtrao necessria, pois na tabela ASCII, o caractere 1 representado
pelo valor 31, isto , para termos o valor desejado (o valor 1), devemos subtrair o
cdigo do caractere por 30, e somente aps normalizar os valores podemos de fato
realizar a soma (comando ADD).
Introdua a computao.indd 110 18/7/2013 18:01:09
Process Black
111
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
O programa a seguir realiza um lao (repetio) que l uma tecla do usurio
exibindo o valor lido na tela. O programa encerra quando o usurio entrar com
a tecla ENTER.
REPETE:
IN 00
; testa se a tecla inserida foi Enter
CMP AL, 0D
JZ FIM
; caso contrrio, mostra na tela
MOV [C0], AL
JMP REPETE
FIM:
END
10.4 Trabalhando com o perifrico semforo
Antes de enviar informaes para o semforo, necessrio entender o seu
funcionamento. A figura a seguir ilustra o esquemtico do semforo.
Note que o semforo possui 8 sinais digitais de entrada. Cada sinal de entrada
responsvel por acender ou desligar uma das luzes do semforo. Da direita para
a esquerda, os dois primeiros sinais no so usados. Os sinais 3, 4 e 5 controlam
o semforo da direita e os sinais 6, 7 e 8 controlam as luzes do semforo da
esquerda.
Introdua a computao.indd 111 18/7/2013 18:01:09
Process Black
112
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Cada configurao do semforo chamado de estado. Primeiro voc precisa
determinar quais luzes deseja acender e depois achar a combinao binria que
passe valores lgicos 1 para os respectivos sinais. Por exemplo, para acender as
luzes do semforo da direita precisamos do valor binrio 00011100. Para acender
as luzes do semforo da esquerda precisamos do valor binrio 11100000. Aps
definir a sequncia binria, voc deve converter o valor binrio para hexadecimal
para s aps enviar para o perifrico.
O cdigo a seguir ilustra a troca de estado dos semforos.
INICIO:
MOV AL, E0 ; 11100000
OUT 01
MOV AL, 1C ; 00011100
OUT 01

JMP INICIO
END
10.5 Trabalhando com o perifrico elevador
A utilizao do perifrico elevador, disponvel
na porta 06, similar do semforo, isto ,
cada sinal digital de entrada responsvel
por uma funo do elevador.
A imagem a seguir ilustra o esquema do
elevador e seus sinais de entrada.
Introdua a computao.indd 112 18/7/2013 18:01:10
Process Black
113
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Da direita para a esquerda, o primeiro sinal comanda (sinal com o valor lgico
em 1) o elevador a subir, o segundo sinal a descer. O terceiro e o quarto sinais
servem para o controle do elevador, isto , para saber quando o elevador est
respectivamente no topo ou na base.
O cdigo a seguir ilustra a utilizao bsica do elevador:
MOV AL, 01
OUT 06
END
Atividades
1. Construa um programa que l uma tecla em minsculo e a transforma para
maiscula, exibindo-a na tela.
2. Construa uma aplicao no simulador SMS que leia 5 caracteres do usurio
mostre a palavra invertida na tela.
3. Escreva um programa que executa um lao de 1 a 10, mostrando no display o
valor da iterao corrente, e ao nal mostre a mensagem FIM.
4. Escreva um programa utilizando os sinais de trfego (perifrico 01) de modo
que as luzes dos semforos funcionem de um modo mais realista.
5. Escreva programa que leia 5 teclas do usurio e determine se a palavra
palndromo.
Referncias bibliogrficas
Hennessy, John L. Organizao e projeto de computadores : a interface hardware/sofware / John L.
Hennessy, David A. Paterson ; colaborao James R. Larus ; traduo Nery Machado Filho. 2.
ed. Rio de Janeiro : LTC, 2000. xxii, 551 p., il. (5)
Monteiro, Mario A. Introduo a organizao de computadores / Mario A. Monteiro. 3. ed. Rio
de Janeiro : LTC, 1996. 397 p., il.
Tanenbaum, Andrew S. Organizao estruturada de computadores / Andrew S. Tanenbaum ;
traduo Nery Machado Filho. 4. ed. Rio de Janeiro : LTC, 2001. 398 p., il. (3) Tanenbaum,
Andrew S. Organizao Estruturada de Computadores - 5 edio. (Biblioteca Virtual Pearson)
Stallings, William. Arquitetura e Organizao de Computadores - 8 edio. (Biblioteca Virtual
Pearson)
Introdua a computao.indd 113 18/7/2013 18:01:10
Process Black
114
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Gabarito
1.
IN 00
SUB AL, 20
MOV [C0], AL
END
2.
MOV CL, C0 ; APONTA PARA A PRIMEIRA POSIO DO DISPLAY
MOV DL, 0 ; CONTADOR PARA CONTROLE DO LOOP
LEITURA:
IN 00
PUSH AL
INC DL
CMP DL, 5 ; TESTA SE CHEGOU AO FINAL DO LOOP
JZ EXIBE ; SIM - TERMINEI O PRIMEIRO LOOP
JMP LEITURA ; NAO TERMINEI AINDA
EXIBE:
POP AL
MOV [CL], AL
INC CL
DEC DL
CMP DL, 0
JZ FIM
JMP EXIBE
FIM:
END
Introdua a computao.indd 114 18/7/2013 18:01:10
Process Black
115
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
3.
; ESCREVE A PALAVRA Loop
MOV AL, 4C
MOV BL, 6F
MOV CL, 6F
MOV DL, 70
MOV [C0], AL
MOV [C1], BL
MOV [C2], CL
MOV [C3], DL
MOV CL, 31 ; CONTADOR
LOOP: ; dene um Rotulo chamado LOOP
; LEMBRE QUE O CARACTERE 1 E EQUIVALENTE AO
VALOR 31 NA TABELA ASCII
MOV [C5], CL
INC BL
; AVANCA A POSIO NO DISPLAY
INC CL
; INCREMENTA O CONTADOR

CMP CL, 3A ; VERIFICA SE CHEGOU AO FINAL DO LOOP
JZ FIM

; CASO CONTRRIO VOLTA PARA O INCIO DO LOOP
JMP LOOP
FIM:
; ESCREVE A PALAVRA FIM
MOV AL, 46
Introdua a computao.indd 115 18/7/2013 18:01:10
Process Black
116
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
MOV BL, 49
MOV CL, 4D
MOV DL, 20 ; ESPAO EM BRANCO

MOV [C0], AL
MOV [C1], BL
MOV [C2], CL
MOV [C3], DL
MOV [C5], DL
; o domando end deve ser o ltimo comando de um programa
END
4.
REPETE:
MOV AL, 84
OUT 01
MOV AL, 8C
OUT 01
MOV AL, 30
OUT 01
MOV AL, 70
OUT 01
JMP REPETE
END
Introdua a computao.indd 116 18/7/2013 18:01:10
Process Black
117
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
5.
IN 00
MOV [C0], AL
IN 00
MOV [C1], AL
IN 00
MOV [C2], AL
IN 00
MOV [C3], AL
IN 00
MOV [C4], AL
; agora comea a lgica de comparao
; utilizarei dois ponteiros, um indo do incio para o m, e outro do m para
o incio da palavra ; a ser comparada
MOV AL, C0
MOV BL, C4
LOOP:
MOV CL, [AL]
MOV DL, [BL]
INC AL
DEC BL
; TESTA CONDIO DE TRMINO
CMP AL, BL
JZ FIM_OK
CMP CL, DL
JZ LOOP
Introdua a computao.indd 117 18/7/2013 18:01:10
Process Black
118
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
MP FIM_NAO_OK
FIM_OK:
MOV AL, 4F
MOV [D0], AL
MOV AL, 6B
MOV [D1], AL
MOV AL, 20
MOV [D2], AL
MOV [D3], AL
HALT
FIM_NAO_OK:
MOV AL, 46
MOV [D0], AL
MOV AL, 61
MOV [D1], AL
MOV AL, 69
MOV [D2], AL
MOV AL, 6C
MOV [D3], AL
HALT
END
Introdua a computao.indd 118 18/7/2013 18:01:10
Process Black
119
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Introdua a computao.indd 119 18/7/2013 18:01:11
Process Black
120
U
L
B
R
A


E
d
u
c
a

o

a

D
i
s
t

n
c
i
a
Introdua a computao.indd 120 18/7/2013 18:01:11
Process Black

Potrebbero piacerti anche