Você está na página 1de 20

@eld

12

INtRODUÇÃO AOS
MICROPROCESSADORES E
MIcROCOMPUTADORES
Sumário

12.10 que é um Computador Digital


12.7 Palavras de Instrução
12.8 Execução de um Programa em Linguagem
12.2 Como os Computadores Pensam? de Máquina
12.3 0 Agente Secreto 89 Estrutura Tipica de um Microcomputador
12.4 Organização Básica de um Sistema de 129
12.10 Operações de Leitura e Escrita
Computador
12.5Elementos Básicos de um
12.11 Comentários Finais
Microcomputador
12.6 Palavra de Computador
Objetivos
o fnal deste capitulo vocè será capaz de:

a Descrever o fncionamento e a operação de cada um dos cinco elementos báisicos de qualquer


computador.

dr ae didesvantagens
a Avaliar as Entevantagens entre os váriosmicropesador tieposum
ferença entre um de formato de palavas do computador.
a Analisar os chamados ciclos de busca e execuç o ocorridos durante a execução de uma instrução
básica

a Entender
Descrevero aspapel operacional
seqüènci dos diferentes
as de eventos tipos dedurante
que ocorrem os ciclutioslidezadosleituraem emicrocomputadores.
barramento escrita.
Introdução

Näo há nenhum exagero em dizer que os microprocessadores e os microcomputadores provocaram uma tremenda revolução
na indústria eletrónica e, por conta disso, causaram um tremendo impacto em muitos aspectos da vida de todos
ampl a variedadeemdelarga
A integração produtos (LSI) reduziu
escalautilizam tanto omicroprocessadores
rotineiramente processadores queem osseusprojprojetiestetas de uma
tamanho e o custoe dosmicrocomputadores
Neste capítulo, vamos estudar os princípios básicos da operação dos microcomputadores. Uma vez que existe
diversos livros-texto dedicados exclusivamente a este assunto, nosso principal objetivo neste capítulo é fornecer uma
base sólidaaquiparaenfocados
princípios Apesar de nosdeconcentrarmos
posteriores.a computadores
estudos aplicam-se todos nos microcomputadores, muitos dos conceitos e

12.1 0 QUE É UM COMPUTADOR DIGITAL?


Im computador digital é a combinação de diversos dispositivos e circuitos digitais que podem executar uma seqūèr
de operaçóes programadas com um mínimo de intervenção humana. A seqüéncia de operações é denominada programa
0 programa é um conjunto de instruçóes codificadas, armazenadas na memória principal do computador, junto d
odos os dados que ele venha a precisar no decorrer de sua execução. Executar um programa nada mais é do que
levar a efeito cada uma das instruções do programa, na ordem lógica em que elas foram armazenadas na memória,
até o término do programa. Vale observar que isto é feito a velocidades extremamente alta

12.2 COMO OS COMPUTADORES PENSAM?


Computadores não pensam! 0 programador do computador fornece-Ihe um programa com instruções e dados que especifica
ada detalhe do que deve ser feito. Então, em última análise, 0 computador é apenas uma máquina que opera a velocidades
altíssimas, manipulando dados, resolvendo problemas e tomando decisões, tudo sob controle do programa. Se o programadon
548
CAFnULO 12/ INtRODUÇAO AOS MICROPROCESSADOREs E MICROCOMPUTADORES

tenetet um erro na elaboração do programa, ao fornecer um dado errado para ser processado, 0 computador produzirá
resultados errados. Um ditado bem popular entre os iniciados na ciência da computaçação diz que “lixo entra, lixo s
de "lixo" significa informaçáo errada. Ou seja, se o computador receber “lixo", vai processar "lixo" ae dar “lixo"
como resultado.
Talvez a pergunta feita no subtitulo ficasse melhor se fosse formulada de outra maneira: como os computadores
utam um programa? Esta questão é respondida pela análise do diagrama da arquitetura (combinação das diversa
partes componentes) do computador, e passando depois para o estudo do processo de execução de instruçóes propriamente
dito, processo este que acontece de maneira cielica durante a execução de um programa. Vamos fazer exatamente ista
analogia ao processo de execução de programas, analogia esta que
contempla diversos conceitos envolvidos na operação do computador.

12.3 0 AGENtE SECRETO 89


0 agente secreto 89 está tentando descobrir quantos dias faltam para que um grupo
adial. Seu contato, infiltrado entre os terroristas, comunicou-Ihe que esta informação poderá ser obtida através da
consulta a uma série de caixas postais. Para assegurar que ninguém além do agente 89 obtenha esta informação, ela
foi espalhada em 10 caixas postais diferentes, e o seu contato forneceu-lhe as chaves de cada uma delas, junto com
as seguintes instruções
t ) ae
1. A informação em cada caixa está escrita em código.
2. Abra primeiro a caixa número le decodifique a informação lá armazenada, executando-a em seguida.u
3. Continue abrindo as caixas em seqüència, a não ser que alguma instrução em qualquer uma delas the indique o
10. A cada caixa aberta, a informação nela contida deve ser decodificada e executada.bi
4. Uma das caixas está preparada para explodir, se aberta. eu e
Nosso agente, de posse das chaves, das instruções e do livro de códigos, dirigiu-se rapidamente para os correios,
ade as caixas postais estão localizadas
A Fig. 12.1 mostra 0 conteúdo de cada uma delas, depois de ter sido decodificado. Assuma que vocé é0 agente
89; comece na caixa 1e siga a seqüéncia de operações de forma a descobrir quan os dias faltam para
Naturalmente, isto não lhe vai dar tanto trabalho quanto deu ao agente 89, que precisou decodificar cada mensagem
ntes de executá-la. A resposta que o agente procurava está no próximo parágrafo.
Se vocé cumpriu as instruçóes corretamente, o procedimento terminou na caixa 6, com a obtenção da resposta
17. Se cometeu algum err , com certeza vocé já não está mais entre nós, pois, ao abrir a caixa 7, tomou o caminho
do purgatório. A percorrer a seqüència de operações descrita acima, vocé virtualmente imitou a forma de operar de
um computador, deparando-se com diversos conceitos com os quais deveremos nos familiarizar ao longo deste capítulo.
h eta eeE) slsa
I1 I1▇ Divida o resultadooninm snemcmim neilttn
armazenado na caixa 0 an ajanterior pelo núm d cointothg n ubuE ze t
armazenado na
seu número de agente s a ara cx
caixa (10.
IStEi t 2ati
b i i a a
Se 0 resultado anterid

Subtraia do resultado o năo for iqual a 30, vá par


número armazenado na a caixa 0. Caso contrário,
caixa (8). continue até a próxim
0
cai EIe3 S0 )

Subtraia 13 unidades do PARE. Voo


dta tuLeg ha
Ie I| ▇
Gsbunni
já tem a resposta.

gce n bkshs
nu neasut9s
BOMBAI Enate5ur dinrsi
20

(NHMo 201ote8

60 Fig. 12.1 Conteúdo das 10 caixas postais com informaçóes


para 0 agente 89.
sçio 124/ORGANZAçio riSICA DE UN SSTBMA DE coNNTADOR 549
par osa z dsotir tis wnris,a0 meneda a lbja d agunte sato, ewifendo omo des skcinm ▇
com oNocomputador.
caso de vocé náo ter adivinhado até a
warmi e e daón deen eanamuzendn As cus
agora, postains agemn cpons
caixas voti
asaeuus como qaneei
a memóri e cda dede eaeaa peo
um computador, aene
ond
hi aalposo
pogeto,
oepondem eue eoaedt
ogsaos ender o coneide
enderecos deeimemoria. 7e ala oquedaosrebscne
sen da citiemsetam èosmguaise devto d,e asgrs
ném imiotrs ses lnineesdetsdshe imeotstmpdes.
a cxu
oaesavmdies stręçdesumainassrcicaionasdedewonadaLa6.descai
s mes tipos diferentNaessaidenain4hái As caiuxn,as chunade contém instrupós para a realiaçác
1,2,3e5śtotémintno
a istnucáo pade enude recasate (odeodecisãoompatdeveador)ser tomada
normal, indo para o endereço 5. Esta d decsta comse devibaseanosperaadsazsp7
resul t ados de sse coniantmétinuacsuaas executadas
operaçóes sequcnca
wutomente.
gnse orelgocedi shun aoolcatraém wmacaixa is(otnsis némert
eréncinnentoAeatneioeahumna o mato odesmpes
cana). queEsaniinosinpesiças,adedenoeihenen
n ada dodapare,puaintormaser exeotada.
20 sgente
está encernado (o pegaa ta compeasa) io its pox deornisa
eune adigáo. dasPorinexempe,
CudaensderumaAeo.segunda strparte
uges desta miceiasrta épate
earaitmprétimesma instruçao
condicional e constituida de duas partes – um código de operaçáo
de desvida opmmei
forecna imareça, seu sodigo de opersçio, espeonea a operacao
do é normal m
n casousadoespeci
gser
ente
na operação
ceonheci d e como operando
uéespeciffazicadoparteneahum
al onde denéosubtraçáo e seu
endereçoedeço eooperando.
da instruçao,
endet endereçoEmdovezoperando.
diso,o Aproinpristruçao da cai(dado)
de 0 endereço (caixa 9) do dado a ser usado na adição. Tal
o operando ra 5e
memotiUma,computador aquela0 queagenteestá secrno eprito,merodecodiendereçais
começando, portal como fica e executainseqüenci
strçsesalsimoenteweeutadns
e as instruçóes armazenadas
em ordem, na
a náo se
ohigando uma instroçi
referenci
1 sermoexecutadas
oa fimde devi
aemdo, seqüéncia, o(talacomo
de obter
comecane
caixa 4)aKotçar
prórima adainstruço um salo Deois
set ewecatato. endereço nho seqisencial a0
para umdonoRodes
ndo por aquela armazenada no novo endereço.
Iovamente
sto é oanalmáxiisadomo maide sinformação que se podequeextrai
adiante. Esperamos esta ranaldaoanal
gia otenha agentdeo secret
gia doforneci subsidoi.osCadaque seum mostrem
desses concei
uteis tquando
o
voc iniciar um estudo mais formal sobre os compatadores digitai

12.4 ORGANIZAÇÁO BÁSICa IDE UM SISTEMA DE COMPUTADOR


computador
deTodomemória, é formado
a unidade por cincoa unidade
de controle, entradaaise oua unidade
elementosde essenci unidades:dea saiunidda.adeAs ariinterconexóes (UAL),tais aunidades
tmérica-lógicaentre unidade
stio mostradas na Fig. 12.2. As setas no diagrama indicam a direçáo do fluxo dos dados, instruçóes e sinais de controle.
Deo

Unidade

Ca1gn
(UAL)

Do Para 0

exter ( N

Controlea
Cnt

mória

ig, 12.2 Organização básica de um computador


550
DLO 12/ INTRODUÇÄO AOS MIcROPROCESSADORES E MICROcOMPUTADORES
bserve que foram usados dois tamaahos diferentes de setas; as maiores representam dados coa instnugdes, isformapes
que em gerai precisam de um número grande de linhas para serem trasmitidas. as setas pequenas representam
os sinais de comtrole, normalmente em numero redezido, de maneira que são necessárias poucas linhas para representálan
As várias setas da figura estao numeradas, de forma a faclitar sua releréncia na descrição que se segue.
Unidade Aritmética-Lógica A unidade arimética-1ógica é a parte do computador onde sáo fteitas as operagies
aritméticas e lógicas com os dados. 0 lipo de operaçao a ser realizado num particular instante de tempo é determinado
por sinais vindos da unidade de controle (seta 1). os dados a serem operados pela unidade aritmética-lógica poderäo
vir não só da memória (seiata ede de entrada (seta 3). Oš resultados das operaçóes efetuadas na unidade
2) como da unidae

ética-lógica podem ser transteridos para a memória (seta 4) ou para a unidade de saída (seta 5).
Unidade de Memória A memória armazena grupos de digitos binários (palavras) que podem representar instruçóes
a serem executadas pelo computador ou dados para serem operados pelas instruçóes durante a execução de um programa,
Ela também serve como local de anmazenamento para resultados intermediários ou finais obtidos pelas operaçóes aritméticas
fetuadas pela unidade aritmética-lógica (seta 4). A memória é uma unidade que executa somente duas operaçóes:
leitura e escrita. 0 funcior la também é controlado pela unidade de controle, a qual indica, através
de sinais de controle (seta 6), qual das duas operaçóes a memória deve realizar naquele instante. Um determinado
adereço pode ser acessado pela unidade de controle, que gera o endereço desejado e 0 entrega à memória (seta 7).
As informaçóes podem ser escritas na memória vindas da unidade aritmética-lógica ou da unidade de entrada (seta 8),
mais uma vez sob o comando da unidade de controle. As informações podem ser lidas da memória para a unidade
aritmética-lógica (seta 2) ou diretamente para a unidade de saída (seta 9).

Unidade de Entrada A unidade de entrada é constituída por todos os tipos de dispositivos que obtém informaçóes
externas ao computador e as coloca na unidade de memória (seta 8) ou na unidade aritmética-lógica (seta 3). A unidade
de controle determina onde a informação de entrada deve ser colocada (seta 10). A unidade de entrada é usada no
armazenamento de instruçóes e dados na memória, para que o programa constituído por essas instruções e dados possa
ser executado. Esta unidade também é usada para entrar com dados na unidade aritmética-lógica, a partir de um dispositivo
externo, durante a execução de um programa. Alguns dos dispositivos de entrada mais comuns são teclados, discos
magnéticos, fitas magnéticas e conversores analógico-digitais (ADC's).

Unidade de Saída A idade de saída é1formada por todos os tipos de dispositivos usados para se transferir
informaçóes do computador para o "mundo exterior”. Os dispositivos de saída também são dirigidos pela unidade de
controle (seta 12), podendo receber dados de UAL (seta 5) ou da memória (seta 9), colocando-0s no formato apropriado
para consumo externo ao computador. Exemplos de dispositivos de saída são os displays, impressoras, discos magnético
fitas magnéticas, monitores de vídeo e conversores digital-analógicos (DAC'S).
Enquanto executa um programa, 0 computador tem necessidade de apresentar resultados ou sinais de controle
para 0 mundo exterior. Por exemplo, um sistema pode ter uma impressora de linhas como dispositivo de saída. Neste
caso, 0 computador envia sinais para que os resultados sejam impressos em formulário contínuo. Um pequeno microcom-
putador pode informar seus resultados usando um painel luminoso ou um display de LED's.
Interface 0 aspecto mais importante das unidades de ENTRADA e SAÍDA diz respeito ao interfaceamento, que
pode ser definido como 0 ato de combinar dispositivos muito diferentes, para que eles possam funcionar de forma
apativel e coordenada. Podemos também definir o interfaceamento de maneira mais específica, como sendo a sineroni-
ção da transmissão da informação digital entre o computador e os dispositivos externos de entrada e saída.
Muitos dispositivos de entrada/saída não são diretamente compatíveis com o computador por causa de diferenças
ocidade de operação, formato dos dados (hexa, ASCII, EBCDIC, binário), modos de transmissão (serial, paralelo)
níveis dos sinais lógicos. Tais dispositivos precisam de circuitos especiais de interface que permitam que eles se comuniquem
hidades de controle, aritmética-lógica e de memória do computador ao qual elas vão se ligar. Um bom exemplo
éo caso do terminal de vídeo, que pode operar como dispositivo de entrada e de saída. Este terminal transmite e
recebe dados serialmente, um bit de cada vez, enquanto a maioria dos computadores manipula dados em paralelo.
Assim, 0 terminal de vídeo precisa de um circuito de interface que faça as modificaçóes necessárias nos dados transmitidos/re-
cebidos, de maneira a permitir que a comunicação terminal-computador e computador-terminal seja feita sem problemas.
Unidade de Controle A função da unidade de controle parece óbvia à primeira vista. Como 0 nome indica,
ela controla (dirige) a operação de todas as demais unidades componentes do computador, fornecendo-Ihes sinais de
aporização e de controle. Vista por outro ángulo, a função da unidade de controle é semelhante à de um maestro,
que tem a responsabilidade de manter todos os membros de uma orquestra em perfeito sincronismo. Esta unidade
contém circuitos
execução lógicosdecombinacionais
das instruções um progra e seqüenciais, responsáveis pela geração dos sinais de controle necessários à
A unidade de controle busca uma instrução da memória, enviando seu endereço (seta 7) e um comando
unidade de memória. A instrução armazenada no endereço enviado é depois transferida para a unidade de
controle (seta 11). Esta instrução, que está codificada em binário, é então decodificada pelos circuitos da unidade de
controlepara
de atrole, determinarà execução
de qual desta struções estamos falando, 0 controle usa esta informação para gerar os sinais
das ininstrução.
COn

necessários
SECiO 125/EEMENTOS BÁsIcoS DE UM MICROcOMPUTADOR551

pocessdorsdio sepostda
poatse Centrat dedeProcesamento)
(Unidade somonetes uma uniaentode, Fig 122, puei
NaNeido a middsdeade anméi ca-liga : eiuidade
arintnslio a vezes
com
l i d ade de separaracparte i n tei
moa estodo dornormalminmeompundonee,
ns pcesmeto g ente" do compatador das demas, i r emos us sta denomi n açáo di v ersas
ente èé impkemcaiapoidas ecomounveenos mdestaist,rdsdd,senomms nmi
emaipv msnoeroempdtsomi
meroprskonsdor.n,cioudaade centea
QUEsTÓES DE REVISÄO

unidades básicas que compõem um computador digital, e descreva sucintamente cada uma del
1. Ci0 equeas éciumnco processador?
0 que significa interfaceamento, no contexto de um sistema de computação?

125 ELEMENTOS BÁSICOS DE UM MICROcOMPUTADOR


Éptador
muito iémconstituido
portante entender a diferença
por diversos entre oummaimiscimpottante
elementos, roprocessadordos( quais
P) e umeo mimieroproossador. Um microcom-
crocomputador (0C).mieroprocessador
eo um chip VLSI que contém todos os circuitos das unidades de controle e aritmetico-lógica – em outras palavras,
microprocessador é a própria unidade central de processamento. Ecomum fazet reterencia ao microprocesador como
unidade microprocessadora
istrado na Fig, 12.3, onde são fato dele osserelementos
pelomostrados a unidadebásicentral
cos de deumprocessamento de um microcomputador. Isto está
microcomputadon
ouquemaiasNas RAM's
chiunidade de combinados
ps VLSI memória, aparecem
de manei tanto
r a a as RAM'sa capaci
fornecer quantodadeasdeROM's.
memóri Aa seção das para
projetada é constiVale
RAM'so sistema. tuídaobservar
são necessárias, pois as informaçóes armazenadas nesta seção da memória serao alteradas várias vezes
por um
no decorrer da operação do sistema. As RAM's também são usadas para os armazenamentos intermediário e final
operações
dos resultados das RM realizadas pela unidade aritmética-lógica no decorrer da execução do programa.
é constitu
uída por um ou mais chips VLSi para armazenamento de informaçóes que não podem
ser alteradas no decorrer do processamento. Por exemplo, lá devem estar informaçóes que faráo com que o C monito
continuamente o teclado do sistema, ou pode estar armazenada a tabela de códigos ÁSCII necessários à transferência
de informações para terminais de vídeo ou impressoras.

U l0a0e de me

cks

RAM RO

Intertad
latera
e et n
de saida

Dispositivo5
de entrada
Dispositivos
de salda

Unidade de controle e Unidade de entrada

Unidade aritméticalógica

Este é 0 microcomputa0or ( )

Fig, 12.3 Elementos básicos de um micTocomputadon


552 CAPiT o 12/ INTRODUçiO AOS MICROPROCeSSADORES E MICROcOMPUTADOREs
As sepées de entnada e saida consèm os drcuitos de isterfsce necesdirios àearantia daomunicaás estreos dipss
de ENIRADsde esAiDe seids cemtém esdsoas do comsptadot. Em alqums mios, tais cincuites sio chips prodidy
depelooutros
própridiosposifabritcivanteos. Emdo mioutros
croprocessador
casos, 0s cipara
rcuitosservide riemnterface ace entre
de interfpodem es quanto um uma
ser tãoo simimcplroprocessadore grande vated
viedade
registrador.
0 Microprocessador 0 microprocesador éo conção do microcomputador, sendo responsável pela realizaço
de um sem-número de funções, dentre as quais destacamos;
Fornecimento de sinais de controle e de temporização a todos os elementos componentes do microcomputador.
2. Busca de instruções e de dados na memória.
3. Transferéncia de dados delpara memória e dispositivos de ENTRADAISAÍDA.
6.5. Real ização de operaçóes aritméticas e lógicas necessárias à execução de instruçóes.
4. Decodificação de instruções.

Responder aos sinais gerados pelos dispositivos de ENTRADA e SAÍDA, como RESET e INTERRUPT.
0 microproeesador comtém todos os cireuitos umkógichip.
cos necessári
Lio
s à realização
Apesar odisso, podemos destats fungóes.
controlar o queTalocorre nio esd
lógicadentro do
sprocessador através dos programas colocados na memória para que o microprocessador os execute. Isso torma
ponivel externamente, por estar en

hicroprocesador bastante versátil quandoqueremos mudar a forma dele operar, trocamos simplesmente os programas
nazenados nas suas memórias RAM (sofnware) e ROM (firmware) em vez de alterar seus circuitos eletrónicos (hardware).
Alógica interna do mictoprooessador e extremamente complexa, estando distribuída por trés unidades básicas;
a wnidade de controle e iemporizaçao, a unidade de armazenameno interno e a unidade arimérica-lógica (ver Fig. 12.4).
Vale observar que, aleém das funçóes especificas de cada uma destas unidades, a interação entre elas é um ponto muito
importante no estudo do microprocessador. As principais funçóes de tais unidades, bem como as interagçóes entre elas,
serão analisadas a seguir.
Afunção primordial da unidade de controle e temporização é buscar as instruçóes na memória e decodificar (interpretar)
ódigos de operação, gerando os sinais de controle e de temporização necessários a que as demais unidades do
nicroprocessador possam efetivamente executar tais instruções. Esta unidade também gera sinais de controle e de tempori
zação para dispositivos externos ao microprocessador, como memórias do tipo RAMe ROM e dispositivos de ENTRÁDA
e SAÍDA.
A unidade de armazenamento interno contém diversos registradores utilizados durante a execução de uma instrução
pelo microprocessador. 0
des é 0 contador de programa (program counter – PC), responsável pelo
dele

do endereço da próxima instrução a ser executada pelo microprocessador. Iremos usar o PC em nossas
discussóes subseqüentes sobre execução de programas. Além do PĆ existem diversos outros registradores que realizam
várias funçóes, como: armazenamento do código de operação de instruçóes que estiverem sendo decodificadas, armazena
to de dados que estão sendo operados pela unidade aritmética-lógica, armazenamento de endereços de dados a
serem buscados na memória, e muitos outros registradores de propósito geral, cuja utilização é controlada pelas instruções
do programa em execução. *
A unidade aritmética-lógica realiza uma gama variada de operaçóes aritméticas-lógicas sobre dados. Tais operaçóes
sempre incluem a adição, a subtração, as operações lógicas como o AND, OR, EX-OR, operações de deslocamento,
além de operações de incremento e decremento. Os microprocessadores mais avançados têm uma UAL que pode fazer
multiplicação e divisão. Durante a operação do microprocessador, as operações executadas pela UAL estão sob controle
da uanidade de controle e temporização, a qual naturalmente faz o que o manda o código de operação da instrução
que foi lida da memória para ser executada.

Seção de
UAL | 1"4 l1eI I I ( w 1 1 |

temporário

Seção de

vole e temponzaya

Microprocessador
Fig. 12.4 Unidades funcionais de um chip microprocessador.

Os registradores da unidade de armazenamento são divididos em registradores de propósito geral, cujo uso é definido pelas instruções em execução,
e registradores de propósito específico, de uso exclusivo do processador, que os utiliza no processo de execução das instruções de um program
Além do PC, existem diversos outros registradores de propósito específico, como 0 registrador de instruções (instruction register IR), que arn
código da operação da instrução que está sendo executada, 0 registrador de endereços de memória (memory address register MAR), que
endereço da informação a ser lida ou escrita na memória, e 0 registrador de dados de memória (memory buffer register – MBR), que arn
informação a ser lda ou eScra Ia mCmUTa.
SEÇiO 126/ PALAVRA DE COMPUTADOR553
QUESTÓES DE REVISÄO

J. Espl as diferenças
Cite iqosueelementos básicosentrede um croprocesador e um microcomputador.
um mimicrocomputador.
Cite as trés unidades principais de um microprocessador.
2.
3,

12.6 PALAVRA DE COMPUTADOR


Apuqusima
menor gaatdade de informacáo
informacão. disponivelunim
Por isso, a principal qualquer computador éo bit. Contudo, um ánico bit solado conda
em dealgu
poluvrs. O número de bits que formam uma palavra e informação um computador é um grupo de bits, denominad
denominadodetamanho da palrverude computador. o tamanho
avra doé umtamanho
asen paltermos dos prncipais de um
de sua palavra, computador de oito bis, computador deul6asbits,e
parámetros para descri c áo computador. Mui t vezes,assim
os computadores
por diante. Porsáo exemplo,
descritos
ane palcomputador
a vra também de 16indihictsa é odaguel e ho qual
tamanho dos asbarramentos dados saoque prooesados
instruçoes edeosdados, transpottam emos umdades
dados entre ts. 0 tamanho
de 16o biprocessador ea
memória, e entre o processador e os dispositivos de entrada e saida
Os computadores de maior porte (mainframes e supercomputadores) tém tamanhos de palavra usualmente na faixa
-64 bits. Os minicomputadores

4a seus
udores tal tananho está na faixa detém 32 bits.tamanhos de computador entre 8a 32 bits, enquanto que nos microcompu-
de 32-6
Os microcomputadores mais modernos (1BM PS2,ÄPPLE Maclntosh)
usum tamanho de palava de 16 e 32 bits. Em geral, um computador com palava de tamanhos maiores pode executar
pogamas numa velocidede mais alta pelo fato de a palav deste tipo de computador aaregar mais iniormaçso do
qgue a de um computador com palavra menor. No entanto, palavtas de tamanho muito grande signitiscam mais linhas
no barramento e, em consequéncia, mais conexóes entre o processador e memória, e entre o processador e dispositivos
dede entrada e saída, mais bits nos registradores internos, além de outros detalhes que complicam e encarecem o projeto
um computador.
Já sabemos de discussões anteriores que um grupo de oito bits é denominado byte. Por diversos motivos de natureza
histórica, o byte continua a ser usado até hoje como a unidade para descrever o tamanho da palavra e a capacidade
da memória dos computadores, mesmo os maiores, com tamanhos de palavras muito grandes. Diz-se que um computador
de oito bits tem palavra de um byte. Um computador de 16 bits tem palavra de dois bytes, e assim por diante. Uma
memória que possa armazenar 128K palavras de 16 bits, pode ter sua capacidade descrita como 256K byte

Tipos de Palavra de Computador Uma (palavvra, armazenada na memória de um computador, pode conter
um de dois tipos de informação — instruções ou dados. Dados podem ser informaçóes numéricas ou alfanuméricas
que são processadas pelo programa que o processador está executando. Os dados podem estar em vários formatos,
incluindo números binários com e sem sinal, números em BCD, em ponto flutuante, caracteres em BCD ou ASCII
e divers0s outros formatos. A seguir, apresentamos um exemplo de como 0 valor numérico + 86 o será armazenado
numa palavra de oito bits:
01010110

Abaixo está a representação em ASCII do caracter “ ", também numa palavra de oito bits:
01010110

Observe que 0 conteúdo das duas palavras é idéntico. 0 computador não tem como saber a diferença entre os dois
conteúdos. É da responsabilidade do programador conhecer os tipos de dados que estão sendo armazenados, para assegurar
que o programa possa interpretá-los e processá-los corretamente.
Apresentamos a seguir um exemplo de uma palavra de 16 bits usada para armazenar dois caracteres ASCII, “V»
e“W”;

0101 110010

Esta mesma palavra de 16 bits pode ser usada para representar +22103. Fica claro que quanto maior o tamanho
palavra,
da pala maiores serão os valores numéricos possíveis de armazenar nesta memória, e mais caracteres poderão
armazenados por palav
Palavras de instrução são bem mais complexas do que as de dados. Este assunto será discutido na seção seguinte.
554CAPTULo 12/INTRODUÇÁO AOS MICROPROCESSADORES E MICROcOMPUTADOREs

QUESTÖES DE REVISĀO

2. Quai s tipos dedeinumformação


Quaiss osas doivantagens possíveicom
computador s de tamanho de palavra nagrande,
serem armazenados um computador?
a de um
memórisobre computador com palavra
pequena?

12.7 PALAVRAS DE INSTRUÇĀO

0 formato pouco entredas ospaldiavvras


aho dedaspalpalavra.avrasIstode nãodadosse variaplaicamuiaosto formatos ersosquecomputadores, nstruçóes entre
armazenam isobretudo aqueldees idenstrução).
(palavras mesmo
Tais palavras contém a informação necessária para os computadores executarem suas operaçóes, eo formato
as computadores, e o oódigo
uma palavra de
usado para isto variam imensamente de computador para computador. Na maioria dos
instrução carrega duas unidades básicas de informação: a operação a ser realizada e 0 endereço do operando (dado)
Fig. 12.de5 20mostra
com Apalavra bits. umOs exempl
20 bitso dade palumaavrapaldeavrainstrução são didevidumidosúnico
de instrução endereço, eira parte dahipotético
partes.paraA umprimcomputador
rado.

em duas palavra
(bits de 16 a 19) contém o código de operação (opcode), Os quatro bits do código de operação representam a operaçãc
que o computador está sendo instruído a realizar, como adição ou subtração. A segunda parte (bits de 0 a is) é o
ória onde 0 operando está armazenado.
ndereço do operando, que representa 0 luga

Palavra 00 mSIuya▇
ódigo de
Endereço de
operando de 16 bits
C

de quatro bits |

19 18 17 16 15 14 13 12 1 10 9 8 6 54 2 0 Fig. 12.5 Uma palavra de instrução de um endereço.

Com quatro bits usados para código de operação existem 2' = 16 possíveis códigos de operação diferentes, cada
m dos quais indicando uma instrução diversa. Isto significa que um computador que utilize este formato de instrução
fica limitado a executar apenas 16 instruçóes diferentes. Um computador mais versátil precisa ter mais instruções básic
qüência, precisa de mais bits no seu código de operação. De qualquer maneira, toda a instrução possível
de ser executada por um computador tem associado a ela um código de operação específico, através do qual o computador
(unidade de controle identificá-la (decodificá-la).
A palavra de instrução da Fig. 12.5 tem 16 bits reservados ao código do endereço do operando. Com estes 16
bits, existirão 21 = 65.536 endereços diferentes. Então esta palavra de instrução pode especificar 16 códigos de operação
versos e 21 = 65.536 endereços de operandos. Como exemplo podemos tomar a seguinte palavra de instrução de
dive
iver

20 b its

0 0 i0 10 11 0 10 01 1 10 0

Código. Código
de operação de Endereço

0 código de operação 0100 representa uma das 16 possíveis instruções que este computador está preparado para executar.
Vamos assumir que tal código de operação é da instrução de adição (ADD). 0 endereço do operando é010i101001110010
ou, numa representação mais conveniente, SA72 em hexa. De fato, esta palavra de instrução poderia ser representada
em hexadecimal, como abaixo:

4 5 A 7 2
Código Endereço
de operação
Esta palavra de instrução informa ao computador para fazer o seguint

Buscar a palavra de dados armazenada no endereço SA72, enviá-la para a unidade aritmética-lógica e adicioná-la
ao valor armazenado no acumulador. 0 resultado da soma deve ser armazenado no acumulador. (0 conteúdo anterior
do acumulador é perdido.)

emos examinar outros tipos de instruções no decorrer deste capítulo.


Irem
BEÇÁO 12.7 / PALAVRAS DE INSTRUçi 555
Có0 gu
de operação|
EnaereçO a0 ope
Endereço do operando 2
ção de dois endereços
(a)

Endereço do Endereço do
codigo operando 1 Endereço onde
lde operação
perando 2
amazenar 0 resulta

Instrução de trés endereços


(b)
ig. 12.6 Formatos de instrução com múltiplos endereços
Instruções deMúltiplos EnderrecoS A instrução de um único endereço descrita anteriormente era muito
onos nos antidegosinstrucáo
aaaaformatos compatadoees de grandemasporte.
que formcem Hoje, nopoeentanto,0s
informaçio computadores de grande porte usam divenso5s
paawra de instruçao
A Fig. 12.6 mostra dois formatos de palavra de instrupçio, contendo mais de um endereço. A instrução de dois
endetegos tem rtepresentados, além do código de operçio, 0 endereço de ambos os operandos que tomam part
operaçao especificada. A instrução de très endereços poasui tambem o endereço onde e resultado da operaçao de
ser armazenado.
Estas palavras
una instrução instrução Isto
de umde endereço. múltiploque
com significa s endereços tém a vantagem
um compatador óbvia dede conter
com instruçöes s informação
maltiplosmaiendereços de gsue
vai pr
de menos instruçóes para executar um determinado programa do que outro computador com instrução de um único
endereço. Naturalmente que palavras de instrução maiores precisam de uma unidade de memória com tamanho de
palavra maior.
Instruções Multibyte Temos anališsado até agora formatos de palavra de instrução que contém o código de
operação e a informação dos endereços dos operandos numa única palavra. Isto significa que uma instrução completa
a das Figs. 12.5 ou 12.6 está armazenada em um único endereço de memória, 0 que é típico em computadores
cOm0 as

1Struça0 0e um unICO yi▇

Código
de
Rit (

u a u uU y

r Código
V rar .

ind
Byte 2 do operando

Instrução de trés bytes


Código
y ( eraCaU

Byte 2
Endereço
do operando

Byte 3 Fig. 12, / FOrmatoS de instruçao usadoS em


computadores com tamanho de palavra de oito
bits.
556 CAPÍTULo 12/INTRODUÇiO AOS MICROPROCeSSADORES E MICROcOMPUTADOREs

dede palava da palafica


amanhopequenos, vra imposvel grande. o Para
relativamenteamazenar codi muio detosoperaçáo
g mierocomputadores
eo endereço e dominoperando
icompatadores,
em uma comúnictamankos
a palay
memória.
Já foi mencionado que, por motivos históricos, um comprimento de palavra de oito bits (um byte) tornouse quse
padrão. A seguir, apresentaremos os formatos de instraçao usados em computadores com endereço de memória
deFig.outo12.7.bits – um byte. Existem teesfomatos hisicos de instreço: de um byte, de dois bytes e de trés bytes, contome
Ée
A instrução de um único byte tem somente umBca nenhum código dedado operação
na memória bits, sersemoperado.
de oito para a parte referente
Por isso, aoas instruçoes
endereço,
de um byte são usadas para representar operaçóes que nao precisam trazer nenhum dado da memória para ser operado,
vıdente que este tipo de instrução nao espe

Um bom exemplo éa instruço de limpar o aculador clear the accumulator (CLA), que informa a0 computador
que todos os flip-flops do acumulador devem ser colocados no estado z
0 primeiro byte da instruçáo de dois bytes e um código de operação, eo segundo é um código de endereço de
oito bits, especificando o lugar na memória onde está armazenado o operando. Numa instrução de trés bytes, 0 segundo
eo terceirò bytes formam um endereço de 16 bis para o operando. Nas instruçóes multibyte, os dois ou trés bytes
Isto está
que formam a instrução devem ser armazenados em endereços consecutivos da memória.ria onde cadailustrado no Quadro
byte (palavra) está
i2.1 para instruçóes de trés bytes. A coluna da esquerda lista os endereços na memória
armazenado. Estes endereços estáo em codigo hexadecimal. A segunda coluna dá a palavra binária na forma como
ela realmente é armazenada na memória. A terceira coluna é o código hexa correspondente à palavra binária. Examine
cuidado este exemplo antes de prosseguir em seu estudo.
Os trés bytes armazenados nos endereços 0020, 0021 e 0022 constituem a instrução completa para a adição do
dado armazenado no endereço 3SF6 ao valor armazenado no acumulador. Os segundo e terceiro bytes guardam os
oito bits menos significativos (LO) e os oito bits mais significativos (HI) respectivamente, do endereço do operando,
Harmazenado no segundo byte e LO armazenado no terceiro
uns mierocomputadores usam a ordem invers
byte oda instrução. O endereço 3SF6 da memoria também aparece no quadro; ele contém a palavra de dado (7C) que
a unidade de controle do computador deverá buscar na memoria para enviar à unidade aritmética-lógica para adição.

U LNU 1 .1

maC eço ae
Memória (Hex ) Binário Descrição

01001010 4A Código de operação para ADD


11110110 *0 its de mais baixa ordem do endereço (LO)
0022 UUI 1U1U1 35 Bits de mais alta ordem do endereço (HI)

15r 01111100 C Operando

QUESTÕES DE REVISĀO

1. 0 que é um código de operação?


2. 0 que é um endereço de operando?
3. Que informação está contida no primeiro byte de uma instrução com múltiplos endereços?

12.8 EXECUCĀO DE UM PROGRAMA EM LINGUAGEM DE


MÁQUINA

As palavras de instrução que foram estudadas anteriormente são denominadas instruções em linguagem de máquina
pelo fato de estarem representadas por 1's e ('s, a única linguagem que a máquina (computador) entende. Muitas outras
linguagens podem ser usadas para se programar um computador e vocé já deve estar familiarizado com algumas delas,
no BASic e Pascal. Estas e outras linguagens de alto nível são projetadas para facilitar a escrita de progra
COm0

É inimpportante
n observar que os programas escritos em linguagem de alto nível devem ser convertidos para a linguagem
saçio 128/Eaiçio DE UM PoGaNA BN LNGLAGEN DE NiqU 557
QUADRO 12.2

Mnemônico Código de Operação,


Binário/HexA
LDA Descrição da Operação
01011011/SB
ADD
01101101/6D Load: Oegado
dadonoarmazenado no endereço operando é
acumulador.
Add: Operando é adicionado ao dado armazenado no
SUB
10100010/A2 acumulador, eo resultado da soma é armazenado
no acumulador.

STA Sub: 0 operando é subtraído do dado armazenad0 no


lador, eo resultado da subtração é
10001010SA armazenado no acumulador.
Store: 0 conteúdo do acumulador é armazenado na.
JMP pemória na posição especificada pelo endereço do
010011004U operando.

A próximadoinstrução
Jump:no endereço opera
será obtida da especificada
em vez de ser obtida dda
JPZ
01110110/76 2qüéncia.

HLT
Jumpz: A próximase 0instrução
do operando acumulador endereso
obtida dozero.
será contiver Cas
00111111/SF contrário, será obtido da seqüéncia.
O computador
Pare:instruçóes a
pára de operar. Näo há mai

de máquina e colscados na memória do computador antes de serem executados. Em um microcomputador tipico, a


amersäo de BASIC
máquina, muitas vezes para aelinguagem
armazenado em ROM. de máquina é realizada por um programa especial escrito em linguagem de
gspresentantes
instaóes ra a tilasustrar
De maneidescri no como um12.2.micEstas
Quadro rocomputador
i n stragóesexecuta
náo um programa
pertencem a em licomputador
neahum máquiinca,o imasremossio utitipliiczaar
nguagem de especl
de instruçóes que qualquer microcomputador é capaz de executa. Cada instrução esta acompanhada
de um mnemónico ou abreviatura mais tácil de lembrar do que o código de operração.
dememória,
cada innostrução e lembre-se de que o operando que está sendo referenciado é a palavra de dados armazenada na
Leia com cuidado a descrição
endereço especificado na instrução.
Iremos usar
qgue começa no endereço das ine struçóes
algumas 0000 listadas no Quadro 12.2 para escrever um programa em linguagem de máqui
faz o seguinte:
Ii Subtrai uma palavra de dados de oito bits (X) de outra palavra de dados de oito bits (Y). Os valores de XeY
estáo armazenados nos endereços 0300 e 0301, respectivamente.
Armazena a diferença (DIF) no endereço de memória 0302 UZ.

. SeCasoo valor de DIF for zero, o programa desvia para o endereço 0400, buscando lá a próxima instrução a ser executada.
contrário, o programa pára

0 Quadro 12.3 mostra o programa completo tal como ele aparecerá na memória do computador. Na verdade só
s duas primeiras colunas do quadro dizem respeito ao programa em linguagem de máquina. As demais informações
foram incluídas com propósitos meramente descritivos. A primeira coluna lista 0 endereço em hexa de cada localização
de memória usada pelo programa. A segunda dá 0 equivalente em hexa da palavra armazenada em cada I
de memória. Lembre-se de que tais valores em hexa representam os endereços reais e as instruções que 0 computadon
entende.
A terceira coluna fornece o mnemónico eo endereço do operando (se houver) associado a cada instrução. A última
coluna descreve a operação realizada por cada instrução. Por exemplo, a primeira instrução do programa é uma instrução
de trés bytes. 0 primeiro byte armazenado no endereço de memória 0000 éo código de operação SB. Os segundo
e terceiro bytes, armazenados nos endereços 0001 e 0002 representam 0 endereço do operando, 0300. 0
para esta instrução é LDA SO300. No caso, LDA é abreviação da operação de carga no acumulador (load accunulator) e
S0300 é dereço do operando, 0 símbolo $ é muitas ve es usado para indicar que 0 endereço está representado
em hexadecimal. Quando o computador executar esta instrução, ele vai ler o dado Y que está armazenado no endereço
(1900 e carregá-lo no acumuladon
0 programa começa no endereço 0000 e termina no 000C. Os endereços 0300 e 0302 são usados para armazenar
os dados. Ös conteúdos de tais endereços não estão indicados no, quadro pelo fato de os mesmos variarem no dec
a exæcução do programa. As localizaçóes de memória entre 000C e 030 não estáo sendo usadas.
Execução do Programa Vamos agora examinar como o computador trbalha em cada um dos pasos da
ação do programa em questão. Nossa intenção aqui é apenas resumir as principais operações, sem descer a detalhes
de como as coisas realmente acontecem dentro do computador. Em particular, veremos que o computador está sempre
m um de dois tipos de ciclos de operação: (1) o clelo de busca durante o qual a u tidade de controle busca a instruçad
(abdligo de operação e endereço) na memória e (2) o cielo de execuçio, durante o qual a unidade de controle gen
i sinais para a execução da operação indicada no código de operação da instrução.
(5 S
558CAPÍTULO 12/INTRODUçiO AOS MICROPROCESSADORES E MICROcOMPUTADORES

QUADRO 12.3

Endereço de Palavra de
Descrição
Memória (Hex )Memória (Hexa)Mnemónico
0000 SB LDASO300 Carregar o dado (Y) do endereço
M()1
(0300 no acumulador
(0)2

SUBS0301Subtrair 0 dado (K) no endereço


(301 do conte

0005

0006 8A STAS0302 Amazenar


0302
a diferença no ender
0007 02)
0008

9ZsO400 Se a diferença (DIF) e zero,


0009 desvie para 0400 para obte
(00B
a próxima instrução

HLT Se DIF na0 C LCT0,par


I

programa

0300 Y Endereço do dado Y


X indereço do dado X
20 DIF Endereço onde a diferença dev
dIImaZenada
t

isto irá inicializar o contador de programa (PC)


A operação começa quando 0 operador ativa a chave de INIO
para o endereço da primeira instrução do programa, 0000. 0 PC é um registrador da unidade de controle que toma
c2onta do seqüenciamento da execução das instruções, armazenando sempre o endereço da próxima instrução a ser executada
A seguir, o detalhamento dos passos pelos quais o computador vai passar durante a execução do programa em
linguagem de máquina do Quadro 12.3.
1. A unidade de controle busca o primeiro byte do endereço 0000, conforme apontado pelo conteúdo do PC. Este
byte contém SB, que vem a ser o código de operação da primeira instrução. Úm conjunto de circuitos da unidade
de controle vai determinar que este código de operação é para a operação LDA (carga do acumulador) e que
um endereço de operando segue este código de operação.
2. A unidade de controle incrementa o PC para ó001, e entáo busca o byte armazenado neste endereço. Tal byte
é 00, e representa o byte de mais baixa ordem do endereço do operando. A unidade de controle então incrementa
mais uma vez o PC para 0002, e busca o byte armazenado neste endereço. Este byte é 03, o byte de mais alta
ordem do endereço do operando.
3. A ação da unidade de controle em 1e 2 completa o ciclo de busca, iniciando-se agora o ciclo de execução da
da. A unidade de controle tem armazenado em seus registradores 0 código de operação
(SB) e0 endereço (0300) do operando, necessários à execução da instrução LDA.
4. A unidade de controle executa esta instrução lendo a palavra de dados do endereço 0300 e carregando 0 seu conteúdo
no acumulador na UAL. Isto completa 0 ciclo de execução desta instrução.
5. 0 PC é incrementado para 0003, ea unidade de controle inicia novo ciclo de busca, trazendo 0 código de operação
ado em tal endereço. A unidade de controle reconhece o código de operação A2 como referente à operação
SUB, a qual requer um endereço de operando armazenado nos próximos dois bytes do progra
6. A unidade de controle busca 0 valor do operando no endereço 0301 da maneira descrita no passo 2. 0 PC está
agora em 0005.
7. Isto completa o segundo ciclo de busca, sendo que agora a unidade de controle tem guardados o código de operação
adereço do operando necessários à realização da instrução de SUB. A unidade de controle comanda a execução
desta instrução, lendo a palavra de dados do endereço 0301, enviando seu conteúdo para a unidade aritmética-Iógica
subtraí-lo do conteúdo do acumulador.
8. Com o PC já em 0006 inicia-se 0 terceiro ciclo de busca. A unidade de controle busca 0 código de operação 8A,
ado neste endereço, reconhece-0 como referente à instrução de armazenamento do conteúdo do acumulador
na memória (STA), tomando ainda conhecimento do fato de tal instrução precisar do operando cujo endereço está
armazenado nos próximos dois byte
9. A unidade de controle busca nos bytes 0007 e 0008 o endereço do operando cujo valor é 0302. 0 PC está agora
em 0008, 0 conteúdo do acumulador é, então, armazenado no endereço 0302.
10. 0 pC é incrementado para 0009, e um novo ciclo de busca tem início, com a unidade de controle buscando 0
siçio 129/ISTRTURA TiPCA DE UM MICROcONPUTADOR559
klo"ipy(eZ),de opercieetaniifcoadoseo
nd amazenado
de que t e remi dettaol meenderumaeço.deconA umiddudeaaude dede contconterskeole srdcooabece
coneat e adoinstsomulrsçloadodesvio "se
geosis prdadoisimnoos aomul adadormemórtozeno,ia 00Aumdaede e0o0n)oatole. hnalea da eenderr cço da onpetando (o400) armaenadqueo nos
dntrole vi buscar a próxima instrçio a ser executada deste novo endeeo, continuimdo a exeosáo aa unipardtieder destdee
b y i t e s e ço é caegedo Pe, de modo
|1,

ponto,
12. Se o dado no acumulador não f
guesairouçáBCo deaoami r á Hval o r n0c. comtruodle idestncreementendera oeo,PCsendo
for igAualpróa xizetmao,inastuniuçidadeo serdeé bust unidadesdade modo
de trérsecomheci
parada (HLT), cuja execuçio fará com que a unitade de conttole parte asbuscas e execugóes de instruçóes.
Este programa bastante simples ilustra muitas das a
Jpruem
mpor t a nt e de
ent mágui
e nder n ai
eue , e mas
a r nem
eoecuci chee
o de pero
um pr o de
gr a most
ma e r
t a
e t aspasopotencia pasa,
a liedesderantersti
d e kama eni a um comput
ue dee sequi
sment
coIsas que ocorrem durante a execução de um programa em
e ncal , ador.edo
pani
neitoumulendzeo
eaneeeiesindooari sepeisezewoPz) u00 em weos eaempl o ) . o seoi e ncaneno do pr a geama s o mods vaana i stupi o
É

cdro que os passos acimaadorsioferexecutados


ou ema de dewvi o i n
zeto, caoa velocidadescondi c i o nal cwPydanenteéeutaoa.
conrino, a seqienoi deesçsecuad istmpoe o sao da Jezo desvi o s
a 20 us, mesnoaltas,no maides forma
do programa deve ser muito pequeno, náo sendo superior extremamente Rento dosquemioctempo
tocomputadores.
o vai alterar-se. Fic

total de execução
QUESTÓES DE REVISÄo

Qual é a diferença entre um programa em linguagem de máquina e um programa em linguagem de alto nível?
2. 0 que vem a ser o mnemónico de uma instrução?
J, 0Qualqueé anormal
4.
execução? mente ocorre durante o ciclo de busca de uma instrução na memória? E durante o ciclo de
função do contador de programa (PC)?

12.9 ESTRUTURA TÍPICA DE UM MICROcOMPUTADOR


organizaçãopara
a tal preparados
liporaestamos são estudar um poucoasmaimesmas,
essencialmente a organiząção
s a fundodiferindo apenasde emum pequenos detalhes As estruturas possiveis
microcomputador.
barramentos de dados e de endereço e os tipos de sinais de controle utilizados. De forma a apresentar com a maion
dateza possível os conceitos relativos à organização de um microcomputador, é necessário escolher um tipo de organização
e estudá-la em detalhes. Uma vez entendida a estrutura deste microcomputador tiípico, é fácil aprender os detalhes
relatimostrada
está vos a qualquer 12.8. A estrutura escolhida, muito empregada nos microcomputadores em uso na década passada,
na Fig.outro.
0 diagrama mostra os elementos básicos de um microcomputador de oito bits e os diversos barramentos usados
para interligá-los. Apesar de este diagrama parecer um tanto complexo, ele ainda nao mostra todos os detalhes de
UUm utador Mae
ele será suficiente para atender aos nossos propósitos imediatos.
0 Sistema de Barramento 0 microcomputador em estudo tem trés barramentos, por onde trafegam todas
informaçóes e sinais de controle envolvidos na operação do sistema. Estes barramentos conectam o mieroprocessador
(unidade central de processamento) a cada uma das memórias e dispositivos de ENTRADA/SAÍDA, de forma a tormar
possivel o fluxo de informação entre 0 microprocessador e todos os demais elementos componentes do sistema. Em
palavras, 0 microprocessador está envolvido continuamente no envio e no recebimento de informaçóes de/par
endereços na memória, portas de entrada ou portas de saída.
No microcomputador, todas as transferéncias de informação têm como ponto de referência o microprocessador
Desta forma, quando ela está enviando dados para um outro dispositivo, este deve executar uma operação de eserita,
ou seja, 0 microprocessador está escrevendo dados em qualquer elemento selecionado. Da mesma maneira, quando
hicroprocessador está recebendo dados de outro dispositivo, ele estará lendo a informação de tal dispositivo. É
muito importante perceber que os termos “leitura" e “escrita” referem-se a operações realizadas pelo microprocessadon
Os barramentos envolvidos nas transferências de dados e sinais de controle tém suas funções descritas abaixo:

Barramento de Endereços. É um barramento unidirecional pelo fato de a informação fluir sobre ele numa única
direção, sempre do microprocessador para a memória ou para os dispositivos de ENTRADAISAÍDA. Somente o micropre
ador pode colocar níveis lógicos nas linhas do barramento de endereços, gerando um máximo de 21=65.536 endereços
diferentes. Cada um deles corresponde a uma localização de memória ou a um dispositivo de ENTRADAISAÍDA.
Por exemplo, 0 endereço 20A06 poderá corresponder a uma localização na RAM ou na ROM, onde uma palavra
560 CAPÍTULO 12 /INTRODUÇiO AOS MICROPROCeSSADORES E MICROcOMPUTADORES

Barramento de endereço

Micro . RAM ROM


p Uc8SSao

81 Barramento de dac

Do|

R/w|

Circuito
2
gerador
de
RES O Barramento Interiace
clor
de controle de saida de entrada
INT

(16)Barrame
Dado Porta orta
de saída ntrada

cnIO e U

de saída
de en la
114 1

Fig. 12.8 Estrutura típica de um microcomputador de oito

de oito bits está armazenada, ou pode ser uma referência a um registrador, também de oito bits, que é parte do circuito
de interface para o teclado.
Quando a unidade central de processamento desejar comunicar-se (ler ou escrever) com uma certa localização de
memória ou com um determinado dispositivo de ENTRADAISAÍDA, ela coloca o código do endereço respectivo em
us 16 pinos da saída de endereço, Aj até Aj , ou seja, no barramento de endereços. Os bits deste endereço, presentes
nas linhas do barramento de endereços, são então decodificados para selecionarem uma determinada localização de
nória ou um dispositivo de ENTRADAISAÍDA. Este processo de decodificação requer usualmente um circuito descodi-
ficador, não mostrado no diagraa
Barramento de Dados. É um barramento bidirecional pelo fato da informação fluir sobre ele em duas direções,
do microprocessador ou para o microprocessador. Os oito pinos de dados do microprocessador, D, a D,, podem funcionar
omo pinos de entrada ou pinos de saída, dependendo se o microprocessador estiver realizando uma operação de leitu
ou de escrita. Durante a leitura, estes pinos agem como entrada, recebendo os dados que foram colocados no bar
de dados pela memória ou por um dispositivo de ENTRADAISAÍDA selecionados pelo código do endereço posto pelo
microprocessador no barramento de endereço. Durante a escrita, estes mesmos pinos atuam como saída, colocando
dados no barramento de dados para serem enviados à memória ou a um dispositivo de ENTRADAISAÍDA selecionados
pelo microprocessador da mesma forma que na leitura. Em ambos os casos acima, Os dados transmitidos são palavras
de dados de oito bits, pois nosso microprocessador manipula dados de oito bits.
Barramento de Contr Trata-se do conjunto de sinais utilizado na sincronização dos diversos elementos component
do microcomputador. Alguns destes sinais de controle, tal como R/W, são sinais que 0 microprocessador envia para
outros elementos a fim de informá-los que tipo de operação está em progresso no momento. Os dispositivos de ENTRA-
DAISAÍDA também podem enviar sinais de controle para o microprocessador. Um exemplo éo sinal de RESET (RES),
que, quando aplicado em seu nível lógico BAIXO à entrada de mesmo nome do microprocessador, faz com que est
sinicie o processamento das instruções a partir de um determinado endereço, onde está armazenado um program
de inicialização do sistema. Outro exemplo é 0 sinal de interrupção (INī) que, quando aplicado em seu nível BĂIxO
pon um determinado dispositivo de ENTRADAISAÍDA à entrada de mesmo nome do microprocessador, faz com que
hesma
mes dé atenção a tal dispositivo.
sEçio 129/ BSTRUTURA THICA DE UM MICROcOMPUTADOR 561
sitmis de Clock Alguns micop oceuadons (Bs,
saesss,nioperozohnram coecon uun niooce sisisnalu decetidloeck.sendoNa dimodrador
c asi o n Rente29iemoscmsusotesdechsi
suegi si s t e ma dóde,
de chock aomo
do02, 6502) usam um sistema de clock de duas fases com
de o z%e
duas t
oto gue ambus as fao sve st o enere wamns
kenads de ,sioàs vez s gerados pelo micoposao, snsatameuredeocoralentode contole.asbes dent e i n ment ue asstee, deri s ki t i s de empo,

luas fases.

Portas de ENTRADASAÍDA
kado ou escrevendo na memóri a . ODurante
programa a execução
também de umexigprograma,
pode i r que el e0leimia couroprocesador
escreva em estáum dosconstantemeno
dida,sposipoderá
tivos
saiduantodo grande
dehrverentumradaconj sistema.delApesar do di a grama da Fi g . 12.7 motrar apenas um di s posi t i v
es conectados ao barramento do sistema microcomputador. Cada dispositivo de ENTRAo de eatrada sai
DaSAÍDA é normalmente
cão da interface conectado ao barramento do microcomputadon
é compatibiliza rcuito de intertace. A

o dispositivo
entre eles. A interface é necessária sempre spositoivomicrocomputador
que o dicom de ENTRADA deSAIDA ais dehaver
formausarquesinpossa controltrocae e dede tempo
dados
com fomatos elou niveis difetentes dos usados pelo microprooesador.
conheciPordoexempl tivo (telde eENTRADAISAÍDÀ
pela siog, laumingldiessaposiTTY co, emboraemumcodipouco
typewriter), que enviatíipniformaçóes go AScii para oé computador,
antiquado, o teleimpressor, mais
no modo

R/

Barramen
n

d r U 0V
antigo endereç

Barramento
de Oa0
Dado

Alta impedância vW I I

1emória

RWe geração TU Larlente


ereço

selecionada Barramento de
ou dispositivo de mazenadoe Fig. 12.10 Sinais de tempo para uma opera-
E/S habilitado no microprocessadon ção de leitura em microcomputador.
562 CAPÍTULo 12/INTRODUçiO AOS MICROPROCESsADORES E MICROcOMPUTADoRE

de transmissão serial, ou seja, um bit de cada vez sobre uma única linha de dados. O microcomputador, no entanto,
aceita dados vindos do baramento de dados na forma de oito bits paralelos. Neste cao, um circuito de interface é
do para converter o sinal serial da TTY em uma palavra de dados de oito bits paralelos, e outro para converter
os dados dos disdaposisaítivdosa dode microcomputador
Apesarparalelos ENTRADAISAIDAparaserem um sinal
tratados a serposi
serialcomo entregue
çóes deà memóri
TTY. a, eles são significantemente
diversosa dacapacimemóri
dade adeeminterromper
alguns spectos. Uma grande enquanto
o microprocessador diterença este éo fatoestiverde executando
os dispositivumos deprograma.
ENTRADAISAÍDA
Isto significa
queao miocdiroprocessador
spositivo de deENTRADASA
sua necessi d DA
ade de pode envi
comuni c a r
ar-se um
comsi n
elal
a . para
O miae entrada de
roprocessador i n terrupção
vai , (IN
então, i n ) a fi
terromperm dea iexecução
nformar
do programa em que ela está trabalhando no momento, e realizar a operação solicitada pelo dispositivo que a interromper
Nenhum tipo de memória é dotado da capacidade de interromper o microprocessador.

QUESTÖES DE REVISÁO

1. Descreva as funçóes de cada um dos trés barramentos que são parte de um sistema mierocomputador típico
0 que é um barramento unidirecional?
3. Qual dos barramentos inclui os sinais de clock?

12.10 OPERAÇÕES DE LEITURA E ESCRITA


Agora estamos prontos para detalhar um pouco mais a forma como 0 microprocessador se comunica com os outros
elementos do microcomputador. Lembre-se de que ele contém os circuitos necessários a executar um programa cujas
instruçóes estejam armazenadas em RAM ou em ROM. 0 microprocessador está realizando continuamente operações
de leitura e escrita no decorrer da execução do programa. Ela busca da memória cada uma das instruções
adas, através de operaçóes de leitura. Após a interpretação da instrução, pode ser necessária a execução de nova
operação de leitura, agora para buscar um operando na memória. Alternativamente, pode ser necessária a execução
de uma operação de eserita. Em alguns casos, a instrução pode solicitar que o microprocessador leia dados de um
dispositivo de entrada (como um teclado) ou escreva dados num dispositivo de saída (como uma impressora).
A Operação de Leitura Os seguintes passos ocorrem durante uma operação de leitura:
1. 0hente
microprocessador gera os níveis lógicos adequados em sua linha R/, para iniciar uma operação de leitura. Normal-
RI = 1 para leitura. A linha RI é parte do barramento de controle e vai para a memória e dispositivo
de ENTRADA/SAÍDA.
2. Simultaneamente, 0 microprocessador coloca 0 código de um endereço de 16 bits no barramento de endereço, de
maneira a selecionar uma particular posição de memória ou um determinado dispositivo de ENTRADAISÀÍDA
do qual ele queira receber dados.
ria que tiverem sido S selecionados colocam uma palavra de dados de oito bits no barramento
de dados. Todos os dispositivos e memória não-selecionados não afetarão de forma alguma os dados colocados
barramento, pelo fato de suas saídas estarem no estado de alta impedância.
4. 0 microprocessador recebe a palavra de oito bits do barramento de dados em seus pinos de dados, D, a D,. Tais
pinos agem como entrada sempre que R/ = 1. A palavra de dados é então armazenada em algum dos registradores
internos da unidade central de processamento, como 0 acumulador.
Esta seqüéncia pode ser mais bem entendida com a ajuda de um diagrama de tempooS que mostra a relação ent
sinais de clock
sinais dos vários barramentos (ver Fig. 12.10). Todos os eventos 0,. A

operação completa de leitura ocorre em um período do clock. Normalmente, tal período fica entre 100 ns e 1Ò mo
para microprocessadores CMOS. A transição positiva de y começa o processo de geração pelo mieroprocessador dos
sinais R/e dos sinais de endereço. Após um pequeno retardo, a linha R/ vai para o nível lógico ALTO, eo barramento
de endereço passa a conter o novo código de endereço (ponto 1 do diagrama). Note que as formas de onda no barrament
de endereço mostram as duas possíveis transiçóes de suas linhas (BAIXO para ALTO e ALTO para BAIXO), pois
algumas das 16 linhas estarão mudando em uma das direçóes e outras na direção opos
Durante o pulso y,0 dispositvo ou a memória selecionada é habiltado (ponto 2) e começa a col car sua pala
de dados no barramento. Antes disso, as linhas do barramento de dados estavam em alta impedáncia, uma vez que
nenhum dos elementos conectados ao barramento estava habilitado. Em algum momento durante o pulso , os dados
no barramento ficam estáveis (ponto 3). Novamente as duas possíveis transições que as linhas de dados podem sofrer
estão mostradas no diagrama. 0 retardo entre o início do pulso ea estabilização dos dados no barramento depende
da velocidade de operação da memória e dos dispositivos de ENTRADAISAÍDA. Para as memórias, este retardo recebe
sç O 12.10/OPERAÇÓES DE LE URA E ESCRITA563

eeastes do mideopeen
ane de som tranicdeMa dano,cida en,
cecosadosNa (pato4 nto bsonnoetsio rde Ebaameni
ded,oune▇ dados NTRADA SAiDAen un do
o sio amnesdos
r
eeem a velcddes compativeis oom a tregitsca do cbet aikopuntosś sec a
A0peração de Escrita Os seginles pusos ocomen durme una spernęgdo de extitz
= O para ger
0mentemieroR/processador a os niveis lógicos adequados em sua linha RiW, para iniciar uma operaçáo de escrita. Normal-
escrita.
2. Smul taneamente,or mécropreesador
0 mcroproeessador ooloxasineatáo, umacolpalocaavrao oódide gdados oitle tits dene 16barasentoade
o de umde endereço bis no baramento de endereço.
dados atravi s de seus pinos
D,aD, ,quecomoestá0o agora
(essador
habilitadas acumulagiador. como saiosda.demaiEstas paleleamentos
ndo Todos vra de dados vem normamente
conectados stradorterdosuasmicsiropro
hao baramentode umnão regideveráo das
4, Ano posi çio de memóri
barramento. Todos aosesool
demaihidsaelouementos
o disposi ivo de aoENTRADASAÍDA
conectados selecioternadosuaspegam
barramento nao deverao de dados
entradasa palhabiavralitadas.
o sinalo procedi
DASAÍDA sinaisacitomabarramento
RWv eosmento
selbarramento
tem seu diadegramaendereço
habilitados
ecionados desão dados (ponto
de tempo(pontomostrado
2),emeoummicurto
croprocesador
. 12.11.,Maia memori
1) Durantena Fiogpuso
coltempo
oca seudentro
dado nodo pulbarramento sposidtaivdeo de iENTRA.
s uma avez,ou dia subi
de dados.
nicializa
eis noeseri
0sgtaoniventão estabi l i z am-se i n tervao de
tos na posiçcão de memória selecionada enquanto e alto. Se um dispositivo de ENTRADAISAÍDA
ecionado, ele normalmente retira
s o Estes dados
As operaçóes de leitura e escrita envoldado oria das atinaviddescida
vem ado maibarramento izadas 4).
ades dedoumpulsoC real(ponto fora do microprocessador.

o R/

de endereço
Endereço Novo
antig0 adereçor

Barramento
de dados
Dado

Alta impedåncia * n1
processador

W e geração
dv

RN

de endereçu

Memória selecionada ouBarramento de dados


Aii v e i t u0
armazenado pelos
E/S habilita dispositivos de E/S

lig. 12.11 Sinais de tempo para uma operação de escrita em microcomputador.


564 CAPIIULO 12/ INtRODUÇAO AOS MICROpROCESSADOREs E MICROCOMPUTADKE

EXEMPLO 12.1

está oObserve
deAbaioitoxo bits. de umcomopequeno
código que programatemarmazenado
cada palavra nas necessários
oito bits, são posiçóes dedoimemóri
s bytesa desucessivos , de um Co
0020) apara0029,representar
códi go do endereço do operando, Determine o número total de operações de leitura e escrita que o microprocessador
deverá efetuar enquanto executa tal progra

Endereço de Endereço de
Descrição
nória Palavra (Hex )Mnemônico
0020hh SB taLDAS50 Carregar o acumulador com X
(1 susuat
0021a
0022
(atms
ADDUUL Adicione Y ao conteúdo do acumul
0024 02 |
025 (spatas )
UUZ0 8A. 1A U0
Armazene o conteúdo do acumulador
0027 03 |
Endereço onde o conteúo
)L0 50 J
Ldo acumulador será armazenado
3F HLT Pare a operação

Solução 0 microprocessador inicia a execução do programa lendo o conteúdo da posição 0020 da memória. A palavra
ada lá (SB) é obtida pelo microprocessador que a trata como um código de operação. (Em outras palavras,
microprocessador sempre considera a primeira palavra de um programa como sendo um código de operação.) Em
seguida o microprocessador decodifica este código de operação para determinar a operação a ser realizada e se um
endereço de operando segue o código de operação na memória. Neste caso, um endereço de operando deve
nos próximos dois bytes do programa armazenado. Entáo, 0 microprocessador vai precisar ler os endereços 0021 e
022 para obter o endereço do dado X. Uma vez que tal endereço (500i) tenha sido lido para um registrador do micropro-
cessador, este executa a instrução de LDA, lendo a posição de memória 5001 e colocando seu conteúdo no acumuladon
Baseado no exposto, podemos concluir que a execução da primeira instrução necessitou de quatro operações de leitura:
ma para 0 código de operação, duas para o endereço e uma para a execução da instrução LDA.
De maneira similar, quatro outras leituras serão necessárias para executar a segunda instrução, que começa no
endereço 0023. Tal instrurução também usa um endereço de operando de dois bytes, e precisa ler 0 conteúdo de tal
endereço para transferi-lo à unidade aritmético-lógica.
A terceira instrução, código de operação em 026, também tem um operando cujo endereço está em dois bytes.
0 microprocessador então executa três operações de leitura e mais uma de escrita, pois a instrução é STA, havendo,
portanto, necessidade de guardar o conteúdo do acumulador na memória, endereço 5003.
A instrução final, em 0029, é um código de operação sem endereço de operando. 0 microprocessador lé este código
de operação (3F), decodifica-0, e em seguida encerra a execução de tal programa.
0 número total de operações de leitura executadas é, portanto,, doze e há somente uma operação de escrita executada
no decorrer da execução do programa.

QUESTÕES DE REVISĀO

Descreva 0 conjunto de passOs necessárior paId qu U IIU U UCeSSauor xecuteuma operação de leitura.
I0

2. Repita 0 exercício 1 para a operação de escrita.


3. Qual dos dispositivos do sistema coloca seus dados no barramento de dados durante uma operação de escrita?

12.11 COMENTÁRIOS FINAIS

Nossa discussão ao longo deste capítulo foi somente uma breve introdução aos princípios básicos, terminologia e operações
Nos
mais comuns relacionadas com alguns dos microprocessadores e microcomputadores no mercado. Não tivemos oportunidade

Você também pode gostar