107
133 MICROPROCESSADORES 3E Microprocessadores Cópia não autorizada. Reservados todos os direitos autorais. Cópia não autorizada. Reservados todos os direitos autorais. Cópia não autorizada. Reservados todos os direitos autorais.

Microprocessadores - :: Instituto Monitormonitoronline.com.br/arquivosbd/...133_microprocessadores.pdf · evolução dos microprocessadores, desde o princípio de sua utilização

Embed Size (px)

Citation preview

133MICROPROCESSADORES

3E

Microprocessadores

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

EditoraAline Palhares

Desenvolvimento de conteúdoMarco Aurélio Fernandes Soares

Mediação pedagógicaEquipe Técnico Pedagógicado Instituto Monitor

Design gráficoEquipe Técnico Pedagógicado Instituto Monitor

Monitor Editorial Ltda.

Rua dos Timbiras, 257/263 – São Paulo – SP – 01208-010Tel.: (11) 33-35-1000 / Fax: (11) 33-35-1020atendimento@institutomonitor.com.brwww.institutomonitor.com.br

Impresso no Parque Gráfico do Instituto MonitorRua Rio Bonito, 1746 – São Paulo – SP – 03023-000Tel./Fax: (11) [email protected]

Em caso de dúvidas referentes ao conteúdo, consulte oe-mail: eletrô[email protected]

Todos os direitos reservadosLei nº 9.610 de 19/02/98Proibida a reprodução total ou parcial, por qualquer meio,principalmente por sistemas gráficos, reprográficos,fotográficos, etc., bem como a memorização e/ourecuperação total ou parcial, ou inclusão deste trabalhoem qualquer sistema ou arquivo de processamento dedados, sem prévia autorização escrita da editora. Osinfratores estão sujeitos às penalidades da lei,respondendo solidariamente as empresas responsáveispela produção de cópias.

3ª Edição - Fevereiro/2005

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

133/

Apresentação............................................................................................................. 8

Lição.1.-.Breve.Introdução.aos.MicroprocessadoresIntrodução................................................................................................................. 9

1..Histórico........................................................................................................... 9Exercícios.Propostos............................................................................................... 11

Lição.2.-.Memórias.EletrônicasIntrodução............................................................................................................... 13

1..Estrutura.das.Memórias................................................................................ 13Exercícios.Propostos............................................................................................... 17

Lição.3.-.Memórias.Eletrônicas.Reais.–.Parte.IIntrodução............................................................................................................... 19

1..Memórias.ROM.............................................................................................. 192..Memórias.PROM............................................................................................ 193..Memórias.EPROM......................................................................................... 214..Memórias.EEPROM....................................................................................... 225..Resumo........................................................................................................... 22

Exercícios.Propostos............................................................................................... 23

Lição.4.-.Memórias.Eletrônicas.Reais.–.Parte.IIIntrodução............................................................................................................... 25

1..Memórias.SRAM............................................................................................ 252..Memórias.DRAM........................................................................................... 273..Resumo........................................................................................................... 29

Exercícios.Propostos............................................................................................... 30

Lição.5.-.Preparação.para.MicroprocessadoresIntrodução............................................................................................................... 31

1..Termos.Técnicos.e.suas.Explicações............................................................ 312..Controlador.Programável............................................................................. 32

Exercícios.Propostos............................................................................................... 36

Índice

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

133/6

Lição 6 - MicroprocessadoresIntrodução .............................................................................................................. 39

1. Cérebro Humano e Cérebro Eletrônico ...................................................... 392. Microprocessadores Internamente.............................................................. 40

Lição 7 - Microprocessador Z80Introdução .............................................................................................................. 43

1. Z80 Internamente ......................................................................................... 43

Lição 8 - Microprocessador Intel 80X86Introdução .............................................................................................................. 49

1. O Intel 80X86 e a História da Computação Pessoal .................................... 492. Do 80286 para Frente ................................................................................... 50

2.1 A CPU Intel 80286 ................................................................................... 502.2 A CPU Intel 80386 ................................................................................... 512.3 A CPU Intel 80486 ................................................................................... 52

Exercícios Propostos ............................................................................................. 57

Lição 9 - SoftwareIntrodução .............................................................................................................. 59

1. História do Software do IBM-PC................................................................. 592. O Que é Software .......................................................................................... 603. Software em Linguagem de Máquina .......................................................... 614. Fluxograma ................................................................................................... 67

Exercícios Propostos ............................................................................................. 68

Lição 10 - Noções de Programação AssemblyIntrodução .............................................................................................................. 69

1. Fluxograma ................................................................................................... 692. Como Um Programa “Roda” ........................................................................ 703. Ligando o Microcomputador ........................................................................ 70

Lição 11 - Debug da Microsoft – Software Assembler 80X86Introdução .............................................................................................................. 73

1. Restrições do Debug ..................................................................................... 76Exercícios Propostos ............................................................................................. 83

Lição 12 - Dispositivos de I/O (Entrada e Saída)Introdução .............................................................................................................. 85

1. Canais de I/O ................................................................................................ 852. Porta de Comunicação Paralela do IBM-PC Compatível ........................... 903. Periféricos Simples ...................................................................................... 924. Testes............................................................................................................. 93

Exercícios Propostos ............................................................................................. 97

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

133/7

Lição 13 - Programas para Periférico DidáticoIntrodução .............................................................................................................. 99

1. Sub-rotinas ................................................................................................... 992. PUSH e POP Salvando Conteúdos na Pilha (Stack) ..................................1023. Saída de Dados em Canal de I/O.................................................................1034. Entrada de Dados em Canal de I/O ............................................................104

Exercícios Propostos ............................................................................................108

Lição 14 - Noções para Montagem de umMicrocomputador IBM-PC CompatívelIntrodução .............................................................................................................109

1. Escolha seu Microprocessador ...................................................................1092. Chipset e Mother-Board..............................................................................1103. Cooler ...........................................................................................................1114. Memórias RAM – Pente...............................................................................1125. Gabinetes .....................................................................................................1126. Periféricos Comuns .....................................................................................113

Respostas dos Exercícios Propostos ....................................................................118

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Apresentação

133/

Os microprocessadores constituem o coração dos microcomputadores, estas fabulosas máquinas da era contemporânea. Entendê-los, portanto, é requisito primordial na formação do Técnico em Eletrônica.

Neste fascículo você irá analisar as diferenças e acompanhar a evolução dos microprocessadores, desde o princípio de sua utilização em microcomputadores até os dias de hoje. E ainda, irá compreender a estrutura interna dos microprocessadores e o funcionamento básico de computadores.

Bom estudo!

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

1lição

lição

133/9

Introdução

Tudo começou quando o homem começou acontar as coisas. Quanto mais coisas eram acu-muladas, mais difícil era o controle das quanti-dades.

Quando começou o comércio, ou seja, a tro-ca de bens e mercadorias, o controle do dinhei-ro tornou-se um problema a ser resolvido.Avançando no tempo, surgiram as calculado-ras, para facilitar a vida do homem, cometen-do-se menos erros.

1. Histórico

As calculadoras até então eram mecâni-cas e limitadas a cálculos como adição e sub-tração. Por coincidência ou não, estas são asduas únicas operações matemáticas que osmicroprocessadores sabem fazer. Veremos issoum pouco mais adiante.

Surgiram os semicondutores. Surgiram ostransistores. Surgiu a idéia de construir umacalculadora eletrônica.

A primeira tentativa de construir umacalculadora foi o que hoje é chamado de com-putador ENIAC, feito de válvulas eletrôni-cas e do tamanho de um prédio de 4 andares.Consumia uma energia enorme e só era liga-do à noite por causa deste consumo elevado.Os bairros ao redor do prédio tinham pro-blemas com a tensão elétrica baixa em vir-tude do ENIAC.

Breve Introdução aosMicroprocessadores

Criado na Segunda Guerra Mundial paracalcular trajetórias balísticas, o conceito de ar-quitetura do ENIAC é até hoje aplicado nosmodernos microprocessadores. John VonNeumann foi o criador deste conceito.

Os semicondutores avançaram e surgiu aidéia de fabricar circuitos inteiros integradosem um único encapsulamento. Surgiram os CIs(Circuitos Integrados) que, como não poderiadeixar de ser, era uma calculadora.

Financiada pelos japoneses, uma jovemempresa formada por engenheiros vindos daFairchild foi contratada para produzir emgrande escala CIs para calculadoras. Seu nomeera INTEL, de INTegrated ELectronics.

A Intel começou produzindo memórias,que eram a base para os modernos processa-dores. Além do mais, memórias podem ser uti-lizadas sem que seja em um microcomputador.Ela foi a primeira a produzir e patentear osmicroprocessadores.

Com o avanço e a produção em larga esca-la, o preço dos microprocessadores caíam e umexecutivo da Intel, Gordon Moore, lançou achamada Lei de Moore: “A cada ano e meio acapacidade de um microprocessador dobra eseu preço cai”.

Muitos microprocessadores eram utilizadosem microcomputadores no final da década de 70e início da década de 80, mas não havia um pa-drão. Muitos eram os microcomputadores cha-mados de PC, que significa Personal Computerou computador pessoal. Este conceito de com-

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/10

putador pessoal é o mesma da escova de den-tes: cada pessoa deve ter o seu PC.

No começo da década de 80, um padrãoem termos de microprocessadores estava sefundamentando. Era o ZILOG Z80.

A Zilog é uma empresa formada por en-genheiros dissidentes da Intel que trabalha-vam em um projeto de microprocessador queesta achou inviável produzir. Esse grupo deengenheiros saiu da Intel e fundou a Zilog,produzindo o Z80 – microprocessador de 8bits em encapsulamento de 40 pinos, que nãodependia de outros circuitos integrados noque dizia respeito ao controle de seu proce-ssamento.

A IBM (International Business Machine)viu um mercado crescente de PCs e, sendoela uma tradição em computação eletrônica,encarou o desafio de lançar seu próprio PC,que se chamaria IBM-PC.

Não havia tempo para produzir ummicroprocessador IBM. Com o prazo se es-gotando, um engenheiro propôs aos executi-vos da IBM um microcomputador com arqui-tetura aberta, do Inglês open architecture.Tratava-se de montar um microcomputadorcom partes já encontradas no comércio.

Os demais componentes, como monitor,teclado, microprocessador e memórias foramescolhidos entre os fabricantes existentesque, contratados pela IBM, produziriam con-forme especificação para a IBM.

Então, o que é da IBM? O que torna oIBM-PC impossível de copiar (hoje dizemosclonar) um IBM-PC? O que dá direito autoralà IBM sobre o seu IBM-PC? A resposta é osoftware, o programa de computador que faza “máquina” funcionar. Digamos que seja a“alma” do computador. Qualquer um pode-ria copiar o corpo do IBM-PC, mas não pode-ria copiar a “alma”, pois estava protegida pordireitos autorais.

Mais tarde a Compaq conseguiu que-brar o “código fonte” e produzir seu pró-prio programa para controlar o corpo doIBM-PC sem que fosse necessário pagardireitos autorais. Aliás, o nome do progra-ma da IBM para controlar o computador éBIOS, uma sigla que significa Basic InputOutput System (Sistema Básico de Entra-da e Saída [de Dados]). BIOS também lem-bra BIO, que é VIDA. Sem a BIOS omicrocomputador não funciona, não tem“vida”. Dentro da BIOS, que nada mais édo que um CHIP de memória eletrônica, en-contramos softwares, ou seja, a “alma” doIBM-PC. São estes softwares (programas)que fazem a máquina saber quantos drivesde disco tem, qual o teclado utilizado, etc.

Deixando de lado as conjecturas e o ro-mantismo histórico, vamos estudar os micro-processadores em sua forma básica. Este es-tudo levará você a conhecer e até a desenvol-ver pequenos sistemas microprocessados.Basearemos nossos estudos em microproce-ssadores de 8 bits, como o Z80 ou 8085, ou-tros de 16 e 32 bits da família Intel 80X86.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Exercícios Propostos

133/11

1 - A Lei de Moore diz que:( ) a) a capacidade dos microprocessadores dobra a cada ano e meio.( ) b) o preço dos microprocessadores dobra a cada ano e meio.( ) c) se você tiver 50% de chance de errar é certeza que você erra.( ) d) a capacidade dos microcomputadores dobra a cada ano e meio.( ) e) a capacidade das memórias dobra a cada ano e meio.

2 - INTEL significa:( ) a) Inteligência;( ) b) Internet;( ) c) International Business Machine;( ) d) Integrated Electronics;( ) e) International Telephonic.

3 - Em microcomputadores, “corpo” e “alma” significam:( ) a) hardware e software;( ) b) carcaça e vida;( ) c) BIOS da IBM;( ) d) Microsoft;( ) e) clone.

4 - Open Architecture ou arquitetura aberta, no IBM-PC, significava:( ) a) tudo era fabricado pela IBM.( ) b) tudo era fabricado por outras empresas.( ) c) nada era fabricado pela IBM, com exceção da BIOS.( ) d) tudo era fabricado pela IBM, com exceção da BIOS.( ) e) Nenhuma das alternativas anteriores.

5 - Para os micros compatíveis com o IBM-PC o que significa BIOS?( ) a) Sistema Operacional.( ) b) Vida.( ) c) Sistema Básico de Entrada e Saída de Dados.( ) d) Basic Input Operational System.( ) e) Nenhuma das alternativas anteriores.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

2lição

lição

133/13

Introdução

Assim como a Intel começou fabricandomemórias eletrônicas, para só depois produ-zir microprocessadores que utilizariam suasmemórias, nosso estudo seguirá esta linhacronológica.

Memórias eletrônicas basicamente arma-zenam informações eletrônicas. Armazenambits (binary digits) que, eletricamente falando,armazenam níveis de tensão +5 V representan-do N.L. = 1 e GND representando N.L. = 0. Ele-tronicamente falando, memórias eletrônicassão circuitos lógicos formados inicialmente porflip-flops tipo DATA (veremos mais tarde ou-tras técnicas de memórias).

1. Estrutura das Memórias

Organizadas no formato de uma matriz (li-nha × coluna), cada linha da memória é nume-rada a partir do zero e chamadas de endereçosde memória, ou simplesmente endereços (emInglês, address).

Geralmente as memórias têm muitas li-nhas, portanto, muitos endereços onde pode-mos colocar informações digitais (1 ou 0).

Lembra-se dos demultiplexadores? Pois é!Internamente, as memórias eletrônicas possu-em um DEMUX, pois suas linhas de endereçoestão multiplexadas, o que permite uma redu-ção na pinagem externa do CI.

Memórias Eletrônicas

Memória Não Multiplexada16 pinos, 16 linhas, 16 saídas de 1 bit

Memória Multiplexada4 pinos, 16 linhas, 16 saídas de 8 bits (1 byte)

CONTROLE DEMULTIPLEX

DE

MU

LTIP

LEX

Veja o exemplo a seguir.

Figura 1

Figura 2

A0

A1

A3A2

00H01H02H03H04H05H06H07H08H09H0AH0BH0CH0DH0EH0FH10H

RTW DCS

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/14

A figura 1 mostra um comparativo. À es-querda temos uma memória com 16 linhas,ou seja, 16 endereços, começando pelo zero.Por não estar multiplexada internamente, elaprecisa de 16 pinos externos no CI, um pinopara ativar cada um dos endereços.

Em cada endereço da memória da es-querda só temos 1 bit, ou seja, somente umainformação digital, que pode ser 0 ou 1. Paracada saída teríamos um pino externo ao CI,então mais 16 pinos. Se contarmos com ospinos de alimentação (+Vcc e GND), já são 34pinos. É muito pino!

Olhe agora o exemplo da figura 2. A me-mória da direita tem a mesma quantidade delinhas (endereços) que a memória da esquer-da; porém, por estar multiplexada interna-mente, só precisa de 4 pinos externos no CIpara ativar cada uma das linhas. Estes pinossão nomeados com a letra A devido ao nomeaddress e seguido da numeração correspon-dente ao expoente da base 2. Lembra-se doscontadores com flip-flops? E suas saídas Q0,Q1, etc.? Ou então dos MUX e DEMUX?

Quando todas as linhas de endereço A0,A1, A2 e A3 estiverem em nível lógico 0, istoforma o binário 00002, que corresponde aohexa zero, indicando estar ativado o endere-ço zero da memória. A utilização destas me-mórias multiplexadas é muito semelhante àdos MUX e DEMUX. Note que as saídas tam-bém são multiplexadas. Cada endereço ago-ra carrega 8 informações digitais, 8 bits, ouseja, 1 byte. Desta forma, teremos, nas 8 saí-das, as 8 informações correspondentes aoendereço ativado.

Note também um bloco de controle damemória. Através dos pinos presos a ele con-trolam-se as informações, se serão gravadas(ou escritas) na memória. Chamamos este pro-cesso de write ou escrita na memória. Con-trola-se também se as informações sairão (ouserão lidas) da memória, processo este cha-

mado de read ou leitura da memória. Estebloco controla ainda a ativação de toda a me-mória por meio da saída em tri-state.

Basicamente, todas as memórias moder-nas funcionam usando este princípio, mudan-do um pouco de tecnologia e métodos de mul-tiplexação.

Para fixar o conceito de memória eletrô-nica, vamos fazer uma analogia destas me-mórias com arquivos de aço, muito utilizadosem escritórios.

Suponha que cada arquivo de aço sejauma pastilha de memória (ou CI). Suponhaque cada gaveta deste arquivo de aço estejanumerada a partir do zero. Suponha que den-tro de cada gaveta só caiba uma informaçãodigital, ou seja, 1 bit.

Alguém pede para você ver o conteúdoda gaveta 4. Para isso, você executa um pro-cesso de leitura da memória. Vai até o arqui-vo, abre a gaveta certa e olha o que tem lá.Fecha a gaveta e pronto. O que estava lá den-tro você viu e por lá ficou. Você não alterounada. Você somente viu o que tinha lá.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/15

O que você precisou para consultar a memória chamada arqui-vo de aço?

1) Onde estava a gaveta?

2) Qual o número da gaveta?

3) O que fazer depois da gaveta aberta?

Esta mesma ordem deve ser seguida ao utilizar um CI de me-mória:

1) Ativar a pastilha de memória que se deseja trabalhar.

2) Endereçar a memória. Dizer qual o endereço da memória que sedeseja trabalhar.

3) O que fazer nesse endereço. Ler ou escrever (read ou write) na-quele endereço de memória.

É costume representar memórias eletrônicas como uma listaou empilhamento de locações de memória. Na figura a seguir indi-camos o endereço da memória em hexadecimal e, dentro de cadalocação, o seu conteúdo.

XXXXH

XXXXH XXXXHXXXXH

Memóriacompleta

Início daMemória

Trecho daMemória

Final daMemória

Figura 3

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/16

Na figura, XXXXH representa o número do endereço da me-mória expresso em hexadecimal. Dentro de cada locação (endere-ço) de memória podemos ter 1 bit, 4 bits, etc., expressos em binárioou em hexadecimal.

Resumindo:

• Memórias eletrônicas armazenam informação digital.

• Internamente, são como matrizes linha × coluna.

• Cada linha da matriz é chamada de endereço de memória.

• Em cada endereço de memória podemos armazenar 1 bit, 4 bitsou 8 bits, dependendo de como a memória foi fabricada.

• Em cada endereço de memória a informação pode ser lida (read)e o conteúdo daquele endereço não se altera.

• Em cada endereço de memória a informação pode ser escrita(write) e o conteúdo daquele endereço é perdido, ficando nele onovo conteúdo colocado.

• Para trabalhar com estes chips de memória devemos indicar oCI, o endereço e o que se deseja fazer.

• Várias memórias podem ser ligadas para formar uma memóriamaior; isto só é possível devido ao controle de ativação de toda apastilha no sistema.

• Até hoje memórias são dispostas em matrizes linha × coluna, sómudando a tecnologia do material utilizado e métodos de multi-plexação dos endereços.

• Chamamos de dados os conteúdos de um endereço de memória.

• Os dados são números binários de 1 bit, 4 bits, 8 bits, etc.

Anotações e Dicas

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Exercícios Propostos

133/17

1 - Inicialmente a matriz de uma memória era feita de:( ) a) MUX;( ) b) DEMUX;( ) c) flip-flops;( ) d) chips;( ) e) células.

2 - Por que as linhas de endereço das memórias foram multiplexadas?( ) a) Para economizar flip-flops.( ) b) Porque se desejava uma memória menor.( ) c) Para reduzir o número de pinos externos do CI.( ) d) Para aumentar o número de pinos externos do CI.( ) e) Para fazer flip-flops.

3 - Qual é a seqüência exata para escrever na memória?..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

4 - Uma memória com 64 endereços é equivalente a um arquivo de aço de:( ) a) 64 gavetas;( ) b) 7 gavetas;( ) c) 63 gavetas;( ) d) 32 gavetas;( ) e) 264 gavetas.

5 - Uma memória multiplexada com 10 linhas de endereço, A0 até A9:( ) a) pode endereçar 1.024 locações de memória.( ) b) tem 10 endereços.( ) c) tem 10 linhas de dados.( ) d) pode endereçar 10 locações de memória.( ) e) armazena 10 bits.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

3lição

lição

133/19

Introdução

As memórias eletrônicas aplicáveis emmicrocomputadores ou sistemas eletrônicos es-tão divididas em duas categorias:

• memórias fixas, não-voláteis ou somentepara leitura (ROM) e

• memórias de rascunho, de trabalho ouvoláteis (RAM).

Vamos estudá-las.

1. Memórias ROM

A memória do tipo ROM, do Inglês ReadOnly Memory (Memória Somente para Leitu-ra) é aquela em que não podemos escrever oualterar seu conteúdo.

Como é que vamos poder ler nessa memó-ria se não podemos escrever nela? Ela já éfabricada com as informações em seu interior eo máximo que você pode fazer é acessá-las paraleitura (read).

Memórias ROM são fabricadas por um pro-cesso semelhante ao da impressão de camisetaspor silk-screen. Trata-se de uma tela que cha-mamos de master ou matriz original e dela tira-mos várias cópias, todas iguais.

O processo de fabricação de uma memóriaROM é custoso e só se justifica quando a pro-dução é em grande escala, da ordem de algunsmilhares ou milhões de memórias. Sua aplica-ção atual é na eletrônica embarcada, ou seja, aparte eletrônica colocada em aparelhos que ori-

Memórias Eletrônicas ReaisParte I

ginalmente não tinham dispositivos eletrôni-cos. Exemplos:

• brinquedos que, ao apertar um botão,falam ou emitem sons e ruídos;

• liquidificadores com painéis digitais, quemostram a hora, se o copo está bemencaixado, etc.;

• máquinas de lavar roupas com controleeletrônico;

• rádios-relógios, máquinas fotográficas, etc.

Eram aparelhos originalmente mecânicos eque agora trazem a eletrônica embarcada parafacilitar o controle ou enfeitar.

Videocassetes, DVDs, videogames, cartu-chos de videogames, auto-rádios, CD players,etc., também se utilizam deste tipo de memória.

Vantagens: devido à grande quantidade pro-duzida, o preço por unidade é bem pequeno.

Desvantagens: caso seja necessário alterar al-guma informação do conteúdo desta memória,todo um lote de memórias será perdido, acar-retando prejuízo ao se fabricar aquilo que nun-ca vai ser utilizado.

2. Memórias PROM

Seguindo na evolução das memórias, pre-cisava-se de uma memória que pudesse ser gra-vada (write) e depois ficasse somente para lei-tura (ROM). A idéia foi fabricar memórias di-tas virgens, onde o usuário colocaria dentro de-las as informações de que precisasse e depoisfizesse somente sua leitura (read).

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/20

A figura a seguir mostra uma memória dotipo PROM (Programable Read Only Memory),que se traduz como Memória ProgramávelSomente para Leitura. Isto significa que po-demos gravar dados na memória uma únicavez; depois disso, a memória não aceita re-gravação e se torna uma ROM normal.

Saída de Dados

D0 D7D1 D6D2 D5D3 D4

C

1

2

3

4

5

6

7

8

R R R R R R R

Linh

as d

e E

nder

eço

Memória PROM virgem.Todos os DIODOS estão OK.

Saída de Dados

D0 D7D1 D6D2 D5D3 D4

C

1

2

3

4

5

6

7

8

R R R R R R R

Linh

as d

e E

nder

eço

Memória PROM gravada.Alguns DIODOS foram “destruídos”.

As figuras 4 e 5 mostram uma memóriaPROM com 9 endereços de 8 bits cada.

Na memória PROM virgem todos os diodosestão bons; assim, ao acessarmos uma linhade endereço qualquer, teremos na saída11111111.

Na memória PROM gravada alguns diodosforam destruídos, aplicando a eles uma ten-são reversa que rompeu sua estrutura crista-lina. Esses diodos não existem mais e em seulugar ficou um circuito aberto. Agora, aoacessarmos a linha 4, por exemplo, teremos nassaídas 01111011. Cada diodo queimado forçasua saída para nível lógico zero.

As memórias PROMs comerciais chegama ter 2.048 endereços de 8 bits cada. Calculequantos diodos existem dentro delas. É poreste motivo que dizemos que as memóriasPROM podem ser gravadas uma única vez. Umdiodo queimado não pode ser recuperado.

Vantagens:

• Flexibilidade na produção. Não é mais ne-cessário encomendar milhares de memó-rias ROM.

• Renovação do conteúdo. Poderia mudar oconteúdo das memórias sem perder umgrande lote.

Desvantagens:

• Investimentos em equipamentos de grava-ção de memória.

• Um bit gravado errado inutilizaria toda amemória, pois não seria possível consertaro diodo destruído.

• Tem preço maior se comparado com asROMs, devido à baixa produção.

• São aplicáveis em protótipos e projetos dedesenvolvimento, em que não compensa-ria produzir em grande escala algo que ain-da está sendo desenvolvido.

Figura 4

Figura 5

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/21

3. Memórias EPROM

Continuando no processo de evolução, passaram a ser neces-sárias memórias que permitissem a regravação e continuassem sen-do ROMs depois disto. Surgiram então as memórias EPROM(Erasable Programable Read Only Memory), que se traduz por Me-mória Programável Apagável Somente para Leitura. Significa quevocê pode gravar dados, apagar dados e depois disto ela é utilizadacomo memória somente para leitura.

As memórias EPROM utilizam tecnologia opto-elétrica. Os da-dos são gravados por meio de tensão e corrente elétrica e apagadospor meio de luz ultravioleta (UV).

As pastilhas de memórias EPROM vêm com uma janela de cris-tal que permite visualizar a matriz de elementos que compõem amemória. Aplicando radiação ultravioleta pela janela, ela atingetodas as locações de memória, apagando seus conteúdos.

As memórias EPROM têm que ser apagadas totalmente, nãosendo possível apagar apenas um bit ou endereço e deixar todo oresto como estava.

Após a gravação de uma EPROM é aconselhável cobrir a jane-la de cristal com uma etiqueta adesiva metalizada, para evitar queradiação ultravioleta entre acidentalmente e danifique as infor-mações nela contidas.

Veja na figura 6 alguns exemplos comerciais de memóriasEPROM e como utilizá-las:

Figura 6

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/22

Note as janelas de entrada de radiaçãoUV para apagamento total, permitindo ver aslocações de memória.

4. Memórias EEPROM

Com a evolução chegamos às memóriasEEPROM (Electricaly Erasable ProgramableRead Only Memory), que se traduz como Me-mória Programável e Apagável Eletricamen-te Somente para Leitura. Isto significa quepodemos gravar e apagar dados com sinaiselétricos, não sendo mais necessária a radi-ação ultravioleta. Podemos apagar somente1 bit, se for o caso, e deixar o resto como es-tava.

Você pode também encontrar referênciasdesta memória como: E2PROM, E2PROM eE2PROM.

Vantagens: podemos gravar, apagar e regravarutilizando apenas sinais elétricos.

Desvantagens: consome muita energia e tempoucos endereços de memória, comparando-se com a EPROM.

São aplicáveis em sistemas eletrônicos queprecisam de setup ou ajuste personalizado,como TVs, videocassetes, agendas eletrônicas,câmaras fotográficas digitais, etc.

5. Resumo

Memórias ROM

- Encapsuladas no formato de um CI.

- Fabricadas com as informações já dentrodelas.

- Produzidas aos milhares, têm custoreduzido.

- Aplicadas na eletrônica embarcada emlinhas de produção de aparelhoseletroeletrônicos.

- Não permitem alteração de seu conteúdo.

Memórias PROM

- Encapsuladas no formato de um CI.

- Semelhantes às ROMs, só que permitema gravação de dados.

- Têm custo unitário maior devido à baixaprodução.

- Exigem equipamentos de gravação e nãotoleram erros de gravação.

- Teoricamente são como uma matriz dediodos todos OK, na qual “queimamos” osdiodos cuja informação a ser gravada sejao bit zero.

Memórias EPROM

- Encapsuladas no formato de um CI.

- Apresentam uma janela de cristal paraentrada de radiação ultravioleta paraapagamento total da memória.

- Fabricadas com elementos opto-elétricos.

- Gravam por meio de sinais elétricos.

- Apagam por meio de radiaçãoultravioleta.

- Funcionam como ROMs após a gravação.

- Permitem regravação.

- Aplicáveis em sistemas que precisam deupdate (renovação dos dados).

Memórias EEPROM

- Encapsuladas no formato de um CI.

- Programáveis por meio de sinais elétricosapenas.

- Têm quantidade de endereços menor secomparadas com as EPROMs.

- Utilizadas em sistemas que precisam desetup (ajuste ou calibraçãopersonalizada).

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Exercícios Propostos

133/23

1 - Qual a ordem do surgimento das memórias fixas?( ) a) PROM, ROM, EPROM e E2PROM( ) b) ROM, PROM, EPROM E E2PROM( ) c) E2PROM, PROM, EPROM E ROM( ) d) EPROM, E2PROM, ROM E PROM( ) e) ROM, CDROM, MARROM E PROM

2 - As memórias PROM são gravadas uma única vez porque a gravação dosdados é feita:

( ) a) por queima de diodos.( ) b) pela inclusão de diodos.( ) c) por luz ultravioleta.( ) d) por silk-screen.( ) e) por fita magnética.

3 - ROM, PROM, EPROM e E2PROM pertencem à categoria das ROMs porque:( ) a) são utilizadas apenas para a leitura de dados.( ) b) são utilizadas apenas para a escrita de dados.( ) c) são utilizadas também para a leitura de dados.( ) d) são utilizadas também para a escrita de dados.( ) e) após serem gravadas funcionam apenas para leitura de dados.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

4lição

lição

133/25

Introdução

A sigla RAM vem de um tempo em que as memórias de arma-zenamento de dados eram feitas por meio de cartões perfurados.Nessa época não eram disponíveis as memórias do tipo magnéticase as memórias eletrônicas tinham baixíssima capacidade de arma-zenar informações. Todos os acessos a essas memórias tinham queser no formato seqüencial ou linear. Perdia-se muito tempo pas-sando cartão por cartão até se chegar ao cartão procurado para ler ainformação.

Deixando esse passado de lado, as memórias do tipo RAM sãomemórias eletrônicas, fruto do avanço dos semicondutores e daminiaturização de circuitos lógicos, os chamados circuitos integra-dos (CI).

Memórias RAM (Random Access Memory) ou Memórias de Aces-so Aleatório, eram fabricadas inicialmente de flip-flops tipo data,arranjadas em endereços com 1, 4 ou 8 flip-flops por endereço, re-presentando, respectivamente, 1 bit, 4 bits e 8 bits.

Chamamos de acesso aleatório porque nela podemos acessarqualquer endereço diretamente, sem ter que passar pela seqüênciade todos os outros. Podemos ir direto do endereço 1000 para o ende-reço 300, por exemplo, e depois para o endereço 2134. O endereça-mento e a saída de dados são multiplexados.

As memórias RAM estão divididas em duas categorias básicas:SRAM e DRAM.

1. Memórias SRAM

SRAM (Static RAM), traduzido como RAM Estática, é formadapor flip-flops com tecnologia MOS. É uma memória rápida, porémcom baixa capacidade de endereços e consumo de energia elevado.Sem alimentação, perde as informações nela armazenadas devido aosflip-flops precisarem de energia para manter seus estados lógicos.

Memórias Eletrônicas ReaisParte II

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/26

É chamada de memória volátil, pois perde seu conteúdo com amenor variação da alimentação elétrica. Utilizada como memória detrabalho para microprocessadores, é encapsulada no formato de CI.

D D D D D D D D

D D D D D D D D

D D D D D D D D

D D D D D D D D

D D D D D D D D

D D D D D D D D

D D D D D D D D

D D D D D D D D

D D D D D D D D

D D D D D D D D

D D D D D D D D

D D D D D D D D

D D D D D D D D

D D D D D D D D

D D D D D D D D

D D D D D D D D

DE

MU

LTIP

LE

X D

E E

ND

ER

OS

CONTROLEREAD / WRITECHIP SELECT

DEMULTIPLEX DE DADOS

A0

A1

A2

A3

R / W CS D0 D1 D2 D3 D4 D5 D6 D7

Figura 7 - Exemplo de estrutura interna de uma memória SRAM 16 endereços - 8 BITS

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/27

Na figura 7, cada bloco com a letra D representa um flip-floptipo data.

Expanda o exemplo imaginando 1.024 linhas com 8 flip-flopstipo data cada uma. Você terá uma memória SRAM de 1 kbyte, comlinhas de endereçamento A0 até A9 e saída/entrada de dados de D0até D7.

2. Memórias DRAM

DRAM (Dynamic RAM) é traduzida como RAM Dinâmica.

A idéia para fabricação desta memória teve origem no fato de ostransistores FET (efeito de campo elétrico) trabalharem por d.d.p.(diferença de potencial) e não pela passagem de uma corrente elétri-ca de controle. Assim, capacitores armazenam d.d.p. e memórias ar-mazenam dados. Logo, armazenar d.d.p. é o mesmo que armazenardados.

Capacitores seriam agora os substitutos dos flip-flops tipo datae armazenariam d.d.p. O problema é que todo capacitor perde suacarga naturalmente com o passar do tempo. Assim, as DRAMs tam-bém são chamadas de voláteis, pois perdem suas informações com amenor variação da tensão de alimentação.

A idéia é ótima, pois em um CI cabem muito mais capacitores doque flip-flops; o problema é a perda de carga elétrica (d.d.p.). Paracompensar este problema é embutido um circuito de refresh, tradu-zido como refresco ou renovação dos dados. Este circuito tem a fun-ção de olhar cada um dos milhares de capacitores que compõem amemória e, se um deles tiver d.d.p., ou seja, carga armazenada, dar aele um pouco mais de carga.

Este processo é repetido entre alguns milisegundos desde a li-gação da memória até que seja desligada. O inconveniente é que,enquanto estiver sendo feito o refresh, ninguém pode acessar os da-dos dentro da memória, fenômeno este chamado de wait state ouestado de espera, que é o tempo que se espera para poder trocarinformações com as memórias do tipo DRAM.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/28

DE

MU

LTIP

LE

X D

E E

ND

ER

OS

CONTROLEREAD / WRITECHIP SELECT CIRCUITO REFRESH

A0

A1

A2

A3

R / W

CS

D0 D1 D2 D3 D4 D5 D6 D7

Figura 8 - Exemplo de memória DRAM 16 endereços - 8 BITS

DEMULTIPLEX DE DADOS

Na figura 8, cada linha é composta de 8 capacitores que têmsua carga renovada pelo circuito de refresh, gerando um wait state(período de espera) para que a memória possa ser acessada.

Atualmente, temos memórias DRAMs comerciais com 60 ns (na-nosegundos) para acesso.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/29

3. Resumo

As memórias RAM têm esse nome porque podem acessar qual-quer endereço diretamente, sem passar pela seqüência dos demais.São divididas em duas categorias: SRAM e DRAM. São conhecidascomo memórias voláteis porque perdem suas informações com amenor variação da tensão de alimentação.

As SRAMs são as estáticas, pois conservam seus dados na saídaenquanto houver alimentação. São basicamente formadas por flip-flops tipo data.

As DRAMs são memórias formadas basicamente por capacitorese precisam de circuito de refresh, o qual cria um tempo de esperapara poder acessar este tipo de memória.

As SRAMs têm uma quantidade de endereços menor se compa-radas com as DRAMs, porém, são mais rápidas. SRAMs e DRAMstêm características complementares.

Anotações e Dicas

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Exercícios Propostos

133/30

1 - Memórias RAM significam:( ) a) memórias de trabalho.( ) b) memórias de rascunho.( ) c) memórias de acesso seqüencial.( ) d) memórias de acesso direto.( ) e) memórias de acesso aleatório.

2 - Memórias RAM são apagadas:( ) a) jogando luz UV em sua janela de cristal.( ) b) com borracha.( ) c) retirando a alimentação.( ) d) uma a uma.( ) e) destruindo seus diodos internos.

3 - SRAM é fabricada com:( ) a) silício.( ) b) germânio.( ) c) estática.( ) d) flip-flop tipo data.( ) e) capacitores.

4 - DRAM é fabricada com:( ) a) silício.( ) b) germânio.( ) c) estática.( ) d) flip-flop tipo data.( ) e) capacitores.

5 - Refresh é o ato de:( ) a) refrescar.( ) b) apagar.( ) c) verificar a carga nos capacitores em cada endereço de memória.( ) d) acrescentar carga nos capacitores carregados em cada endereço de me-

mória DRAM.( ) e) reinicializar o computador.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

5lição

lição

133/31

Introdução

Nesta lição iremos esclarecer os termostécnicos utilizados no estudo dos microproces-sadores, indispensáveis para seu perfeito en-tendimento.

1. Termos Técnicos e suas Explicações

Alguns itens da eletrônica digital são uti-lizados para compor um microprocessador.Precisamos tê-los em mente:

Clock – Sinal elétrico no formato de onda qua-drada. Apresenta período, freqüência e ape-nas dois níveis (+Vcc e GND), compreendidoscomo N.L. = 1 e N.L. = 0.

Gerador de Clock – Trata-se de um circuitoeletrônico que gera essa onda quadrada.

Nível Lógico 1 - +Vcc.

Nível Lógico 0 - GND.

Tri-state – É conhecido como o terceiro esta-do lógico. Não é nível lógico 1 e nem nível lógi-co 0, mas trata-se de alta impedância ou HI-Z,em Inglês. Dizemos que uma pastilha está emtri-state quando seus terminais apresentamuma alta impedância com relação à placa a queestão soldados. Em alta impedância, é como sea pastilha estivesse desconectada da placa,como se ela fosse arrancada. O controle portri-state é importantíssimo em sistemasmicroprocessados, pois evita o curto-circuitoentre saídas lógicas.

Preparação paraMicroprocessadores

Barramento ou BUS – Dá-se o nome de barra-mento ao conjunto de fios que transportam si-nais elétricos no formato digital e que exerçamuma mesma função. Por exemplo: uma memó-ria apresenta 10 linhas de endereçamento; por-tanto, esta memória tem 210 endereços, quecorresponde a 1.024 endereços; estas 10 linhastêm a função de formar o endereço da memóriaem binário, sendo nomeadas e numeradas de A0até A9. Este conjunto de 10 fios é entendidocomo um barramento ou, em Inglês, bus. Pode-mos ter barramentos de endereços de diferen-tes tamanhos. Exemplos:

• o microprocessador Z80 tem umbarramento de endereços de 16 bits.

• o microprocessador 80386 tem barramentode endereços de 32 bits.

Assim, podemos ter:

• Barramento de endereços ou address bus.

• Barramento de dados ou data bus.

• Barramento de controle ou control bus.

Exemplos:

• A memória SRAM 6116 tem 11 linhas deendereço, ou seja, tem um barramento deendereços de 11 bits.

• A memória EPROM 2732 tem 12 linhas deendereço, ou barramento de endereços de12 bits.

Contadores Binários – Circuitos lógicos digi-tais que recebem pulsos de clock e realizamuma contagem em binário. Podem ser progra-

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/32

mados para começar a contar a partir de qual-quer número binário, podendo ser resetadospara voltar a contagem a zero. Podem contarprogressiva ou regressivamente a cada pulsode clock.

Memórias – Circuitos lógicos digitais que ar-mazenam informação binária (binary digit).Podem armazenar 1 bit, 4 bits, 8 bits, etc. Suacapacidade é medida em função da quanti-dade de endereços e de quantos bits cada en-dereço tem. Cada conjunto de 1.024 é cha-mado kilo e representado pela letra k. Cada1.024 conjuntos de 1.024, ou cada 1.024 con-juntos de kilo é chamado mega e representa-do pela letra M. Cada 1.024 conjuntos de megaé chamado giga e representado pela letra G.1 bit é 1 bit. 4 bits é chamado nibble. 2 nibblesé chamado byte. 8 bits é também chamadobyte. 16 bits é chamado word. 32 bits é cha-mado double word.

Assim, teremos memórias de:

• 1 kbyte, que são compostas de 1.024endereços de 8 bits cada;

• 1 kbit, que são compostas de 1.024endereços de 1 bit cada;

• 1 Mbyte, que são compostas de 1.024kbytes ou 1.048.576 bytes.

O primeiro número refere-se à quanti-dade de endereços ou locações de memórias;o segundo número, expresso em palavras bit,byte ou word, diz respeito à quantidade deinformação que cabe em cada endereço.

Consulte sempre estes termos em caso dedúvidas.

2. Controlador Programável

Vamos acrescentar à lista termos própri-os de microcomputadores.

Controlador – Circuito lógico digital cuja fun-ção é controlar dispositivos externos por meiode uma seqüência lógica de acionamentosdeste dispositivo.

Controlador Programável – É o controladorque permite ser programado. Podemos alte-rar a seqüência lógica dos acionamentos semalterar o circuito (hardware), apenas alteran-do a programação (software). Estes circuitos,por conseqüência, utilizam memórias.

Mostramos em seguida um aplicativo sim-ples de um controlador programável. Trata-se de um cruzamento de vias com semáforossincronizados para automóveis e pedestres.Os dispositivos externos a serem acionadossão as lâmpadas dos semáforos. Um circuitogerador de clock é ajustado para 1 Hz (1 pul-so a cada segundo ou 1 pulso por segundo).Temos ainda:

• um circuito contador binário comcapacidade para contar até 2.048 pulsos;

• um circuito de reset automático, parainiciar a contagem a partir do zero assimque o circuito for ligado;

• uma memória eletrônica com capacidadede 2 kbytes;

• circuitos driver de potência para acionaras lâmpadas, uma vez que +5 volts vindosdos CIs não tem capacidade para acionarlâmpadas de 110 V.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/33

A figura mostra o 555 na configuração gerador de onda qua-drada. Seus valores de R e C produzem uma oscilação de 1 Hz (umpulso a cada segundo).

+ Vcc

GNDQ0

Q1

Q2

Q3

Q4

Q5

Q6

Q7

Q8

Q9

Q10

A0

A1

A2

A3

A4

A5

A6

A7

A8

A9

A10

D0

D1

D2

D3

D4

D5

D6

D7

+ Vcc

CLO

CK

CO

NTA

DO

R B

INÁ

RIO

ME

RIA

GND

RESET R / W CS

+ 5 VC

R

C

R

R

+ 5 V

555

Figura 9 - Controlador programável (CP)

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/34

O gerador de clock é ligado ao contador binário de 11 saídas, oque permite a ele contar até 2.048 pulsos. Acompanha o contadorum circuito de reset automático. Ao ligarmos a alimentação a con-tagem inicia no zero.

Cada saída do contador é conectada à correspondente entradade endereçamento da memória: LSb no LSb e segue a seqüência.

As saídas da memória acionam as lâmpadas dos semáforos di-retamente através de drivers de potência. Assim:

• quando D0 for N.L. = 1, acende a lâmpada vermelha dosemáforo 1;

• quando D1 for N.L. = 1, acende a lâmpada amarela doemáforo 1;

• quando D2 for N.L. = 1, acende a lâmpada verde do semáforo 1;

• quando D3 for N.L. = 1, acende a lâmpada vermelha dosemáforo de pedestres;

• quando D4 for N.L. = 1, acende a lâmpada verde do semáforode pedestres;

• quando D5 for N.L. = 1, acende a lâmpada vermelha dosemáforo 2;

• quando D6 for N.L. = 1, acende a lâmpada amarela dosemáforo 2;

• quando D7 for N.L. = 1, acende a lâmpada verde do semáforo 2.

Para que o circuito funcione é preciso programar a memória.Vamos representar a memória pelo empilhamento de locações eindicar seu endereço e seu conteúdo em hexadecimal.

Cada locação de memória é composta de 8 bits, e cada bit con-trola uma lâmpada dos semáforos. Precisamos saber que bit acen-de qual lâmpada. Por isso, veja a tabela proposta:

VERMELHOSEMÁFORO

1D0

AMARELOSEMÁFORO

1D1

VERDESEMÁFORO

1D2

VERMELHOSEMÁFORO

1D3

VERDESEMÁFORO

D4

VERMELHOSEMÁFORO

2D5

AMARELOSEMÁFORO

2D6

VERDESEMÁFORO

2D7

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/35

A tabela a seguir apresenta um progra-ma de controle dos semáforos. Como o clockdo circuito é de 1 Hz, o conteúdo de cada en-dereço de memória ficará na saída por 1 se-gundo. Assim, se desejarmos que uma lâm-pada fique acesa por 10 segundos, devemosrepetir este conteúdo de memória por 10 en-dereços consecutivos.

A programação que segue inicia com osdois faróis vermelhos e o verde de pedestresaceso, por 13 segundos. Cada farol verde per-dura por 13 segundos. Cada farol amarelo ficaaceso por 2 segundos.

Observe que neste exemplo trabalhamoscom o endereçamento em hexadecimal. Oconteúdo foi colocado em binário para me-lhor visualização dos acontecimentos, masveremos ainda que esses binários deverão serconvertidos para hexadecimal.

Nosso exemplo não segue até o final, poisocuparia várias linhas de programação (en-dereços de memória). A pergunta é: como co-locar essas informações dentro da memória?Não pode ser uma memória RAM, pois per-

ENDEREÇO

0000h0001h0002h0003h0004h0005h0006h0007h0008h0009h

000Ah000Bh000Ch000Dh

000Eh000Fh0010h

CONTEÚDO

10001100100011001000110010001100100011001000110010001100100011001000110010001100

10010100100011001001010000110100

001101000011010000110100

Inicia com os doisfaróis vermelhos e overde de pedestres

acesos.

O farol de pedestreverde se alterna como vermelho, avisando

que vai fechar.

O farol verde dosemáforo 1 acende,enquanto os outros

ficam vermelho.

deria o conteúdo com qualquer ausência datensão de alimentação. Então, sobraram asmemórias do tipo EPROM e EEPROM.

Uma vez com o programa todo feito, uti-lizamos os gravadores de EPROM eEEPROM, conforme exemplos a seguir.

Existem vários modelos e marcas no mer-cado, a escolher. Com a memória gravada,basta colocá-la no circuito e ligar.

Ao nosso controlador programável faltapoder receber informações externas. Umexemplo seria o acionamento do semáforo depedestre somente se existisse alguém paraatravessar. Nosso circuito teria que identifi-car o acionamento do botão. Essas e outrashabilidades podem ser encontradas nos mi-croprocessadores.

Figura 10

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Exercícios Propostos

133/36

1 - O que significa uma memória de 4 kbytes?( ) a) Memória com 4.096 endereços de 8 bits cada.( ) b) Memória com 2.048 endereços de 1 bit cada.( ) c) Memória com 4.000 endereços de 8 bits cada.( ) d) Memória com 8.192 endereços de 16 bits cada.( ) e) Memória com 4.096 endereços de 1 bit cada.

2 - Defina barramento.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

3 - Bit, nibble, byte e word são, respectivamente:( ) a) 1, 2, 4 e 8 bits.( ) b) 1, 4, 8 e 16 bits.( ) c) 2, 4, 8 e 16 bits.( ) d) 1, 2, 3 e 4 bits.( ) e) 1, 8, 4 e 2 bits.

4 - Para representar o endereço de memória, bem como seu conteúdo, utilizamosnúmeros:

( ) a) binários.( ) b) decimais.( ) c) trinários.( ) d) hexadecimais.( ) e) octais.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/37

5 - Tri-state é:( ) a) nível lógico 1.( ) b) nível lógico 0.( ) c) alta impedância.( ) d) baixa impedância.( ) e) três estados lógicos.

6 - Como transferimos o programa feito no papel para dentro da memória?( ) a) Por e-mail.( ) b) Por um gravador de memórias.( ) c) Por um gravador de CD.( ) d) Por um computador.( ) e) Não é possível a transferência.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

6lição

lição

133/39

Introdução

Os microprocessadores podem ser compa-rados com o cérebro humano, apresentando fun-ções análogas. Vamos, nesta lição, mostrar ummicroprocessador por dentro, analisando suaestrutura e funcionamento.

1. Cérebro Humano eCérebro Eletrônico

Na busca pelas calculadoras, o homem re-correu ao que existia de melhor na natureza parafazer cálculos: o cérebro humano. Imitando pormeio de circuitos elétricos, pois o cérebro tra-balha por descargas elétricas, criou-se omicroprocessador. Semelhante ao cérebro hu-mano, ele realiza as seguintes funções:

• interpreta informações codificadas;

• calcula;

• adverte sobre resultados;

• memoriza temporariamente o que se devefazer, depois esquece;

• acessa a memória de retenção;

• acessa periféricos, buscando ou enviandoinformações;

• é impulsionado a executar instruções pelosciclos do clock.

Basicamente, é o mesmo que nosso cérebrofaz o tempo todo enquanto estamos vivos. Vejaa figura 11:

Microprocessadores

Quando alguém fala conosco, a informaçãonos chega pelos ouvidos e deve ser interpretadapelo cérebro. Quando lemos um texto, a infor-mação vem pelos olhos e deve ser interpretadapelo cérebro. Utilizamos o interpretador de nos-so cérebro.

Quando calculamos quanto é 2 + 2, 7 x 5,etc., utilizamos nossa U.L.A. (Unidade Lógicae Aritmética). Para calcular algo, nosso cére-bro utiliza pequenas memórias para rascunho.Lá guardamos os dois números envolvidos naprimeira etapa do cálculo e o que devemos fa-zer com eles: utilizamos nossos registradores.Buscamos na memória fixa do nosso cérebrocomo executar aquele cálculo. Caso o resulta-

Processamento,Interpretação e

Cálculo

Memória de“RASCUNHO”

Memória de“RETENÇÃO

FIXA”

Figura 11 - Organização do cérebro humano usadocomo base dos microprocessadores

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/40

do seja o esperado ou não, rapidamente so-mos advertidos: utilizamos nossas flags. Re-cebemos informações pelos nossos cinco sen-tidos (olfato, tato, visão, paladar e audição) ecomandamos nossos músculos: utilizamos osdispositivos de I/O (input/output) ou perifé-ricos. Somos movidos pelos batimentos car-díacos: utilizamos nosso clock.

Como você pode perceber, os microproces-sadores são muito semelhantes ao nosso cére-bro.

2. Microprocessadores Internamente

O termo “micro” se deve ao fato de seremmuito pequenos quando comparados com osprocessadores de grande porte. Portanto,processador ou microprocessador é apenasuma questão de tamanho, não de funcionali-dade.

Também utilizamos o termo C.P.U., do In-glês Central Processing Unit, traduzido noBrasil como U.C.P. ou Unidade Central deProcessamento.

O termo “central” é devido ao fato de queo microprocessador centraliza todo o proces-samento; tudo o que acontece no microcom-putador tem, necessariamente, que passarpela C.P.U.

Esta é a grande questão dos sistemascomputacionais: para processar dados maisrapidamente, é preciso aumentar a velocida-de com que esse processamento é feito, ou seja,fabricar microprocessadores que aceitem pul-sos de clock com freqüências cada vez maio-res. O processador Intel Pentium III, por exem-plo, aceita clock de 1.06 GHz, custando algoem torno de US$ 220 (duzentos e vinte dólaresamericanos).

A figura 12 representa um microproce-ssador em seus principais blocos funcionais.

Vamos descrever seus pinos:

PINO RESET – Quando ativado, reseta o con-tador e em suas saídas forma-se o endereçozero, onde todas as linhas de endereçamentovão a nível lógico zero.

PINO CLOCK – Entrada de sinal de onda qua-drada, às vezes vindo de um gerador externo,às vezes interno ao próprio processador. Suafreqüência determina a velocidade com quesão feitos os processamentos dos dados. Pode-mos aumentar a freqüência do sinal de clock,mas o microprocessador não consegue respon-der com precisão a essa velocidade, calculan-do de modo errado, ativando dispositivo demodo errado.

PINOS DE ENDEREÇAMENTO – São as saí-das do bloco contador, nomeadas com a letraA e numeradas a partir do zero. A quantidadede linhas de endereçamento depende do que

Figura 12 - Por dentro de uma C. P. U.

A0 ~ An

D0 ~ Dn

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/41

cada fabricante colocou em seus micropro-cessadores. No Z80, por exemplo, são 16 li-nhas de endereçamento (A0 até A15); no 80386são 32 linhas (A0 até A31).

PINOS DE DADOS – Ligados ao bloco con-trolador de fluxo de dados, são nomeados coma letra D e numerados a partir do zero. A quan-tidade de linhas de dados indica a “potência”do processador e depende de quanto o fabri-cante colocou. No Z80, por exemplo, são 8 li-nhas de dados (D0 até D7); já no 80386 são 32linhas de dados (D0 até D31).

PINO READ – Pino de saída de sinal elétrico.Quanto ativo, o microprocessador informa aosdispositivos externos que ele fará uma leitura.

PINO WRITE – Pino de saída de sinal elétri-co. Quando ativo, o microprocessador infor-ma aos dispositivos que ele fará uma escrita.

PINO MEMORY – Pino de saída de sinal elé-trico. Quando ativo, o microprocessador in-forma que trabalhará com as pastilhas de me-mória apenas, e não com os periféricos.

PINO I/O (INPUT/OUTPUT) – Pino de saídade sinal elétrico. Quando ativo, o micropro-cessador informa que trabalhará com os pe-riféricos apenas, e não com as memórias.

PINO +Vcc – É a alimentação por tensão contí-nua. Atualmente a tendência é diminuir a ten-são de alimentação. Para que você tenha umanoção, o Z80 trabalha com tensão de +5 volts,enquanto que um 80486 trabalha com tensãode 3,5 volts ou 3,3 volts de alimentação.

Com clocks cada vez mais altos, a movi-mentação dos dados e, portanto, de elétronsdentro do processador é muito intensa, geran-do calor. A partir dos processadores Intel80486 é necessária a utilização de cooler (ven-tilador sobre uma peça de alumínio aletada),cuja função é dissipar o calor gerado noprocessador. Assim, poderá funcionar por umtempo maior sem que se “queime”.

Diminuindo a tensão de alimentação dosprocessadores geramos menos calor e pode-mos aumentar a freqüência do clock; porém,mesmo assim precisamos utilizar cooler.

Vamos descrever os blocos funcionais:

BLOCO CONTADOR DE ENDEREÇOS –Trata-se de um contador binário que tem suacontagem controlada pelas instruções domicroprocessador. Pode ser zerado, ter alte-rada sua contagem, etc.

BLOCO CONTROLADOR DE FLUXO DEDADOS – Trata-se de um circuito formado porflip-flops tipo data com características tri-state e direcionais. Ele é controlado por ins-truções do processador que indicam se os da-dos devem sair do processador para a memó-ria ou periférico ou vice-versa.

BLOCO INTERPRETADOR – Todo micropro-cessador é fabricado com um conjunto de ins-truções que seu fabricante determinou. As ins-truções são as únicas “coisas” que o micro-processador sabe fazer. Não existem instru-ções para cor, sons, etc. Estas instruções fo-ram reservadas pelo fabricante e a cada umadelas foi associado um número binário que oprocessador interpreta. Para nossa facilida-de, esses binários foram convertidos em có-digo hexadecimal e mais tarde foram nome-ados.

BLOCOS REGISTRADORES – São pequenasmemórias do tipo SRAM de 8 bits, 16 bits ou32 bits que funcionam como rascunho. Porestes registradores passa tudo que o pro-cessador faz. Estão divididos em duas cate-gorias: os de uso geral e os de uso específico.Vamos tomar como exemplo o processadorIntel 80386. Ele tem 4 registradores de uso ge-ral de 16 bits cada, chamados de AX, BX, CXe DX. Estes registradores podem ser dividi-dos em duas partes de 8 bits chamadas de partealta ou high e parte baixa ou low. A parte altacontém os bits mais significativos; a parte bai-xa contém os bits menos significativos. Assim,

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/42

AX é de 16 bits, mas podemos utilizar o AHde 8 bits e o AL de 8 bits. O mesmo se aplicaaos outros. Veja a figura:

REGISTRADOR PC (PROGRAM COUNTER)- Ele armazena o endereço da próxima instru-ção a ser executada pelo microprocessador.

REGISTRADOR SP (STACK POINTER) –Ele armazena o endereço da última locaçãode memória RAM disponível no sistema.

BLOCO U.L.A. (UNIDADE LÓGICA EARITMÉTICA) – Tem apenas duas entradas,pois assim como o ser humano, só conseguecalcular algo de dois em dois. Para cada doisnúmeros, um único resultado sai da U.L.A. eé armazenado no registrador A. A U.L.A. sóconsegue efetuar adição e subtração de bi-nários (multiplicar é somar algumas vezes omesmo número). Além destas operações arit-

méticas, ela também consegue executar to-das as funções lógicas entre dois binários,como AND, OR, NAND, EXAND, INVERSO-RA, etc.

REGISTRADOR FLAGS (BANDEIRINHAS)– É um registrador especial em que cada umde seus bits tem a função de advertir algumresultado da U.L.A. Dentro dele temos:

• flag de zero (flag Z): é ativada sempre queo resultado da U.L.A. seja o binário zero;

• flag de carry (flag C): é ativada sempre queo resultado da U.L.A. provocar o “vai um”ou carry;

• flag de sinal (flag S): é ativada sempre queo resultado da U.L.A. for um número ne-gativo;

• flag de paridade (flag P): é ativada sempreque o resultado da U.L.A. apresentar umnúmero binário com quantidade par de bitsigual a 1.

Existem outras flags, mas aplicam-se a umestudo muito mais avançado.

Veja a seguir um exemplo de registradorflag.

Basicamente, encontramos esta estrutu-ra em todos os processadores. Estudaremosdois deles para dar a você uma boa base so-bre microprocessadores. Como todos tem pra-ticamente a mesma construção interna, es-tudar um deles deixa você apto a conhecer etrabalhar com os demais.

16 - bits

AXAH

8 - bits

AL

8 - bits16 - bits

BX

BH

8 - bits

BL

8 - bits

16 - bits

CXCH

8 - bits

CL

8 - bits

16 - bits

DXDH

8 - bits

DL

8 - bits

ZSPCAC8 - bits

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

7lição

lição

133/43

Introdução

Agora que você já tem conhecimentos bá-sicos sobre microprocessadores, vamos anali-sar em detalhes dois diferentes:

• Microprocessador Zilog Z80

• Microprocessador Intel família 80X86 (8086,80286, 80386, 80486, Pentium)

1. Z80 Internamente

A figura 13 mostra o microprocessadorZ80-CPU. Trata-se de um microprocessadornum invólucro de 40 pinos (figura 14).

Microprocessador Z80

Identificamos os pinos básicos de endere-çamento, de dados, de clock, de memória, deI/O, de reset, de leitura (read) e de escrita(write).

Comentando os outros pinos:

PINOS DE ALIMENTAÇÃO - +Vcc de 5 voltse GND referência zero volt.

PINO M1 (MACHINE CYCLE ONE) – Ativoem nível lógico zero, indica aos periféricos queo processador está no primeiro ciclo de má-quina, em busca de instrução na memória.

PINO RFSH (REFRESH) – Saída de sinal elé-trico. Quando ativado vai a nível lógico zero,indicando por meio dos 7 bits menos significa-tivos a posição de memória dinâmica (DRAM)a ser restaurada.

PINO WAIT (ESPERA) – Pino de entrada desinal elétrico vindo de periféricos lentos. Ati-vo em nível lógico zero, indicando à CPU queseus dados ainda não podem ser lidos por ela.

PINO INT (INTERRUPT) – Entrada de sinalelétrico vindo de periféricos que precisam uti-lizar o bus de endereços e o bus de dados. É umpedido de interrupção do programa por umdeterminado momento para que o periféricose utilize dos barramentos.

PINO HALT (PARADA) – Saída ativa em ní-vel lógico zero, indicando que a CPU executouuma instrução de software de parada (halt).Para que a CPU volte a processar é necessárioum sinal elétrico de hardware no pino INT.

Figura 13

Figura 14

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/44

PINO NMI (NON MASKABLE INTERRUPT) – Semelhante ao INT, este pino de entrada tem prioridade total sobre a CPU, fazendo interromper a execução do programa no momento da NMI, diferentemente da entrada INT, na qual a CPU completa a instrução e depois libera os barramentos.

PINO BUSREQ (BUS REQUEST) – Tradu­zido como “requisição dos barramentos”, este pino de entrada, ativo em nível lógico zero, é ativado por periféricos que querem utilizar os barramentos de endereço, dados e controle. Os periféricos que solicitam o barramento (bus) esperam um sinal vindo da CPU, o BUSACK.

PINO BUSACK (BUS ACKNOWLEDGE) – Pino de saída que informa aos periféricos que solicitaram os barramentos que eles ago­ra estão à sua disposição. A simples retirada do sinal BUSREQ faz a CPU voltar ao proce­ssamento normal.

Para que o microprocessador funcione, ele precisa estar inserido em um sistema micro­processado, comumente chamado microcom­putador ou computador. Este sistema é com­posto apenas da CPU, memória tipo ROM onde estão os programas de inicialização e memórias RAM onde trabalharemos os dados. Todo o resto é chamado periférico. A figura 15 mostra um exemplo de sistema.

Hardware é a parte física do sistema, sendo composto de fontes de alimentação de tensão contínua, circuitos integrados de portas lógicas, memórias, MUX, DEMUX, resistores, capacitores, placa de circuito im­presso, cristal oscilador e periféricos.

Os periféricos são um capítulo à parte, pois são desenvolvidos circuitos chamados de interface. Um circuito de interface é pro­jetado para adequar os sinais elétricos dos periféricos com os sinais elétricos da CPU. Por exemplo, a CPU trabalha com +5 volts contínuos e deve controlar uma lâmpada de 110 volts alternada; o circuito de interface fará essa adequação. Outro exemplo é para fazer com que o computador saiba que o céu está claro ou escuro: um sensor de luminosi­dade varia sua resistência elétrica conforme a intensidade de luz; o circuito de interface fará a conversão de resistência para um nú­mero binário e este terá +5 volts reconhecido como nível lógico 1. Por isso, periféricos não são parte do microcomputador.

A figura 16 mostra componentes do hardware de um microcomputador pessoal baseado na CPU Z80.

Agora, para fazer a CPU trabalhar como queremos, é preciso programá­la. Como dissemos, cada CPU tem um conjunto de instruções determinado pelo fabricante no momento do projeto do microprocessador. A

Figura 15

Figura 16

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/45

Mnemonic SZHPNC Description Notes

ADC A,s ***V0* Add with Carry A=A+s+CYADC HL,ss **?V0* Add with Carry HL=HL+ss+CYADD A,s ***V0* Add A=A+sADD HL,ss —?-0* Add HL=HL+ssADD IX,pp —?-0* Add IX=IX+ppADD IY, rr —?-0* Add IY=IY+rrAND s ***P00 Logical AND A=A&sBIT b,m ?*1?0- Test Bit m&2^bCALL cc,nn ——— Conditional Call If cc CALLCALL nn ——— Unconditional Call -[SP] =PC, PC=nnCCF —?-0* Complement Carry Flag CY=~CYCP s ***V1* Compare A-sCPD ****1- Compare and Decrement A-[HL], HL=HL-1, BC=BC-1CPDR ****1- Compare, Dec., Repeat CPD till A=[HL]or BC=0CPI ****1- Compare and Increment A-[HL], HL=HL+1, BC=BC-1

cada instrução foi atribuído um código que será interpretado e exe-cutado pela CPU.

Veja a seguir a lista de instruções e códigos da CPU Z80.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/46

CPIR ****1- Compare, Inc., Repeat CPI till A=[HL]or BC=0CPL —1-1- Complement A=~ADAA ***P-* Decimal Adjust Acc. A=BCD formatDEC s ***v1- Decrement s=s-1DEC xx ——— Decrement xx=xx-DEC ss ——— Decrement ss=ss-1DI ——— Disable InterruptsDJNZ e ——— Dec., Jump Non-Zero B=B-1 till B=0EI ——— Enable InterruptsEX [SP], HL ——— Exchange [SP] <->HLEX [SP], xx ——— Exchange [SP] <->xxEX AF, AF’ ——— Exchange AF<->AF’EX DE, HL ——— Exchange DE<->HLEXX ——— Exchange qq<->qq’ (except AF)HALT ——— HaltIM n ——— Interrupt Mode (n=0, 1, 2)IN A, [n] ——— Input A=[n]IN r, [C] ***P0- Input r=[C]INC r ***V0- Increment r=r+1INC [HL] ***V0- Increment [HL] = [HL]+1INC xx ——— Increment xx=xx+1INC [xx+d] ***V0- Increment [xx+d]=[xx+d]+1INC ss Increment ss=ss+1IND ?*??1- Input and Decrement [HL] = [C], HL=HL-1, B=B-1INDR ?1??1- Input, Dec., Repeat IND till B=0INI ?*??1- Input and Increment [HL] = [C], HL=HL+1, B=B-1INIR ?1??1- Input, Inc., Repeat INI till B=0JP [HL] ——— Unconditional Jump PC=[HL]JP [xx] ——— Unconditional Jump PC=[xx]JP nn ——— Unconditional Jump PC=nnJP cc, nn ——— Conditional Jump If cc JPJR e ——— Unconditional Jump PC=PC+EJR cc, e ——— Conditional Jump If cc JR (cc=C, NC, NZ, Z)LD dst, src ——— Load dst=srcLD A, i **0*0- Load A=iLDD —0*0- Load and Decrement [DE] = [HL], HL=HL-1, #LDDR —000- Load, Dec., Repeat LDD till BC=0LDI —0*0- Load and Increment [DE] = [HL], HL=HL+1, #LDIR —000- Load, Inc., Repeat LDI till BC=0NEG ***V1* Negate A=-ANOP ——— No OperationOR s ***P00 Logical inclusive OR A=AvsOTDR ?1??1- Output, Dec., Repeat OUTD till B=0OTIR ?1??1- Output, Inc., Repeat OUTI till B=0OUT [C], r ——— Output [C]=rOUT [n], A ——— Output [n]=AOUTD ?*??1- Output and Decrement [C]=[HL], HL=HL-1, B=B-1OUTI ?*??1- Output and Increment [C]=[HL], HL=HL+1, B=B-1POP xx ——— Pop xx=[SP]+POP qq ——— Pop qq=[SP]+PUSH xx ——— Push -[SP]=xxPUSH qq ——— Push -[SP]=qqRES b,m ——— Reset bit m=m&~2^RET ——— Return PC=[SP]+RET cc ——— Conditional Return If cc RETRETI ——— Return from Interrupt PC=[SP]+RETN ——— Return from NMI PC=[SP]+RL m **0P0* Rotate Left m=CY, M<-

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/47

RLA —0-0* Rotate Left Acc. A=CY, a<-RLC m —0P0* Rotate Left Circular M=M<-RLCA —0-0* Rotate Left Circular A=A<-RLD **0P0- Rotate Left 4 bits A,[HL]=A,[HL]< - # #RR m **0P0* Rotate Right m= ->CY,mRRA —0-0* Rotate Right Acc. A= ->CY, ARRC m **0P0* Rotate Right Circular m= ->mRRCA —0-0* Rotate Right Circular A= ->ARRD **0P0- Rotate Right 4 bits A, [HL]= ->A,[HL] # #RST p ——— Restart (p=0H, 8H, 10H,...38H)SBC A, s ***V1* Subtract with Carry A=A-s-CYSBC HL, ss **?V1* Subtract with Carry HL=HL-ss-CYSCF —0-01 Sei Carry Flag CY=1SET b, m ——— Set bit m=mv2^bSLA m **0P0* Shift Left Arithmetic m=m*2SRA m **0P0* Shift Right Arith. m=m/2SRL m **0P0* Shift Right Logical m= ->0, m, CYSUB s ***V1* Subtract A=A-sXOR s ***P00 Logical Exclusive OR A=Axs

F -*01? Flag unaffected/affected/reset/set/unknownS S Sign flag (Bit 7)Z Z Zero flag (Bit 6)HC H Half Carry flag (Bit 4)P/V P Parity/Overflow flag (Bit 2, V=overflow)N N Add/Subtract flag (Bit 1)CY C Carry flag (Bit 0)

n Immediate addressingnn Immediate extended addressinge Relative addressing (PC=PC+2+offset)[nn] Extended addressing[xx+d] Indexed addressingr Register addressing[rr] Register indirect addressing

Implied addressingb Bit addressingp Modified page zero addressing (see RST)

DEFB n(,...) Define Byte (s)DEFB ‘srt’ (,...) Define Byte ASCII string (s)DEFS nn Define Storage BlockDEFW nn(,...) Define Word (s)

A B C D E Registers (8-bit)AF BC DE HL Register pairs (16-bit)F Flag register (8-bit)I Interrupt page address register (8-bit)IX IY Index registers (16-bit)PC Program Counter register (16 bit)R Memory Refresh registerSP Stack Pointer register (16-bit)

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/48

b One bit (0 to 7)cc Condition (C, M, NC, NZ, P, PE, PO, Z)d One-byte expression (-128 to +127)dst Destination s, ss, [BC], [DE], [HL], [nn]e One-byte expression (-126 to +129)m Any register r, [HL] or [xx+d]n One-byte expression (0 to 255)nn Two-byte expression (0 to 65535)pp Register pair BC, DE, IX or SPqq Register pair AF, BC, DE or HLqq’ Alternative register pair AF, BC, DE or HLr Register A, B, C, D , E, H or Lrr Register pair BC, DE, IY or SPs Any register r, value n, [HL] or [xx+d]src Source s, ss, [BC], [DE], [HL], nn, [nn]ss Register pair BC, DE, HL or SPxx Index register IX or IY

+ - * / ^ Add/subtract/multiply/divide/exponent& ~ v x Logical AND/NOT/inclusive OR/exclusive OR< - - > Rotate left/right[ ] Indirect addressing[ ] + - [ ] Indirect addressing auto-increment/decrement Combination of operands# Also BC=BC-1, DE=DE-1# # Only lower 4 bits of accumulator A used

Veremos alguns exemplos na parte de software, uma das pró-ximas lições.

Anotações e Dicas

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

8lição

lição

133/49

Introdução

A Intel foi a primeira empresa a lançar no mercado o microprocessador de 4 bits, por intermédio de ex-funcionários da Fairchild. A Zilog, por sua vez, foi criada por ex-funcioná-rios da Intel, que lançaram o Z80. A IBM, com seu conceito de arquitetura aberta, escolheu os microprocessadores da Intel para construir seu primeiro PC (Personal Computer).

1. O Intel 80X86 e a História da Computação Pessoal

A Intel tinha vários modelos de micro-processadores, cada um deles atendendo a um segmento do mercado. A IBM escolheu o 8086 de 16 bits, depois este microprocessador evoluiu, constituindo assim uma família de microprocessadores 80X86. A letra X indica um número que pode ser 2, 3 ou 4. Assim,

MicroprocessadorIntel 80x86

tem o 80286, também conhecido como 286; o 80386, conhecido como 386, e o 80486, conhe-cido como 486.

Uma empresa concorrente patenteou os nomes 586, 5X86, antes que a Intel o fizesse. Então, não podendo utilizar a nomenclatura 80586, que seria reconhecida como 586, a Intel decidiu-se pelo nome PENTA, já que era a 5ª geração dos processadores da família 80X86. O nome Pentium chegou ao mercado e foi pa-tenteado, recebendo suas evoluções o sufixo I, II, III e agora Pentium IV.

É incrível como o microcomputador da IBM, o IBM-PC, foi aceito no mercado e virou padrão de computador pessoal. Tão bom que foi adotado em escritórios e empresas que impulsionaram seu crescimento. Isto forçou as novas gerações dos microprocessadores a serem compatíveis com seus antecessores. A cada novo processador lançado, tudo que funcionava com o processador antigo tinha que continuar funcionando, no mínimo de maneira igual.

Eletronicamente falando, não é possível apenas retirar um processador antigo e colocar um processador novo. Toda a placa de circuito impresso teria que ser trocada para absorver a nova tecnologia. Desta forma, encontramos placas no mercado que aceitam vários mode-los de microprocessadores já existentes, mas não modelos que ainda estão por vir. É uma questão óbvia.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/50

2. Do 80286 para Frente

Observe as figuras a seguir e procureidentificar os elementos básicos dos micro-processadores.

2.1 CPU Intel 80286

• 24 linhas de endereço; 16 MB de memória(A0 até A23).

• Relógio mais rápido (atualmente, clock de25 MHz).

• Barramento de dados de 16 bits com 2 perío-dos de relógio por ciclo (D0 até D15).

• Modo real = 8086 e modo protegido = 286.

• Registradores idênticos aos do 8086 (com-patibilidade).

Figura 17

• Permitia um avanço do MS-DOS e siste-mas operacionais mais poderosos.

• Foi pouco aproveitada; funcionou como um8086 mais veloz.

2.2 CPU Intel 80386

• Endereços e dados de 32 bits; 4 GB (gigabyte)de memória (A0 até A31).

• Novas instruções para dados de 32 bits, pon-teiros maiores.

• Gerenciador de memória ampliado:- modo de endereçamento linear de 32 bits

(D0 até D31);- modo 8086 (real e virtual).

Figura 18

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/51

• Aumento de desempenho provocado por:- barramento de 32 bits (D0 até D31);- fila de instruções de 16 bytes (fetch ou

busca de instruções);- menor quantidade de períodos de relógio

por instrução;- relógio mais veloz (clock de 16 a 33 MHz).

• Totalmente compatível com software do8086 e 286.

2.3 CPU Intel 80486

• Usa 1,2 milhões de transistores para inte-grar:- uma CPU 386 (32 linhas de endereçamen-

to e 32 linhas de dados);- uma unidade de gerenciamento de me-

mória;- um cache de 8 kB (com controlador);- uma unidade de ponto flutuante.

• Compatível com o 386 e apresenta apenas 6novas instruções.

Ao olharmos para um processador deve-mos procurar primeiro as linhas de dados (D0até D...) que indicam a sua “potência”. De-pois, procuramos as linhas de endereçamento(A0 até A...), que indicam o quanto de memó-ria o processador pode acessar diretamente.

Nos exemplos dados você nota que todosos elementos básicos estão presentes em to-dos os microprocessadores. Porém, nos 386 e486 aumentaram os pinos do bus de controle.Desenvolvidas para IBM-PC compatíveis,estas linhas são uma tentativa engenhosa dedriblar as limitações do sistema desenvolvi-do na década de 80, diferentemente do Z80,que parou no tempo, sendo reconhecidamenteum bom processador de 8 bits.

A linha Intel 80X86 tem avançado e semultiplicado de 8 bits para 16 bits e atual-mente 32 bits. Apesar de ter no mercado con-correntes com microprocessadores similaresa baixo custo (AMD e CYRIX), ainda é o IBM-PC compatível e a Microsoft que impulsio-nam o desenvolvimento dos processadoresIntel.

A compatibilidade com o IBM-PC de 1980e com os micros de hoje é uma barreira nodesenvolvimento de hardwares e softwaresmuito mais avançados, rápidos e econômicos.

Vale aqui a ressalva de que um computa-dor é feito de microprocessador + memóriaROM + memória RAM.

Figura 19

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/52

Mas só isto é muito simples! Queremos que esse computadortenha um teclado. Então, teremos que ter um circuito eletrônicopara controlar o teclado e enviar as informações das teclas pressi-onadas para a CPU. Gostaríamos de ver imagens, na tela de umaTV ou monitor colorido. Então, teremos que ter um circuito eletrô-nico que controle o monitor ou a TV para que neles apareçam asimagens desejadas. A CPU enviará números binários e o circuitointerface fará a adequação para que apareça uma imagem na tela.

Estas necessidades constituem os periféricos, de todos os ti-pos e para todas as funções. Para cada um deles haverá um circuitoelétrico (interface) ligado ao microprocessador por meio dosbarramentos de dados, endereços e controle. Veja o exemplo nafigura 21.

CPU

ADDRESS BUS

R.O.M.

RA

M

RA

M

RA

M

RA

M

DATA BUS

CONTROL BUS

Figura 20 - Microcomputador

Anotações e Dicas

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/53

1

2

7

53

24

6

CPU+

MEMÒRIAS

BA

RR

AM

EN

TO

SMonitor SVGA

Teclado

Disk Drive 3 1/2”

Hard Disk

CD-ROM / DVD

Mouse

Gravador de CD

Impressora

Scanner

Web Câmera

Joystick

Modem

Microcomputador

FAX

Som

CONTROLADORA DE VÍDEO

CONTROLADORA DE TECLA-DO

CONTROLADORA DE DISK DRIVE

CONTROLADORA DE HDD

CONTROLADORA DE CD-ROM

CONTROLADORA DE MOUSE SERIAL

CONTROLADORA DE DRIVE CD-R

CONTROLADORA DE IMPRESSORA

CONTROLADORA DE SCANNER

CONTROLADORA DE CÂMERA

CONTROLADORA DE JOYSTICK

PLACA DE MODEM

PLACA DE REDE

PLACA DE FAX

PLACA DE SOM

Figura 21

de hardware e algumas vezes podem ser re-solvidos por software (sem que se abra o com-putador).

Vamos conhecer como são estas placas decircuito impresso e identificar onde estão oselementos principais.

A figura 22 mostra a placa-mãe (motherboard) para Intel 80486 – ano 1996. Nessa épo-ca começaram a surgir periféricos que tra-balhavam com os 32 bits da CPU. Ainda exis-tiam periféricos de 8 bits (conector 5), sendoa maioria de 16 bits.

Pela figura você percebe a importânciados barramentos e a razão da existência doscircuitos tri-state. Os barramentos são comoavenidas, onde você pode entrar a qualquermomento para trocar dados com a CPU, des-de que ninguém esteja passando por ali; casocontrário, haverá conflito (momento em quedois periféricos querem se comunicar com aCPU e fazem isto ao mesmo tempo). A CPUnão entende nada e a máquina trava, perma-necendo inoperante até que se desfaça o con-flito. Geralmente os conflitos são problemas

Localização:1 - soquete da CPU (80486)2 - memória EPROM (BIOS)3 - memória DRAM (trabalho)4 - memória SRAM (cache)5 - BARRAMENTO 8-bits6 - BARRAMENTO 16-bits7 - BARRAMENTO 32-bits

Figura 22

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/54

MemóriaDRAM

MemóriaEPROM(BIOS)

Soquete de CPUDURON 700

Barramento32-bits

A placa-mãe para Intel Pentium 100 MHz – ano 1997, não temmais slot (conector) para periféricos de 8 bits; os slots de 16 bitssuportavam os periféricos de 8 bits e 16 bits.

Surge um novo padrão de barramentos, o PCI para 32 bits. Afigura 23 mostra a placa-mãe com controladoras de periféricos on-board (embutido na placa-mãe) para processador AMD – DUROM700 MHz, 800 MHz e 900 MHz (concorrente do Intel Celeron 733MHz) – ano 2001. Somente dois slots PCI para periféricos, uma vezque as placas controladoras de vídeo, som, impressora, drives 3 ½”,drives CD-ROM/DVD, hard disk, comunicação serial, porta USB,rede e teclado já vêm on-board.

3. Resumo

Internamente, todo microprocessador apresenta um inter-pretador de códigos de instrução, memórias de rascunho chama-das de registradores e uma Unidade Lógica e Aritmética (U.L.A.),pois o que o microcomputador sabe fazer é calcular e manipularnúmeros binários. Ele precisa de uma memória fixa que, ao ligar-mos a máquina, encontre seu programa (software) de inicialização,que geralmente é a memória EPROM. Por fim, precisa de memóriapara trabalhar programas, que é a memória RAM.

Figura 23

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Exercícios Propostos

133/55

1 - Quais são os elementos comuns a todos os microprocessadores e qual é a fun-ção de cada um?

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

2 - A interface:( ) a) faz a adequação dos sinais elétricos entre CPU e periférico.( ) b) fica entre as faces.( ) c) armazena informações.( ) d) serve para conectar o computador.( ) e) é um software que aciona periféricos.

3 - Quanto de memória eletrônica a CPU 80386 pode acessar diretamente?( ) a) 4 Gbytes de memória.( ) b) 2 Gbytes de memória.( ) c) 4 × 1.024 × 1.024 × 1.024 endereços de memória.( ) d) 1 Mbit.( ) e) 1 mega endereços de memória.

4 - Qual é a importância dos barramentos?............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/56

5 - O que significa placa-mãe ou mother-board?( ) a) Placa de circuito impresso onde está o processador e as memórias.( ) b) Placa de modem.( ) c) Placa que originou o computador.( ) d) Placa de circuito integrado.( ) e) Nenhuma das alternativas anteriores.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

9lição

lição

133/57

Introdução

IBM, Intel e Microsoft começaram, na década de 80, uma revolução em termos de computação pessoal. Muitos computadores pessoais existiam no mercado, mas nenhum deles era padrão. A maioria utilizava o microprocessador Zilog Z80 em uma linha de micros chamada TRS-80.

Vale o comentário que o grande motivador dos micros pessoais foi o Apple II. A Apple, empresa criada por Steve Jobs e Steve Wor-niaks na garagem de suas casas, foi a grande motivadora para o usuário de classe média ter um microcomputador pessoal em sua casa.

1. História do Software do IBM-PC

Muitos aficionados correram para comprar o Apple II, um microcomputador com processador Motorola 6800, com teclado do tipo máquina de escrever e saída para que a imagem aparecesse na tela de qualquer televisor colorido ou preto e branco. Entretanto, foi o software desenvol-vido num Apple II que mudou a computação. Tratava-se de uma planilha de cálculo, a Visicalc, muito utilizada por contadores de empresas em seu gerenciamento financeiro.

Todas as pequenas empresas queriam ter um computador rodando um software desses. E foi aí que a IBM, uma empresa que prestava serviços de processamento de dados para pe-quenas, médias e grandes empresas, sentiu-se incomodada e atraída. Incomodada, porque perdia seus clientes para computadores pes-soais. Atraída, porque era a maior empresa

Software

de computadores de grande porte da época e poderia retomar seus clientes com um micro-computador pessoal com a marca IBM.

Veja que somente a máquina não bastava. Era preciso ter softwares para oferecer. É aqui que entra a Microsoft, oferecendo softwares para os IBM-PC. Começou com o sistema operacional chamado D.O.S. (Disk Operatio-nal System – Sistema Operacional em Disco), depois veio o editor de textos, a planilha de cálculos, jogos, etc.

O IBM-PC e seus clones só dominaram o mercado porque existia uma fatia para o pro-cessamento de dados em escritórios e empresas de pequeno porte. Não foi, de forma alguma, o uso doméstico do IBM-PC que gerou esta “onda” tecnológica. É claro que muitos usu-ários se beneficiaram deste avanço.

Para se ter uma idéia, no mundo todo existe a pirataria de software. A empresa mais prejudicada com a pirataria é, de longe, a Microsoft. Para cada clone de IBM-PC funcionar é preciso um sistema operacional criado pela Microsoft. Seja MS-DOS ou Windows, o IBM-PC e seus compatíveis precisam deles para funcionar. A Microsoft ganha mui-to dinheiro vendendo seus programas para

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/58

empresas, pois estas estão sujeitas a vistori-as e fiscalização. Já os usuários domésticos,apesar de serem milhões, não há como pegá-los em seus lares.

Em se tratando de IBM-PC, o softwareque garantia à IBM o domínio dos PCs era aBIOS, que roda quando a máquina é ligada.A BIOS fica em uma memória não-volátil dotipo EPROM e sua função é reconhecer e sa-ber como trocar dados entre os periféricos ea CPU. É um software bastante simples e pe-queno e a IBM ganhou muito dinheiro ven-dendo apenas ele, uma vez que todas as ou-tras partes do IBM-PC eram fabricadas poroutras empresas para a IBM.

A Compaq foi a empresa que pirateoueste software e, através de procedimentos ju-rídicos não previstos em lei, criou sua pró-pria BIOS, que funcionava de maneira idên-tica à BIOS da IBM, com algumas melhorias.Hoje, a Compaq é uma grande empresa devi-do à clonagem da BIOS da IBM. Outras em-presas sucederam a Compaq, como a AMI e aAward, fabricantes de BIOS.

A partir desse ponto, os negócios come-çaram a cair para a IBM e ela deixou o mer-cado de PCs, voltando ao que era: uma em-presa de computadores de grande porte.

2. O Que é Software

Software é uma seqüência de instruçõesordenadas logicamente para que o processa-dor possa executá-las. Como vimos, omicroprocessador só trabalha com binários.O que são essas instruções? Como o micropro-cessador trabalha?

No processo de criação dos microproces-sadores, seus fabricantes escolhem quais ins-truções o processador deverá saber executar.

Os elementos de trabalho são: memórias,registradores e operações lógicas ou aritmé-ticas.

Cada instrução cumpre uma finalidade ea ela é dado um nome, que às vezes é extenso.Então, decidiu-se substituir os nomes pormnemônicos (forma simples de representaruma palavra extensa). Foram os engenheirosamericanos da Intel que criaram este concei-to, portanto todos os mnemônicos que se re-ferem a cada uma das instruções são de pala-vras em Inglês.

Exemplo:

Instrução do Z80: carregue o registrador Acom o conteúdo do registrador B.

LD A, B

LD é o mnemônico de LOAD, que, emInglês, significa carregar.

Instrução do 80X86: carregue o registradorAX com o conteúdo do registrador DX.

MOV AX, DX

MOV é o mnemônico de MOVE, que, emInglês, significa mover.

No entanto, a máquina não interpreta tex-to, somente números binários. No projeto domicroprocessador, cada instrução é associa-da a um número binário e, como ficar escre-vendo binários é muito difícil para o ser hu-mano, é utilizada a representação emhexadecimal.

Exemplo:

Instrução dos 80X86: MOV AX , DX está as-sociada ao binário 1000100111010002. Parafacilitar, utilizamos a representação emhexadecimal, que fica 89D0h. É uma instru-ção de 16 bits.

O microprocessador sabe interpretar1000100111010002 e, ao executar esta instru-ção, copia os 16 bits do registrador DX noregistrador AX.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/59

Você deve estar percebendo uma dificuldade de linguagem en-tre o homem e a máquina. Ao programar microprocessadores, o ho-mem deve pensar em letras, palavras e números decimais. Cientedos elementos e conhecedor das instruções que o microprocessadorsabe executar, o homem monta uma seqüência lógica de instruções.

Resumindo:

• Programamos utilizando mnemônicos e pensando em decimal.

• Compilamos o programa para os códigos hexadecimais.

• Gravamos memórias fixas do tipo ROM com estes binários.

• Colocamos esta memória no sistema microprocessado e execu-tamos o programa ligando a máquina.

Todos perceberam que, desta forma, os computadores não avan-çariam muito. O sistema operacional é um programa que tenta fa-cilitar a comunicação do usuário com a máquina. O primeiro siste-ma operacional utilizava-se de palavras. O usuário dispunha deum teclado para enviar sua mensagem ao microprocessador e umatela de monitor ou TV para receber a resposta do microprocessador,completando o que se chama de comunicação. O usuário deveriadigitar no teclado palavras que o sistema reconhecia e, ao pressio-nar a tecla ENTER, ele buscaria qual programa está associado àque-la palavra, executando-o.

Sempre que um IBM-PC era ligado rodava-se o software BIOS,testando a máquina e definindo como ela deve funcionar. Depois,procurava-se um software chamado DOS em uma unidade de dis-co flexível. Na época não existiam os HD (hard disk) e a maneira dearmazenar um programa, além de escrever em memórias do tipoEPROM, era utilizar a mídia magnética, no formato de disco.

O sistema operacional, que é um software, era copiado do discopara a memória RAM do computador. Quando o processo termina-va aparecia na tela uma letra seguida de dois pontos e um sinal de“maior” com uma barrinha piscando ao lado. Isto indicava que oprocesso de cópia do sistema operacional para a memória RAMocorreu satisfatoriamente e que o computador esperava que fossedigitado corretamente um dos comandos que ele sabia executar.Note a diferença entre instrução e comando: um comando é com-posto por uma série de instruções.

3. Software em Linguagem de Máquina

Linguagem de máquina é a linguagem que a máquina entende:binários ou hexadecimais. Em Inglês ela se chama Assembly, se-guida do nome do processador. Exemplos:

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/60

• Assembly Z80: linguagem de máquina para o processador Z80.

• Assembly 80X86: linguagem de máquina para os processadores80X86.

• Assembly 6800: linguagem de máquina para os processadoresMotorola 6800.

Cada Assembly é composta dos mnemônicos e códigos hexa-decimais para cada processador.

Existem programas (softwares) que rodam no PC e são cha-mados Assembler seguido do nome do processador. Neles vocêdigita os mnemônicos e ele compila para os códigos da linguagemde máquina.

Para criar programas em linguagem de máquina utilizamos umatabela de programação como essa:

EndereçoDecimal

EndereçoHexadecimal

CódigosHexadecimal

Mnemônicos Comentários

Anotações e Dicas

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/61

Figura 24

Aprender a programar um microprocessador torna você apto aprogramar qualquer outro. Basicamente, o processo é o mesmo,mudando apenas um pouco os mnemônicos e instruções existen-tes. Basta consultar o manual do fabricante e sair programando.

Vimos os mnemônicos do Z80; veremos agora os mnemônicosda família 80X86.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/62

Mnemonic ODITSZAPC Description

AAA ?—??*?* ASCII Adjust for Add in AXAAD ?—**?*? ASCII Adjust for Divide in AXAAM ?—**?*? ASCII Adjust for Multiply in AXAAS ?—??*?* ASCII Adjust for Subtract in AXADC d,s *—***** Add with CarryADD d,s *—***** AddAND d,s *—**?** Logical ANDCALL a ————- CallCBW ————- Convert Byte to Word in AXCLC ————0 Clear CarryCLD -0———- Clear DirectionCLI —0——— Clear InterruptCMC ————* Complement CarryCMP d,s *—***** CompareCMPS *—***** Compare memory at SI and DICWD ————- Convert Word to Double in AX,DXDAA ?—***** Decimal Adjust for Add in AXDAS ?—***** Decimal Adjust for Subtract in AXDEC d *—****- DecrementDIV s ?—????? Divide (unsigned) in AX (,DX)ESC s ————- Escape (to external device)HLT ————- HaltIDIV s ?—????? Divide (signed)in AX (,DX)IMUL s *—????* Multiply (signed) in AX (,DX)IN d,p ————- InputINC d *—****- IncrementINT —00——- InterruptINTO —**——- Interrupt on OverflowIRET ********* Interrupt ReturnJB/JNAE a ————- Jump on Below/Not Above or EqualJBE/JNA a ————- Jump on Below or Equal/Not AboveJCXZ a ————- Jump on CX ZeroJE/JZ a ————- Jump on Equal/ZeroJL/JNGE a ————- Jump on Less/Not Greater or EqualJLE/JNG a ————- Jump on Less or Equal/Not GreaterJMP a ————- Unconditional JumpJNB/JAE a ————- Jump on Not Below/Above or EqualJNBE/JA a ————- Jump on Not Below or Equal/AboveJNE/JNZ a ————- Jump on Not Equal/Not ZeroJNL/JGE a ————- Jump on Not Less/Greater or EqualJNLE/JG a ————- Jump on Not Less or Equal/GreaterJNO a ————- Jump on Not OverflowJNP/JPO a ————- Jump on Not Parity/Parity OddJNS a ————- Jump on Not SignJO a ————- Jump on OverflowJP/JPE a ————- Jump on Parity/Parity EvenJS a ————- Jump on SignLAHF ————- Load AH with 8080 FlagsLDS r,s ————- Load pointer to DSLEA r,s ————- Load EA to registerLES r,s ————- Load pointer to ESLOCK ————- Bus Lock prefixLODS ————- Load memory at SI into AXLOOP a ————- Loop CX timesLOOPNZ/LOOPNE a ————- Loop while Not Zero/\Not EqualLOOPZ/LOOPE a ————- Loop while Zero/EqualMOV d,s ————- Move

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/63

MOVS ————- Move memory at SI to DIMUL s *—????* Multiply (unsigned) in AX (,DX)NEG d *—***** NegateNOP ————- No Operation (= XCHG AX,AX)NOT d ————- Logical NOTOR d,s *—**?** Logical inclusive OROUT p,s ————- OutputPOP d ————- PopPOPF ********* Pop FlagsPUSH s ————- PushPUSHF ————- Push FlagsRCL d, c *———* Rotate through Carry LeftRCR d, c *———* Rotate through Carry RightREP/REPNE/REPNZ ————- Repeat/Repeat Not Equal/Not ZeroREPE/REPZ ————- Repeat Equal/ZeroRET (s) ————- Return from callROL d,c ————- Rotate LeftROR d,c *———* Rotate RightSAHF ——***** Store AH into 8080 Flags

SAR d,c *—**?** Shift Arithmetic RightSBB d,s *—***** Subtract with BorrowSCAS *—***** Scan memory at DI compared to AXSEG r ————- Segment registerSHL/SAL d,c *—**?** Shift logical/Arithmetic LeftSHR d,c *—**?** Shift logical RightSTC ————1 Set CarrySTD -0———- Set DirectionSTI —0——— Set InterruptSTOS ————- Store AX into memory at DISUB d,s *—***** subtractTEST d,s *—**?** AND function to flagsWAIT ————- WaitXCHG r (,d) ————- ExchangeXLAT ————- Translate byte to ALXOR d,s *—**?** Logical Exclusive OR

-*01? Unaff/affected/reset/set/unknowOF 0 Overflow Flag (Bit 11)DF D Direction Flag (Bit 10)IF I Interrupt enable Flag (Bit 9)TF T Trap Flag (Bit 8)SF S Sign Flag (Bit 7)ZF Z Zero Flag (Bit 6)AF A Auxilary carry Flag (Bit 4)PF P Parity Flag (Bit 2)CF C Carry Flag (Bit 0)

ALIGN Align to word boundaryASSUME sr:sy (,...) Assume segment register name(s)/ASSUME NOTHING Remove all former assumptionsDB e (,...) Define Byte (s)DBS e Define Byte Storage

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/64

DD e (,...) Define Double Word (s)DDS e Define Double Word StorageDW e (,...) Define Word (s)DWS e Define Word StorageEXT (sr: )sy (t) External (s) (t = ABS/BYTE/DWORD/FAR/NEAR/WORD)LABEL t Label (t = BYTE/DWORD/FAR/NEAR/WORD)PROC t Procedure (t = FAR/NEAR, default NEAR)

ABS Absolute value of operandBYTE Byte type operationDWORD Double Word operationFAR IP and CS registers alteredHIGH High – order 8 bits of 16-bit valueLENGHT Number of basic unitsLOW Low – order 8 bit of 16-bit valueNEAR Only IP register need be alteredOFFSET Offset portion of an addressPTR Create a variable or labelSEG Segment of addressSHORT One byte for a JMP operationSIZE Number of bytes defined by statementTHIS Create a variable/label of specified typeTYPE Number of bytes in the unit definedWORD Word operationAX BX CX DX Accumulator/Base/Count/Data registersAL BL CL DL Low byte of general registersAH BH CH DH High byte of general registersSP BP Stack/Base Pointer registersSI DI Source/Destination Index registersCS DS SS ES Code/Data/Stack/Extra Segment registersIP Instruction Pointer register

a Addressc Countd Destinatione Expression or stringp I/O portr Registers Sourcesr Segment register (CS,DS,SS,ES)sy Symbolt Type of symbol

Estas são as instruções para o 8086, microprocessador de 16bits compatível com 8080 de 8 bits. Todas estas instruções aindasão reconhecidas pelos Pentium e pelos concorrentes da Intel, comoo AMD K6-II, Durom e Athlon.

Antes de programarmos algo, vamos definir alguns termos:

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/65

PROGRAMA – Seqüência lógica de instru-ções (ou comandos) que o microprocessadorsabe executar.

ROTINA – Programa que se repete continua-mente.

SUB-ROTINA – Programa que é executadosomente se for chamado. Fica fora do pro-grama principal, em algum lugar na memóriaRAM. Tem começo e fim.

PROGRAMA FONTE – É a idéia do progra-mador expressa em seqüência de mnemô-nicos.

PROGRAMA OBJETO – É o programa fonteapós ser compilado, ou seja, são os códigoshexadecimais.

Obs.: você pode levar seu programa fontepara qualquer microprocessador, desde quefaça as equivalências entre os mnemônicos.Já o programa objeto só pode ser levadopara outro microprocessador igual ou equi-valente.

Tudo o que está armazenado no disco fle-xível, CD-ROM, HD, etc., são programas ob-jeto. Por exemplo, um disquete com progra-ma para o microcomputador Machintosh daApple, que utiliza processador Motorola, não

é executado em um microcomputador IBM-PC compatível que utiliza microprocessadorIntel. Apesar de o disco ser o mesmo utiliza-do no drive de ambos, seu conteúdo, que é oprograma objeto, só é interpretado peloMachintosh, e vice-versa.

4. Fluxograma

Quando trabalhamos com programas cur-tos, as coisas ficam bem claras em nossa men-te. Porém, quando o programa se estende de-mais ou utiliza muitas sub-rotinas, a tendên-cia é “perder o fio da meada”. Para que issonão ocorra, foi introduzido na programação ofluxograma. Como o nome diz, é um diagra-ma que utiliza figuras geométricas e setaspara indicar o fluxo que o programa deve se-guir.

Assim, temos:

Representa INÍCIO ou FINAL.

Representa qualquer operação.

Representa COMPARAÇÃO eDECISÃO.

Representa EMENDA.

Representa o sentido do FLUXO.

Anotações e Dicas

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

10lição

lição

133/67

Introdução

Faremos um breve estudo da programaçãoAssembly para 80X86, comentando como seriaem Assembly Z80. Vamos utilizar o fluxogra-ma, que nos auxiliará a entender o processa-mento das instruções.

1. Fluxograma

O fluxograma é utilizado para organizar oandamento do programa e para que o progra-mador não se perca no meio do caminho.

PROGRAMA 1 - Carregando todos os regis-tradores de uso geral com 111111112.

Noções deProgramação Assembly

Lembramos que para os 80X86 os regis-tradores são de 16 bits, assim 1111 1111 111111112 corresponde a FFFFh.

As instruções que carregam registradoressão as instruções MOV (veja tabela da lição 9).Utilizamos as seguintes:

MOV AX , FFFFh

MOV BX , FFFFh

MOV CX , FFFFh

MOV DX , FFFFh

O Z80 apresenta registradores de 8 bitsconforme mostra a figura 26.

Programas em Assembly são compostos debinários representados por códigos hexade-cimais. São gravados na memória, portantocada código ocupa um endereço de memória.

Início

AX = FFFFh

BX = FFFFh

CX = FFFFh

DX = FFFFh

Fim

Figura 25

InícioRegistradores do Z80 (8-bits)

A

B

D

H

C

E

L

LD A, FFh

LD BC, FFFFh

LD DE, FFFFh

LD HL, FFFFh

Fim

Os registradores A, B, C, D, E, H e Lsão de 8 bits. Podemos associar empares somente os seguintesregistradores: BC, DE e HL. Cada parforma um registrador de 16 bits.

Figura 26

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/68

Ao rodar o programa (do Inglês run, quesignifica correr – no Brasil foi traduzido comorodar), devemos dizer ao processador onde seencontra a primeira instrução do programa.Esse endereço deverá então ser carregado noregistrador PC (Program Counter) e o micro-processador executará o programa que estiverna memória, a partir daquele endereço.

2. Como um Programa “Roda”

Em outras palavras: como é feito oprocessamento das instruções?

1º) Devemos conhecer o sistema micropro-cessado. Onde está o microprocessador?

2º) O que podemos fazer? Quanto de memó-ria ele tem? Quais os periféricos e comose comunicar com eles?

3º) Fazer um fluxograma para organizar asidéias.

4º) Montar a tabela de programação, indican-do o endereço da memória a partir do qualestará gravado o programa.

5º) Compilar os mnemônicos para os códigoshexadecimais e criar o programa objeto.

6º) Gravar na memória o programa criado. Co-locar a memória no sistema.

7º) Executar o programa, carregando o regis-trador PC com o endereço da memóriaonde se inicia o programa.

Pronto! Automaticamente, o registradorPC vai sendo incrementado à medida que asinstruções são executadas.

3. Ligando o Microcomputador

Ao ligarmos a alimentação, todo micro-processador deve ser resetado. No pino resetdo microprocessador deve ter um circuito de

reset automático. O processamento aconte-ce assim:

• Liga o computador.

• Microprocessador é resetado automatica-mente.

• As linhas de endereçamento são todas co-locadas em nível lógico zero, formando oendereço zero. Ativam-se os pinos MEM eRD, indicando que o processador fará umaleitura de memória.

• No primeiro pulso de clock o microproces-sador irá procurar pela primeira instruçãoa ser executada. É o ciclo de fetch (buscade instrução na memória).

• A primeira instrução deverá estar emuma memória não-volátil (ROM, PROM,EPROM, E2PROM), cujo endereço zeroda memória conterá o código da primei-ra instrução.

• Os próximos pulsos de clock copiarão o con-teúdo daquele endereço para o interpreta-dor de instrução da CPU.

• Interpretada a instrução, mais alguns pul-sos de clock para que ela seja executada.

• Ao terminar a execução da primeira ins-trução o registrador PC terá o endereço dapróxima instrução.

• Copia-se o conteúdo do Program Counterpara as linhas de endereçamento. Ativan-do os pinos MEM e RD, buscará na memó-ria, naquele endereço, a próxima instrução.

• A partir daí o ciclo se repete até o términodo programa ou desligamento da máquina.

• Assim, busca instrução na memória (ciclode fetch, interpreta instrução, executa ins-trução, o registrador PC aponta para o en-dereço da próxima instrução, buscainstrução, interpreta, ...). Representandoem um fluxograma, seria:

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/69

Chamamos de loop quando um programa volta ao começo. Te-remos que tomar cuidado com o loop infinito, pois, se ocorrer, oprograma nunca termina, sempre voltando ao início.

Liga

RESETA µP

PC = 0000h

MEM e RDsão ativados

BuscaInstrução

Interpreta

Executa

PC = endereçopróxima instrução

Acabou?

Fim

N

S

Figura 27

Anotações e Dicas

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

11lição

lição

133/71

Introdução

Para treinarmos um pouco a parte prática,teríamos que montar um sistema com micro-processador e memórias, criar circuitos deinterface para entrada de dados no processadore recebimento de dados do processador.

Qualquer computador compatível comIBM-PC e que tenha sistema operacional MS-DOS ou Windows, tem um programa chamadoDEBUG. Este programa acompanha todos ospacotes Windows.

O DEBUG foi criado e incluso no Windowspara auxiliar programadores experientes. Utili-zaremos como única fonte fácil e viável para trei-nar a programação de microprocessadores e da-remos aqui algumas indicações de como utilizaro DEBUG em seu aprendizado.

A partir de qualquer computador comWindows, clique em “Iniciar” “Programas” “Prompt do MS-DOS”.

Debug da MicrosoftSoftware Assembler 80X86

Figura 28

Caso não apareça em tela inteira, pressio-ne ALT e ENTER e o prompt do MS-DOS ocu-pará a tela inteira.

Digite: DEBUG [ENTER]

Você já está rodando o programa DEBUG,cujo cursor é um sinal de menos com umabarrinha piscando ao lado.

Digite: ? [ENTER]

Aparecerá na tela todas as “chaves” do pro-grama.

A chave “?” é o help (ajuda) do programa,auxiliando você a utilizá-lo.

-?assemble A [endereço]compare C intervalo endereçodump D [intervalo]enter E endereço [lista]fill F intervalo listago G [=endereço] [endereços]hex H valor1 valor2input I portaload L [endereço] [unidade]

[primeiro-setor] [número]move M intervalo endereçoname N [caminho]

[lista-de-parâmetros]output O porta byteproceed P [=endereço] [número]quit Qregister R [registrador]search S intervalo listatrace T [=endereço] [valor]

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/72

unassemble U [intervalo]write W [endereço] [unidade] [primeiro-setor]

[número]allocateexpanded XA [#páginas]memorydeallocateexpanded XD [identificador]memorymap expanded XM [páginaL] [páginaP] memory pages

[identificador]displayexpanded XSmemory status-

Desta lista de “chaves” utilizaremos apenas as seguintes:

CHAVE

A

U

D

N

R

W

G

T

P

O

I

COMENTÁRIOS

ASSEMBLE, seguida do número do endereço de memória, onde seiniciará o programa.

UNASSEMBLE, seguida do endereço de memória que se deseja“DESASSEMBLAR”. Na tela aparecem os endereços, códigos emnemônicos do programa.

DUMP, seguido do endereço o qual se deseja ver o conteúdo emcódigos hexadecimais.

NAME, seguido de uma palavra com até 8 caracteres e terminação.COM, nomeia seu programa para armazenar em DISCO.

REGISTER, mostra o STATUS de todos os registradores do IBM-PC,bem como as FLAGs. Quando seguido pelo nome do registrador, per-mite visualizar seu conteúdo atual e abre espaço para que você oaltere.

WRITE, salva em disco seu programa FONTE e OBJETO.Permite que você execute seu programa sem o DEBUG.

GO, executa o programa a partir do endereço de memória apontadopelos registradores CS e IP.

TRACE, executa as instruções de um programa, uma a uma, mostran-do com ficam os registradores após cada instrução.

PROCEED, prossegue a execução das instruções de um programa, sóparando em pontos de decisão.

OUTPORT, envia DADOS para um periférico.

INPORT, recebe DADOS de um periférico.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/73

1. Restrições do DEBUG

Ao executarmos o DEBUG em qualquermáquina, primeiro devemos digitar: R [EN-TER].

Anote o valor do registrador CS.

Quando da criação do sistema IBM-PC,decidiu-se dividir a memória em páginas de64 kbytes cada uma. Assim, o registrador CStem um número hexadecimal que corres-ponde à página. O registrador IP contém oendereço inicial livre dessa página para pro-gramação, que é sempre 0100h.

Com o DEBUG não podemos criar pro-gramas maiores que 64 kbytes, pois não po-demos mudar de página.

Exemplo:

-RAX=0000 BX=0000 CX=0000 DX=0000SP=FFEE BP=0000 SI=0000 DI=0000DS=166F ES=166F SS=166F CS=166FIP=0100 NV UP EI PL NZ NA PO NC166F:0100 BBFF0F MOV BX,0FFF

Aqui observamos os registradores:

AX, BX, CX e DX, que são de uso geral comseus conteúdos.CS=166FIP=0100

O valor de CS pode mudar de uma má-quina para outra. Isto não é importante, masdevemos anotar o valor de CS que aparecer.

PROGRAMA 2 - TEMPORIZADOR

Se fizermos um programa que mande oprocessador contar de um determinado núme-ro até chegar a zero, ele não executará nada, anão ser a contagem. Isso deixa a máquina numaespera até que a contagem termine.

Temporizar ou fazer uma pausa é muitoutilizado em softwares de controle. Lembrados semáforos?

No DEBUG digite:

A100 [ENTER]MOV BX , 0FFF [ENTER]MOV CX , 0002 [ENTER]DEC CX [ENTER]JNZ 106 [ENTER]DEC BX [ENTER]JNZ 103 [ENTER]INT 20 [ENTER]

[ENTER]

Você estará no cursor do DEBUG. Lem-bra como ele é? O sinal de menos e uma bar-rinha piscando ao lado.

Digite: U100 [ENTER]

Aparecerá na tela algo assim:

-U100166F:0100 BBFF0F MOV BX,0FFF166F:0103 B90200 MOV CX,0002166F:0106 49 DEC CX166F:0107 75FD JNZ 0106166F:0109 4B DEC BX166F:010A 75F7 JNZ 0103166F:010C CD20 INT 20

Esta é a listagem completa do programaque acabamos de digitar. No lado esquerdotemos o valor de CS (que não se altera) sepa-rado por dois pontos do valor do IP. Só IPmuda, pois se refere aos endereços de me-mória daquela página.

Você nota que a instrução MOV BX,0FFFocupa três endereços de memória, que o có-digo da instrução MOV BX (número de 16bits) é BB e que o código da instrução MOVCX (número de 16 bits) é B9. Em cada ende-reço de IP cabem somente 8 bits.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/74

A instrução MOV carrega os registrado-res com número ou copia o conteúdo de ou-tro registrador. Vamos executar esse progra-ma passo-a-passo.

Digite:

RIP [ENTER]100 [ENTER]R [ENTER]

Na tela aparecerá o STATUS dos regis-tradores e no final a primeira instrução doprograma digitado.

Exemplo:

-ripIP 0100:100-rAX=0000 BX=0000 CX=0000 DX=0000SP=FFEE BP=0000 SI=0000 DI=0000DS=166F ES=166F SS=166F CS=166FIP=0100 NV UP EI PL NZ NA PO NC166F:0100 BBFF0F MOV BX,0FFF

CS e IP juntos compõem o registrador PC(Program Counter). Para efeitos didáticos vocêpode considerar IP = PC já que o CS não muda.Assim, IP está com o endereço da instruçãoque vai ser executada.

Digite: T [ENTER]

A chave “T” faz com que o processadorexecute somente esta instrução.

O resultado seria:

AX=0000 BX=0FFF CX=0000 DX=0000SP=FFEE BP=0000 SI=0000 DI=0000DS=166F ES=166F SS=166F CS=166FIP=0103 NV UP EI PL NZ NA PO NC166F:0103 B9FFFF MOV CX,0002-

Note que o valor de BX foi mudado para0FFF, como mandava a instrução. IP agora in-

dica o endereço da próxima instrução. No fi-nal da tela vemos a instrução a ser executada.

Digite:

T [ENTER], para executar esta nova instru-ção.

Resultado:

AX=0000 BX=0FFF CX=0002 DX=0000SP=FFEE BP=0000 SI=0000 DI=0000DS=166F ES=166F SS=166F CS=166FIP=0106 NV UP EI PL NZ NA PO NC166F:0106 49 DEC CX-

CX teve seu valor alterado conforme a ins-trução, IP agora indica o endereço da próxi-ma instrução e no final da tela vemos esta novainstrução.

Ao digitar T [ENTER] o processador esta-rá executando a instrução DEC CX. O resul-tado:

AX=0000 BX=0FFF CX=0001 DX=0000SP=FFEE BP=0000 SI=0000 DI=0000DS=166F ES=166F SS=166F CS=166FIP=0107 NV UP EI PL NZ NA PO NC166F:0107 75FD JNZ 0106-

CX passou de 0002 para 0001, significan-do que a instrução DEC CX subtraiu uma uni-dade do valor do registrador CX.

DEC é o mnemônico de DECREMENT,traduzido como decrementar ou subtrair umaunidade. A instrução contrária ao DEC é INC,de INCREMENT ou incrementar, somar umaunidade ao conteúdo.

Além disso, IP indica agora o endereço dapróxima instrução e no final da tela vemos apróxima instrução.

JNZ é o mnemônico de JUMP if NOTZERO para endereço.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/75

Quando decrementou o registrador CX,o processador utilizou a ULA e as FLAGSobservaram o resultado. As FLAGS são mos-tradas no lado direito da tela: NV UP EI PLNZ NA PO NC.

Observe a FLAG de ZERO indicando NZ(NOT ZERO): o resultado não foi o númerozero. É verdade: CX era 0002 e passou para0001, que não é zero.

A instrução JUMP significa saltar para umendereço; seu mnemônico é JMP endereço. Estesalto para endereço pode ser condicionado aoapontamento das FLAGS.

SALTE SE a FLAG DE ZERO for ATIVA. (ZR)SALTE SE a FLAG de ZERO NÃO for ATI-VA. (NZ)Se houver CARRY.Se NÃO houver CARRY. etc.

Voltando ao programa, a instrução seguin-te é JNZ 0106. SALTE se NÃO for ZERO parao endereço 0106.

Observando as FLAGS vemos o NZ. Por-tanto, deverá ocorrer o salto para o endereço0106.

Conferindo após digitar T [ENTER]:

AX=0000 BX=0FFF CX=0001 DX=0000SP=FFEE BP=0000 SI=0000 DI=0000DS=166F ES=166F SS=166F CS=166FIP=0106 NV UP EI PL NZ NA PO NC166F:0106 49 DEC CX-

Realmente, IP aponta agora para o ende-reço 0106, onde estará a próxima instrução DECCX. Acabamos de ver um LOOP, ou seja, o pro-grama volta para executar novamente um tre-cho do programa já executado anteriormente.

Executando a próxima instrução DEC CX,o valor de CX será zero, pois 0001 menos 1 é

0000. Notaremos que a FLAG de zero se ma-nifestará indicando que houve resultado daULA igual a zero.

Vejamos, digite T [ENTER]:

AX=0000 BX=0FFF CX=0000 DX=0000SP=FFEE BP=0000 SI=0000 DI=0000DS=166F ES=166F SS=166F CS=166FIP=0107 NV UP EI PL ZR NA PE NC166F:0107 75FD JNZ 0106-

CX foi para zero ao ser decrementado e aFLAG de zero mostra agora “ZR”, indicandoque houve um resultado nulo pela ULA.

IP aponta para a próxima instrução, que éJNZ 0106. Esta instrução será ignorada, poisnão irá saltar; o resultado é zero. Veja:

Digite T [ENTER]:

AX=0000 BX=0FFF CX=0000 DX=0000SP=FFEE BP=0000 SI=0000 DI=0000DS=166F ES=166F SS=166F CS=166FIP=0109 NV UP EI PL ZR NA PE NC166F:0109 4B DEC BX-

IP aponta agora para o endereço 0109 enão 0106. Significa que ignorou a instruçãoJNZ 0106 e deverá executar a instrução doendereço 0109, que é DEC BX.

O valor de BX é 0FFF, que decrementadoirá para 0FFE (número hexadecimal). Istomuda a FLAG de zero para NZ, pois o resul-tado do decremento NÃO foi ZERO.

Digite T [ENTER] e veja:

AX=0000 BX=0FFE CX=0000 DX=0000SP=FFEE BP=0000 SI=0000 DI=0000DS=166F ES=166F SS=166F CS=166FIP=010A NV UP EI PL NZ NA PO NC166F:010A 75F7 JNZ 0103-

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/76

IP aponta para o endereço 010A da pró-xima instrução, que é JNZ 0103.

SALTE se NÃO for ZERO para o ende-reço 0103.

Portanto, haverá o salto para o endereço0103, pois vemos a FLAG indicar NZ. Esteserá o segundo LOOP deste programa.

O programa seguirá assim até que o con-teúdo dos registradores BX e CX seja zero.Quando isto ocorrer, a instrução JNZ 0103será ignorada e a próxima instrução a ser exe-cutada será a INT 20. INT 20 é uma interrup-ção por software que executará um progra-ma da BIOS, finalizando o programa e vol-tando ao prompt do DOS ou do DEBUG.UseINT 20 para terminar seus programas noDEBUG.

Vamos executar este programa direta-mente sem interrupções.

Digite:

RIP [ENTER]100 [ENTER]R [ENTER]G [ENTER]

Aparecerá a frase:

Programa terminado normalmente-

Mas foi muito rápido! Depende doprocessador utilizado e dos valores de BX eCX. Quanto maiores forem os valores, maiorserá o tempo gasto para a contagem.

Vamos editar o programa e alterar somen-te o endereço 0103.

Digite:

A0103 [ENTER]MOV CX , FFFF [ENTER][ENTER]U100 [ENTER]

Verifique a alteração na listagem. Vamosexecutar.

Digite:

RIP [ENTER]100 [ENTER]R [ENTER]G [ENTER]

Utilizando um microprocessador AMDK6 II – 500 MHz, levou aproximadamente 1segundo para aparecer a frase: Programa ter-minado normalmente. Utilizando ummicroprocessador 80386 - SX 33 MHz, levouaproximadamente 10 segundos para apare-cer a frase. Portanto, este tempo varia de má-quina para máquina. Mas podemos ajustar otempo que quisermos por tentativa e erro, dei-xando CX com FFFF e aumentando BX paraum número hexadecimal maior que 0FFF.

Experimentando BX=1FFF, a frase apa-receu após 2 segundos. Com BX=2FFF a fra-se apareceu após 3 segundos.

Para sair do DEBUG digite no prompt (si-nal de menos com a barrinha piscando) Q[ENTER].

Vimos que no DEBUG você digita osmnemônicos e o software busca os códigos decada instrução montando assim seu progra-ma objeto. Para finalizar esta parte, o pro-grama objeto do Programa 2 é:

PROGRAMA OBJETO

CS IP código HEX BINÁRIO

166F:0100 BB 10111011166F:0101 FF 11111111166F:0102 2F 00101111166F:0103 B9 10111001166F:0104 FF 11111111166F:0105 FF 11111111166F:0106 49 00101001166F:0107 75 01110101166F:0108 FD 11111101166F:0109 4B 01011011166F:010A 75 01110101166F:010B F7 11110111166F:010C CD 11001101166F:010D 20 00100000

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/77

PROGRAMA FONTE

166F:0100 MOV BX,2FFF166F:0103 MOV CX,FFFF166F:0106 DEC CX166F:0107 JNZ 0106166F:0109 DEC BX166F:010A JNZ 0103166F:010C INT 20

PROGRAMA 3 - COMPARANDO

Faremos um fluxograma para executar o seguinte:

1) Carregar AX = 0023h

2) Carregar BX = 0077h

3) Somar AX com BX e o resultado ficar em AX

4) Comparar AX com 0100h

5) Se for igual carregar CX = FFFFh

6) Se for diferente carregar CX = 0000h

Início

AX = 0023H

BX = 0077H

AX = AX + BX

CX = 0000H

CX = FFFFH

FIM

AX = 0100H?

Figura 29

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/78

Escrevendo o programa fonte, consultando a Tabela de Instru-ções dos 80X86:

MOV carrega registradores.ADD soma registradores.CMP compara registradores, se os conteúdos forem iguais, ativa

a FLAG de zero.JMP salta para endereço incondicionalmente.

Assim:

Neste exemplo, utilizamos a técnica do LABEL, que em Inglêssignifica rótulo. Aqui entendemos como ETIQUETA de MARCA-ÇÃO ou simplesmente REFERÊNCIA.

Quando não sabemos exatamente a partir de qual endereço seiniciará nosso programa, substituímos os endereços relativos a sal-tos (JUMP) por um LABEL; uma referência para mais tarde sersubstituída por um número de endereço de memória.

No exemplo, o endereço XUXA não existe. XUXA é a referên-cia de um endereço, o endereço da instrução MOV CX , 0000. XAXAserá substituído pelo endereço da instrução INT 20.

Este tipo de técnica permite a você ter uma coletânea de pro-gramas em ASSEMBLY, podendo ser utilizada em qualquer pro-grama que se venha a fazer.

ENDEREÇOHEXADECIMAL

XUXA:

XAXA:

CÓDIGOHEXADECIMAL

MNEMÔMICOS

MOV AX , 0023

MOV BX , 0077

ADD AX , BX

CMP AX , 0100

JNZ XUXA

MOV CX , FFFF

JMP XAXA

MOV CX , 0000

INT 20

COMENTÁRIOS

Carrega AX com 0023h

Carrega BX com 0077h

Soma Ax com BX e resultadofica em AX

Compara se o valor de AX é0100h

Salta para o endereço XUXAse AX for diferente de 0100h

Carrega CX com FFFFh

Salta para endereço XAXA

Carrega CX com 0000h

Finaliza o programa

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Exercícios Propostos

133/79

1 - Faça um fluxograma para que se execute o seguinte:

a) Carregar o registrador AX com 1234h

b) Carregar o registrador BX com 0234h

c) Carregar o registrador CX com 0034h

d) Carregar o registrador DX com 0004h

e) Subtrair um registrador do outro de modo que SE a FLAG de ZERO for ATIVADAencerre o programa.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/80

2 - Utilizando as instruções:

MOV registrador, númeroSUB registrador, registradorJZ endereço

Escreva o programa fonte para a questão 1.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

12lição

lição

133/81

Introdução

Vimos que um microcomputador só preci-sa de CPU, memória ROM e memória RAM. En-tretanto, queremos que ele atue sobre disposi-tivos para receber ou enviar dados. Os micro-processadores só sabem lidar com números bi-nários. Os programas estão nas memórias e osdispositivos externos são periféricos de I/O.

Você lembra dos pinos RD, WR, MEM eIO? Com eles temos as seguintes combinações:

O processador fica o tempo todo nos pro-gramas fazendo somente estas quatro ativida-des. Já vimos como ele endereça a memória, lêe escreve seus dados. Mas agora, como fazeristo com periféricos?

Dispositivos de I/O(Entrada e Saída)

RD MEM Leitura da memória

WR MEM Escrita na memória

RD IO Leitura de periférico

WR IO Escrita no periférico

1. Canais de I/O

Quando queremos assistir a um programana TV, colocamos a televisão no canal deseja-do e pronto. A TV tem vários canais, mas so-mente uma emissora em cada canal.

Imagine que o computador seja a sua TVe cada periférico seja uma emissora. Se o com-putador quiser trocar informações com omouse, ele tem que colocar os barramentosno canal do mouse. Se quiser acessar a im-pressora, tem que colocar os barramentos nocanal da impressora.

Cada periférico precisa ter o seu própriocanal de comunicação, senão ocorre o confli-to. A CPU Z80 dispõe de 256 canais de I/O (docanal 0 até o 255). Ela indica o número do ca-nal através das 8 primeiras linhas de endere-çamento (A0 até A7) e ativa o pino IO.

Nas CPUs 80X86 temos 16 linhas de ende-reços para I/O (A0 - A15) 64 k dispositivos. O

Anotações e Dicas

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/82

IBM-PC faz uso apenas dos 10 primeiros bits (A0 até A9) deendereçamento. Os bits de A10 até A15 são ignorados e o bit A9indica se o periférico está on-board ou via slot de expansão (conectorde barramentos). Portanto, podemos ter 512 dispositivos em 512canais de I/O.

A figura 30 mostra como as linhas de endereçamento formam onúmero do canal de I/O desejado.

Antes de tudo, o periférico é um hardware, mas para funcionarcom a CPU é preciso um programa (software) de controle. Estesoftware ensina o computador como usar o periférico. Estes pro-gramas geralmente são pequenos e chamados de driver, funcio-nando como sub-rotinas e ficando alocados em endereços reserva-dos da memória RAM; são chamados (CALL) somente quando ne-cessário.

O processo de ligar um periférico à CPU chama-se interfa-ceamento. Além do hardware do periférico, outro circuito chama-do interface deve ser desenvolvido.

19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Bits de Endereço

Espaço de I/O com512 endereços

Indica se o endereçoé para a placa dosistema ou para os slots deexpansão(A9 = 0) - placa do sistema(A9 = 1) - slots de expansão

Gerado pelasinstruções IN e OUT,mas ignorado nocaso do PC XT

Não são usados pelasinstruções IN e OUT

Instrução

IN

OUT

A9 = 0

Placa do Sistema

A9 = 1

Slots de Expansão

Placa do Sistema e Slots de Expansão

Figura 30

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/83

A figura 31 mostra um exemplo para interfacear o IBM-PCutilizando seus barramentos que estão disponíveis através dos slots(conectores) de expansão.

A figura mostra um slot ISA de 8-bits encontrado em algumasplacas-mãe para INTEL 80486. Deste slot, para criar uma inter-face, precisamos:

• D0 até D7, que é o barramento de dados.

GND

RESET DRV

+5V

IRQ9-5V

DRQ2

+12VGND

MEMW

MEMR

IOW

IORDACK3

DRQ3

DACK1

DRQ1

REFRESH

CLOCK

IRQ7

IRQ6IRQ5

IRQ4

IRQ3

DACK2

T/C

ALE

+5 V

OSCGND

I/O CH CK

D7

D6

D5D4

D3

D2

D1D0

I/O CH RDY

AEN

A19A18

A17

A16

A15

A14

A13

A12

A11A10

A9

A8

A7A6

A5

A4

A3A2

A1

A0

-12V

0WS

2

1

3

4

5

6

7

8

9

10

11

12

13

14

15

1617

18

19

20

21

22

23

24

25

26

27

28

29

30

31

(com

pone

nt s

ide)

Figura 31Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/84

• A0 até A9, que é o barramento de endereço de I/O.

• +5 V para alimentar os CIs da interface.

• GND, que é a referência 0 volt.

• IORD sinal da CPU, indicando que fará leitura no dispositivode I/O.

• IOWR sinal da CPU, indicando que fará uma escrita nodispositivo de I/O.

• ALE (AEN) sinal ADDRESS LATCH ENABLE, utilizado parafixar um endereço de I/O, desabilitando as demais linhas.

O circuito lógico seria parecido com este:

Do lado esquerdo da figura vemos os sinais do slot e do ladodireito os sinais do periférico.

Explicando o circuito lógico, este circuito prevê o acesso a umdos 8 endereços disponíveis. Note as chaves nas linhas A0, A1 e A2.Existem 8 combinações possíveis entre elas. Cada combinação geraum número de canal de I/O diferente. A saída da porta NAND de 8

A0A1A2A3A4A5A6A7A8

A9

AEN

IORD

IOWR

74LS08

74LS04Seletor de canais

74HC38

Direção

74LS245

74LS32Habilitado

74LS32

74LS04

74LS373

IORD

74LC32

D0

D5

D1D3D4

D6D7

D0

D5

D1D3D4

D6D7

D0

D5

D1D3D4

D6D7

74LS244

Figura 32Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/85

entradas fica o tempo todo em nível lógico 1, indo a nível lógico 0quando todas as suas entradas estiverem em nível lógico 1. Isto sóocorre quando no barramento de endereços temos o número docanal selecionado.

Assim, os endereços disponíveis são:

Convertendo para hexadecimal, temos os números dos ende-reços de I/O possíveis:

Dependendo da posição das chaves, somente um canal será re-conhecido.

O CI 74LS245 é um direcionador tri-state de fluxo de dados (8bits) entre a CPU e o periférico. O CI 74LS373 é um LATCH parafixar os dados enviados da CPU para o periférico. O LATCH so-mente é ativado quando a porta NAND reconhecer o canal e for anível lógico 0 e a CPU enviar os sinais IOW de escrita no periféricode I/O. O CI 74LS244 é um tri-state para permitir a entrada dedados do periférico para a CPU. O tri-state somente é ativado quan-do a porta NAND reconhecer o canal e for a nível lógico 0 e a CPUenviar os sinais IOR de leitura do periférico de I/O.

Este circuito pode ser expandido para 16 bits, bastando man-ter a porta NAND e acrescentando em paralelo mais um CI de cada.

A2 A1 A0 CANAL0 0 0 3E0h0 0 1 3E1h0 1 0 3E2h0 1 1 3E3h1 0 0 3E4h1 0 1 3E5h1 1 0 3E6h1 1 1 3E7h

AEN A9 A8 A7 A6 A5 A4 A3 A2 A1 A01 1 1 1 1 1 0 0

Para que a porta NAND possa ir a nível lógico

ZERO estas linhas obrigatoriamente têm que estar

em nível lógico 1.

Por estarem

ligadas a

INVERSORES

Podem variar de

000 até 111

8 combinações

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/86

Modo Operante:

Quando o software pede o acesso a umperiférico:

• a CPU ativa a linha I/O;

• ativa a linha AEN, indicando que no bar-ramento de endereços terá o número de umcanal de I/O;

• coloca no barramento de endereço o nú-mero do canal de I/O;

• ativa a linha RD ou WR, dependendo da ins-trução do software.

As instruções de software que acessamperiféricos são:

• “IN” para entrada de dados do periféricopara a CPU.

• “OUT” para saída de dados da CPU para operiférico.

Montado em uma placa de circuito im-presso e seguindo os padrões de interfacepara o IBM-PC, ficaríamos com algo assim:

2. Porta de ComunicaçãoParalela do IBM-PC Compatível

Para podermos treinar microprocessado-res, continuamos a utilizar o IBM-PC. Em vezde construir uma placa de interface, vamosutilizar a interface que o computador já pos-

sui em seu interior. É a placa controladorade impressora ou porta de comunicação pa-ralela LPT1. Ela disponibiliza na parte tra-seira do micro um conector DB-25 pinos fê-mea com a seguinte configuração:

PINO 2 ao PINO 9 - Na seqüência, são D0 atéD7, saídas de dados da CPU (8 bits) atravésdo canal de I/O 378h nos micros modernos.Para micros antigos pode ser os canais 278hou 3BCh.

D0 é o bit menos significativo (vale 1 emdecimal).

D7 é o bit mais significativo (vale 128 emdecimal).

PINOS de 10 a 13 e PINO 15 - Pertencem aocanal de I/O 379h e a CPU os utiliza para re-ceber dados do periférico.

S7 é o bit mais significativo, mas, por es-tar barrado, a CPU entende seu comple-mento. Exemplo: se S7 for conectado aoGND, a CPU entenderá S7 como nível ló-gico 1 e vice-versa. Na leitura do canal379 são ignorados os bits S2, S1 e S0 (ostrês bits menos significativos).

PINO 1, PINO 14, PINO 16 e PINO 17 - Naseqüência, são os 4 bits menos significativosdo canal 37Ah. O canal 37Ah é bi-direcional,ou seja, os dados podem entrar ou sair porele. É óbvio que se deve “avisar” a este canalcom antecedência o que se deseja fazer (viasoftware).

PINOS 18 a 25 - São todos conectados aoGND.

Encaixe padrão paraSLOT

Conector doPeriférico

Placa de CircuitoImpresso

Lâmina de apoio aoGabinete

Figura 33

Figura 34

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/87

Tabela dos Canais da LPT1

3. Periféricos Simples

• Acender LEDs para visualizar saída de dados da CPU.

• Apertar botões para enviar dados à CPU.

Damos a seguir um periférico didático, fácil de montar, baratoe que possibilita expandir sua imaginação para “vôos” mais altos.

(L) Indica que o bit é invertido

BIT765432107654343210

Porta

378h

379h

37Ah

DireçãoOUTOUTOUTOUTOUTOUTOUTOUTINININININ-

IN/OUTIN/OUTIN/OUTIN/OUT

Pinos98765432

11(L)10121315

Hab IRQ 717(L)

1614(L)1(L)

NomeD7D6D5D4D3D2D1D0

BUSY*ACKNLG

PAPER OUTSELECT*ERROR

-*SLCT IN

*INIT*AUTO FEED

* STROBE

D7 D6 D5 D4 D3 D2 D1 D0

13 12 11 10 9 8 7 6 5 4 3 2 1

1415161725 24 23 22 21 20 19 18

D7 D6 D5 D4 D3

LEDs 5mmVermelhos

DB-25 Fêmea

Chaves de Pressão Tipo A

1K

Ω

1K

Ω

1K

Ω

1K

Ω

1K

Ω

1K

Ω

1K

Ω

1K

Ω

Figura 35

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/88

Este periférico trabalha como qualquer ou-tro, recebendo da CPU dados que no conectoraparecem como níveis de tensão +5 volts e 0 volt,respectivamente N.L. = 1 e N.L. = 0.

A cada bit igual a 1 na saída acenderá umLED. A cada bit igual a 0 na saída o LED fi-cará apagado.

Com relação às entradas canal 379h in-ternamente estão conectadas a N.L. = 1, ouseja, +5 volts via resistor de PULL-UP. Aoacionarmos qualquer uma das chaves depressão NA (normalmente aberta), colocamosN.L. = 0 no respectivo pino.

Se você montar este periférico e ligar aocomputador via cabo paralelo (ou cabo parachaveador de impressoras), nada acontece amenos que exista um software para contro-lar este periférico. Isto acontece com todosos dispositivos ligados ao computador.

A tecnologia tem criado circuitos que, tra-balhando com estes dados binários no formatode tensão, nos proporcionam:

• gravar e reproduzir sons;

• visualizar imagens coloridas e em preto ebranco na tela de um monitor;

• transformar imagens em números bináriose armazená-los em mídia magnética;

• comunicar-se com outros computadorespor linha telefônica.

Enfim, todos os periféricos de entrada:

• Processam grandezas físicas, convertendo-as em sinais elétricos analógicos.

• Convertem estes sinais elétricos em sinaisdigitais, utilizando os conversores A/D(Analógico/ Digital).

• Comunicam com a CPU, que reconheceestes sinais digitais e, de acordo com osoftware, manipulam estes DADOS.

Todos os periféricos de saída:

• Recebem os sinais digitais vindos da CPUde acordo com o software de controle.

• Convertem estes sinais digitais parasinais analógicos, utilizando osconversores D/A (Digital/Analógico).

• Processam estes sinais, tranformando emgrandezas físicas.

4. Testes

Testando o nosso periférico: o DEBUGtem chaves de acesso direto aos canais de I/O. A chave “I” seguida do número do canalde I/O retorna na tela um número hexade-cimal que corresponde ao que foi lido nestecanal. A chave “O” seguida do número docanal de I/O vírgula um número hexadecimalenvia este número ao periférico ligado nes-te canal.

A partir do prompt do MS-DEBUG digite:

O378, 0 [ENTER]

Todos os LEDs devem se apagar, pois 0hcorresponde a 000000002, ou seja, todos os pi-nos de saída estarão em N.L. = 0. Digite:

O378,1 [ENTER]

O primeiro LED deve se acender, pois 1hcorresponde a 000000012, ou seja, somente opino D0 estará com +5 volts. Digite:

O378,2 [ENTER]

O segundo LED deve se acender, pois 2hcorresponde a 000000102, ou seja, somente opino D1 estará com +5 volts. Digite:

O378,4 [ENTER]

O terceiro LED deve se acender, pois 4hcorresponde a 000001002, ou seja, somente opino D2 estará com +5 volts. Digite:

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/89

O378,8 [ENTER]

O quarto LED deve se acender, pois 8hcorresponde a 000010002, ou seja, somente opino D3 estará com +5 volts. Digite:

O378,10 [ENTER]

O quinto LED deve se acender, pois 10hcorresponde a 000100002, ou seja, somente opino D4 estará com +5 volts. Digite:

O378,20 [ENTER]

O sexto LED deve se acender, pois 20hcorresponde a 001000002, ou seja, somente opino D5 estará com +5 volts. Digite:

O378,40 [ENTER]

O sétimo LED deve se acender, pois 40hcorresponde a 010000002, ou seja, somente opino D6 estará com +5 volts. Digite:

O378,80 [ENTER]

O oitavo LED deve se acender, pois 80hcorresponde a 100000002, ou seja, somente opino D7 estará com +5 volts.

Testado o canal de saída 378h, vamos tes-tar o canal de entrada 379h.

Lembre-se que pelo hardware de nossoperiférico, ao pressionarmos a chave, colo-camos N.L. = 0 no pino correspondente.

Com TODAS as chaves NA soltas, digite:I379 [ENTER].

Anote o número que aparecerá na tela.Aperte a primeira chave e digite: I379[ENTER].

Anote o número que aparecerá na tela.Aperte a segunda chave e digite: I379 [ENTER].

Anote o número que aparecerá na tela.Aperte a terceira chave e digite: I379 [ENTER].

Anote o número que aparecerá na tela.Aperte a quarta chave e digite: I379 [ENTER].

Anote o número que aparecerá na tela.Aperte a quinta chave e digite: I379 [ENTER].

Anote o número que aparecerá na tela epreencha a tabela abaixo:

CHAVE PRESSIONADA

NENHUMA

CHAVE 1

CHAVE 2

CHAVE 3

CHAVE 4

CHAVE 5

D7 D6 D5 D4 D3

X

X

X

X

X

Número natela em

Hexadecimal

CONVERSÃO PARA BINÁRIO

D7 D6 D5 D4 D3 D2 D1 D0

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/90

CHAVE PRESSIONADA

NENHUMA

CHAVE 1

CHAVE 2

CHAVE 3

CHAVE 4

CHAVE 5

D7 D6 D5 D4 D3

X

X

X

X

X

Número natela em

Hexadecimal

CONVERSÃO PARA BINÁRIO

D7 D6 D5 D4 D3 D2 D1 D0

7E

6E

Lembre-se que a entrada D7 é lida de modo inverso. A corres-pondente chave, quando solta, corresponde à entrada de N.L. = 0 e,pressionada, corresponde à entrada de N.L. = 1. Estes númerospodem variar de computador para computador.

O exemplo a seguir foi realizado em um computador nas se-guintes condições:

• nenhuma chave pressionada retornou 7E;

• chave presa ao pino D4 pressionada retornou 6E.

Nossa tabela ficaria:

Desta tabela, com essas duas verificações, já podemos concluirque:

• o pino D7 é realmente invertido na leitura da porta;

• D0, D1 e D2 têm seus valores fixados pelo fabricante que, nestecaso, corresponde a 0, 1 e 1, respectivamente;

• as 5 chaves nos permitem entrar com 32 combinações entreelas (25 combinações);

• podemos combinar duas ou mais chaves pressionadas quesaberemos o valor lido pela CPU.

De posse dessas informações já podemos criar softwares paracontrolar nosso periférico.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Exercícios Propostos

133/91

1 - Por que a CPU tem seus canais de I/O numerados?( ) a) Porque se não, dois ou mais periféricos tentariam se comunicar com a CPU ao

mesmo tempo.( ) b) Para evitar a memória.( ) c) Porque não são soletrados.( ) d) Para provocar conflito.( ) e) Porque os periféricos são numerados.

2 - O que é conflito?....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

3 - Quais são os sinais elétricos produzidos pela CPU quando acessa um canal de I/O?( ) a) ADDRESS BUS, IO, RD ou WR e DATA BUS na escrita.( ) b) DATA BUS, MEM, IO, RD e DATA BUS na leitura.( ) c) ADDRESS BUS, MEM, RD ou WR e DATA BUS na escrita.( ) d) ADDRESS BUS, IO, MEM e WR.( ) e) DATA BUS, ADDRESS BUS, WR, RD, IO, MEM.

4 - Qual é a importância dos circuitos tri-state em um computador?( ) a) Permitem que os barramentos sejam utilizados somente por um dispositivo a cada vez.( ) b) Nenhuma.( ) c) Permitem saídas analógicas.( ) d) Permitem três saídas por vez.( ) e) Periféricos com três estados.

5 - No periférico didático proposto na lição, qual canal de I/O ele utiliza?( ) a) 378h para receber dados da CPU e 379h para enviar dados à CPU.( ) b) O mesmo do mouse.( ) c) O mesmo do teclado.( ) d) 278h para receber dados e 279h para enviar dados à CPU.( ) e) Nenhum das alternativas anteriores.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

13lição

lição

133/93

Introdução

Como vimos, uma sub-rotina é um programa que só é chamadoquando necessário. Ela fica em algum lugar na memória disponível.

Toda sub-rotina é chamada pela instrução CALL seguida donúmero do endereço de memória onde ela começa. Termina com ainstrução RET, para indicar à CPU a volta ao endereço do programaque a chamou.

1. Sub-Rotinas

A figura 36 exemplifica o processo:

O programa vem sendo executado instrução por instrução.

PC (Program Counter) é o contador de endereços do programa.Nos 80X86 ele é uma composição dos registradores CS e IP, apon-tando para o endereço da próxima instrução 0155H.

Programas paraPeriférico Didático

MOV AH, 09

MOV DX, 378

CALL 0200ADD AX, DXCMP AX, FF

JZ 0300

XXXXH

0155H0158H

PC →MOV BX, FF

DEC BX

CMP BX, 00JNZ 0203

RET

XXXXH

SP → FFFFH

TRECHO FINAL DAMEMÓRIAPC 0155H

SP FFFFH

Figura 36 - SUB-ROTINA - parte 1 - Antes da CHAMADACópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/94

SP (Stack Pointer) aponta para o final livre da memória RAM.

Ao encontrar a instrução CALL endereço: PC (Program Counter)está apontando para o endereço da próxima instrução 0158H. SP (StackPointer) continua o mesmo.

A instrução CALL tem que desviar o fluxo do programa para ou-tro endereço, mas precisa “lembrar” qual o endereço de retorno aoprograma. Para isso, a instrução CALL, ao ser executada, copia o con-teúdo de PC (Program Counter) no final da memória RAM, fazendocom que o SP (Stack Pointer) aponte para o endereço anterior.

MOV AH, 09

MOV DX, 378

CALL 0200ADD AX, DXCMP AX, FF

JZ 0300

XXXXH

0155H0158H

PC →

MOV BX, FF

DEC BX

CMP BX, 00JNZ 0203

RET

0200H

SP → FFFFH

TRECHO FINAL DAMEMÓRIAPC 0158H

SP FFFFH

Figura 37 - SUB-ROTINA - parte 2 - Durante instrução CALL

MOV AH, 09

MOV DX, 378

CALL 0200ADD AX, DXCMP AX, FF

JZ 0300

XXXXH

0155H0158H

PC → MOV BX, FFDEC BX

CMP BX, 00JNZ 0203

RET

0200H

SP → FFFEH

TRECHO FINAL DAMEMÓRIAPC 0200H

SP FFFEH

Figura 38 - SUB-ROTINA - parte 3 - Apó executar CALL

0203H

SP → FFFFH 0158H

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/95

Assim, PC (Program Counter) aponta agora para o endereço0200H, onde está a próxima instrução a ser executada. SP (StackPointer) aponta para FFFEH, endereço anterior ao que estava.

O programa segue agora pela sub-rotina. PC (Program Counter)aponta para o endereço da próxima instrução, 0203H. SP (StackPointer) não se altera.

Ao encontrar a instrução RET (Return), o fluxo do programadeve voltar a partir do ponto em que saiu. A instrução RET, ao ser

MOV AH, 09

MOV DX, 378

CALL 0200ADD AX, DXCMP AX, FF

JZ 0300

XXXXH

0155H0158H

PC → MOV BX, FF

DEC BX

CMP BX, 00JNZ 0203

RET

0200H

SP → FFFEH

TRECHO FINAL DAMEMÓRIAPC 0203H

SP FFFEH

Figura 39 - SUB-ROTINA - parte 4 - Executando SUB-ROTINA

0203H

SP → FFFFH 0158H

MOV AH, 09

MOV DX, 378

CALL 0200ADD AX, DXCMP AX, FF

JZ 0300

XXXXH

0155H0158H

PC →

MOV BX, FFDEC BX

CMP BX, 00JNZ 0203

RET

0200H

SP → FFFEH

TRECHO FINAL DAMEMÓRIAPC 0158H

SP FFFFH

Figura 40 - SUB-ROTINA - parte 5 - Executando RET

SP → FFFFH 0158H

02??H

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/96

executada, retira do final da memória o antigo valor de PC (ProgramCounter), devolvendo-o ao registrador PC (Program Counter).

PC (Program Counter) aponta para o endereço da próxima ins-trução, 0158H. SP (Stack Pointer) volta a apontar para o final damemória, FFFFH.

O programa volta a correr normalmente após ter sido desvia-do. PC (Program Counter) aponta para o endereço da próxima ins-trução. SP (Stack Pointer) aponta para o final da memória.

2. PUSH e POP Salvando Conteúdos na Pilha (Stack)

Existe uma instrução muito útil que usa a pilha através do SP(Stack Pointer), para salvar momentaneamente o conteúdo de umregistrador. Como temos apenas quatro registradores e são apenaseles que operam as instruções, às vezes precisamos de mais alguns;como isso não é possível, podemos salvar um determinado conteú-do e depois recuperá-lo.

A instrução PUSH registrador coloca o conteúdo do registradormencionado na pilha (stack). A instrução POP registrador retira dotopo da pilha o conteúdo e coloca no registrador mencionado.

Cuidado ao utilizar vários PUSH no mesmo programa ou PUSHe CALL juntos, pois ambos colocam seus dados na pilha. Assim, oprimeiro POP deve ser referente ao último PUSH executado.

MOV AH, 09

MOV DX, 378

CALL 0200ADD AX, DXCMP AX, FF

JZ 0300

XXXXH

0155H0158HPC →

MOV BX, FF

DEC BX

CMP BX, 00JNZ 0203

RET

0200H

TRECHO FINAL DAMEMÓRIAPC 015AH

SP FFFFH

Figura 41 - SUB-ROTINA - parte 6 - Continuando o PROGRAMA

SP → FFFFH 0158H

015AH

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/97

Exemplo 1:

PUSH AXPUSH BXPUSH CX

Na pilha (stack) teremos no topo o valorde CX. Ao recuperar os dados, o primeiroPOP deve ser POP CX, depois POP BX e porfim POP AX. Os POP seguem a ordem inver-sa dos PUSH.

Exemplo 2:

PUSH AXPUSH BXCALL 0200

Na pilha (stack) teremos no topo o valorde PC (Program Counter) devido ao CALL.Não podemos executar nenhum POP antes deexecutar o RET, caso contrário os dados se-guirão para registradores errados. Assim:RET, depois um POP BX e por fim um POPAX.

3. Saída de Dados em Canal de I/O

Para enviar dados a um canal de I/O uti-lizamos a instrução OUT DX, AX, que signi-fica “saia no canal de I/O cujo número estáno registrador DX com o conteúdo do regis-trador AX”.

Significa que antes de programar a ins-trução OUT DX, AX devemos carregar DXcom o endereço do canal de I/O e carregarAX com o que se deseja enviar.

Exemplo:

MOV DX, número do canal de I/O (em hexa-decimal)

MOV AX, valor desejado (em hexadecimal)

OUT DX, AX

PROGRAMA 1 - Acender os LEDs na se-qüência em vai-vem.

Instruções utilizadas:

MOV registrador , conteúdo

CALL endereço

RET

DEC registrador

JNZ endereço

OUT DX, AX

Fluxograma

INÍCIO

MOV DX, 378

MOV AX, 00

OUT DX, AX

MOV AX, 10

OUT DX, AX

CALLSUB-ROTINA

MOV AX, 01

OUT DX, AX

OUT DX, AX

CALLSUB-ROTINA

MOV AX, 02

OUT DX, AX

MOV AX, 40

OUT DX, AX

MOV AX, 04

OUT DX, AX

MOV AX, 80

OUT DX, AX

A

A

MOV BX, 3FFF

MOV CX, 3FFF

DEC CX

CX = 0 ?

DEC BX

BX = 0 ?

RET

SUB-ROTINA

CALLSUB-ROTINA

CALLSUB-ROTINA

CALLSUB-ROTINA

MOV AX, 08

OUT DX, AX

CALLSUB-ROTINA

CALLSUB-ROTINA

MOV AX, 20

CALLSUB-ROTINA

CALLSUB-ROTINA

INT 20

NÃO

SIM

NÃO

PROGRAMA 1ACENDIMENTO DOS LEDsVAI-VEM

Figura 42

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/98

Programa Fonte

Este programa foi criado no MS-DEBUGa partir do endereço 0100H para a parte prin-cipal e 0200H para a sub-rotina.

Programa 2

Ao pressionar um botão, os LEDs vãoacendendo na seqüência vai-vem. O botão es-colhido é o que está ligado ao pino 13 doconector DB-25 fêmea. Ele equivale ao bit D4.

A leitura da porta paralela (LPT1) canalde I/O 379H retorna 7EH quando todas as cha-ves estão soltas. Retorna 6EH quando a chaveem questão é pressionada.

Estas são as informações de hardware;agora já podemos fazer o software. Utilizare-mos a técnica das sub-rotinas, desta formanosso programa principal fica mais flexível.

• Programa Principal a partir do endereço0100H.

• Sub-Rotina 1 a partir do endereço 0200H.

• Sub-Rotina 2 a partir do endereço 0250H.

4. Entrada de Dados em Canal de I/O

Para receber dado de um canal de I/O uti-lizamos a instrução IN AX, DX, que significa“leia o canal de I/O cujo número está no re-gistrador DX e coloque o conteúdo no regis-trador AX”.

Significa que antes de programar a ins-trução IN AX, DX devemos carregar DX como endereço do canal de I/O.

Exemplo:

MOV DX, número do canal de I/O (emhexadecimal)

IN AX, DX

Instruções utilizadas:

MOV registrador , conteúdo

CALL endereço

RET

PROGRAMA PRINCIPAL (endereço IP = 0100H)

166F:0100 BA7803 MOV DX,0378166F:0103 B80000 MOV AX,0000166F:0106 EF OUT DX,AX166F:0107 E8F600 CALL 0200166F:010A B80100 MOV AX,0001166F:010D EF OUT DX,AX166F:010E E8EF00 CALL 0200166F:0111 B80200 MOV AX,0002166F:0114 EF OUT DX,AX166F:0115 E8E800 CALL 0200166F:0118 B80400 MOV AX,0004166F:011B EF OUT DX,AX166F:011C E8E100 CALL 0200166F:011F B80800 MOV AX,0008166F:0122 EF OUT DX,AX166F:0123 E8DA00 CALL 0200166F:0126 B81000 MOV AX,0010166F:0129 EF OUT DX,AX166F:012A E8D300 CALL 0200166F:012D B82000 MOV AX,0020166F:0130 EF OUT DX,AX166F:0131 E8CC00 CALL 0200166F:0134 B84000 MOV AX,0040166F:0137 EF OUT DX,AX166F:0138 E8C500 CALL 0200166F:013B B88000 MOV AX,0080166F:013E EF OUT DX,AX166F:013F E8BE00 CALL 0200166F:0142 CD20 INT 20

SUB-ROTINA (endereço IP = 0200H)

166F:0200 BBFF3F MOV BX,3FFF166F:0203 B9FFFF MOV CX,FFFF166F:0206 49 DEC CX166F:0207 75FD JNZ 0206166F:0209 4B DEC BX166F:020A 75F7 JNZ 0203166F:020C C3 RET-

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/99

DEC registrador

JNZ endereço

OUT DX, AX

IN AX, DX

CMP registrador, conteúdo

PUSH registrador

POP registrador

Fluxograma:

Explicando o fluxo do programa:

• Carregamos AX com o valor de acordo com os LEDs que quere-mos acender.

INÍCIO

MOV AX, 00

A

CALL SUB - 1

MOV AX, 01

CALL SUB - 1

MOV AX, 02

CALL SUB - 1

MOV AX, 04

CALL SUB - 1

MOV AX, 08

CALL SUB - 1

A

MOV AX, 10

CALL SUB - 1

MOV AX, 20

CALL SUB - 1

MOV AX, 40

CALL SUB - 1

MOV AX, 80

CALL SUB - 1

INT 20

SUB - 1

PUSH AX

MOV DX, 379

IN AX, DX

AX = 6E

POP AX

CALL SUB - 2

IN AX, DX

AX = 7E ?

RET

NÃO

SIM

NÃO

SIM

NÃO

NÃO

SIM

SUB - 2

MOV DX, 378

OUT DX, AX

MOV BX, 3FFF

MOV CX, FFFF

DEC CX

CX = O ?

DEC BX

BX = O ?

MOV DX, 379

SIM

RET

Figura 43

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/100

• Chamamos a sub-rotina 1. Ela serve para ve-rificar se o botão preso a D4 foi pressionado.

• Esta sub-rotina lê o canal de I/O, que é aporta paralela (LPT1) do IBM-PC e com-para o conteúdo com o valor da chave pres-sionada. Como a instrução de leituratambém utiliza o registrador AX, salvamoso conteúdo de AX na pilha (stack).

• Se este valor não for o exato, formamos umLOOP (lê canal e compara) e só sairemosdele se a chave for pressionada.

• Sendo a chave pressionada, a sub-rotina se-gue e chama uma segunda sub-rotina, masantes disso recupera o valor de AX.

• A segunda sub-rotina envia para a saída ovalor de AX e na seqüência faz uma pausaantes de retornar à primeira sub-rotina.

• Terminada a pausa colocamos em DX o nú-mero do canal entrada.

• Voltando à primeira sub-rotina, ela testase a chave já foi solta comparando AX como valor da chave solta. Caso contrário, en-tra em LOOP aguardando até que se soltea chave.

• Voltando ao programa principal, um novovalor de AX é carregado e repete-se o ci-clo até que não haja mais valores de AX aserem enviados para a porta (LPT1).

PROGRAMA FONTE (IP = 0100H)

MOV AX, 00CALL 0200MOV AX, 01CALL 0200MOV AX, 02CALL 0200MOV AX, 04CALL 0200MOV AX, 08CALL 0200MOV AX, 10CALL 0200MOV AX, 20

Este exemplo é um pouco mais complexoque o primeiro e você percebe que, com o flu-xograma, fica mais fácil acompanhar o pro-grama sem se perder.

Muitos outros programas são possíveiscom este periférico didático. À medida quevocê incrementa o hardware do periférico,mais simples fica o programa de controle.

Podemos dizer:

Hardware simples software complexo

Hardware complexo software simples

CALL 0200MOV AX, 40CALL 0200MOV AX, 80CALL 0200INT 20

SUB-ROTINA 1 (IP = 0200H)

PUSH AXMOV DX, 379

FURA: IN AX, DXCMP AX, 6EJNZ FURAPOP AXCALL 0250

BOLO: IN AX, DXCMP AX, 7EJNZ BOLORET

SUB-ROTINA 2 (IP = 0250H)

MOV DX, 378OUT DX, AXMOV BX, 3FFF

FOGO: MOV CX, FFFFVIRA: DEC CX

JNZ VIRADEC BXJNZ FOGOMOV DX, 379RET

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/101

D7 D6 D5 D4 D3 D2 D1 D0

13 12 11 10 9 8 7 6 5 4 3 2 1

1415161725 24 23 22 21 20 19 18

D7 D6 D5 D4 D3 DB-25 Fêmea

1KΩ

1KΩ

1KΩ

1KΩ

1KΩ

1KΩ

1KΩ

1KΩ

1KΩ

Saída Analógica

Motor de Passo4 Bobinas

LDR

Cha

ve N

F

Cha

ve N

A

NT

C o

u P

TC

RE

ED

SW

ITC

H

TR

AN

SIS

TO

RE

S P

OT

EN

CIA

IS

FO

NT

E E

XT

ER

NA

Estude os programas anteriores e crie novas aplicações para oseu periférico didático.

Alguns exemplos simples que podem incrementar seu perifé-rico didático. O motor de passo pode ser substituído por relés queacionarão cargas AC, etc.

Figura 44Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Exercícios Propostos

133/102

1 - Como é executada a instrução CALL?............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

2 - Stack significa:( ) a) Bastão de endereços de memória.( ) b) Empilhamento de dados no final da memória.( ) c) Derramamento de dados no início da memória.( ) d) Bateria de dados na memória.( ) e) Estaca de dados na memória.

3 - Quais os cuidados ao utilizar PUSH registrador e POP registrador em seus programasAssembly?

( ) a) Nunca utilizar PUSH ou POP.( ) b) A ordem dos comandos POP é inversa ao comando PUSH.( ) c) Nenhum cuidado é necessário.( ) d) Só não podemos utilizar PUSH junto do CALL.( ) e) Executar primeiro POP depois PUSH.

4 - Podemos substituir chaves NA por L.D.R., pois:( ) a) Não faz diferença alguma.( ) b) L.D.R. e chave NA são a mesma coisa.( ) c) Não podemos substituir.( ) d) Quando o L.D.R. está iluminado funciona como chave fechada e vice-versa.( ) e) Nenhuma das alternativas anteriores.

5 - Quando queremos comparar um valor lido pelo canal com um número conhecidoutilizamos a instrução:

( ) a) PUSH endereço.( ) b) POP endereço.( ) c) CALL endereço.( ) d) CMP registrador, número.( ) e) JNZ endereço.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

14lição

lição

133/103

Introdução

Nesta lição você irá se familiarizar com todos os dispositivos necessários à montagem de um microcomputador IBM-PC com-patível.

1. Escolha seu Microprocessador

As opções que o mercado oferece são:

• CPU Intel Pentium 4 de 1.7 GHz de clock

• Intel Celeron

• AMD Duron com clock de 700 MHz, 800 MHz ou 900 MHz

Noções para Montagemde um MicrocomputadorIBM-PC Compatível

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/104

2. Chipset e Motherboard

Chipset significa conjunto de CIs numa tradução literal. Todomicroprocessador, como já dissemos, precisa de periféricos. O con-trole destes periféricos e o controle dos barramentos tem sido ob-jeto de desenvolvimentos tecnológicos para tornar o IBM-PC me-lhor e mais rápido, isto falando somente em hardware.

A figura 45 mostra o que um chipset Intel faz para o IntelPentium 4.

• Controla o vídeo através do barramento AGP 4X.

• Controla dois canais IDE para HDD e CD-ROM Master e Slavecada um.

• Aceita memórias RAM do tipo RDRAM.

• Controla o som digital.

• Controla 4 portas USB.

• Trabalha com barramento PCI.

• Controla flash BIOS.

• Tem placa de rede interna.

AGP4X

ATA 100 MB/s2 IDE Channels

LANInterface

MCH

ICH2

Flash BIOS

4 USB ports

6 ChannelAudio

PCI

RDRAM

Intel® Pentium® 4Processador

RDRAMRDRAM

>1GB/s

RDRAMDual

Cannel3.2 GB/s

Intel® Hub Architecture

133MB/s

Figura 45

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/105

As mother-boards (figura 46) ou placas-mãe têm inúmeros fa-bricantes asiáticos a preços e performances para todos os bolsos.Quanto você agüenta pagar para ter um computador PC? Existetecnologia para todo o seu dinheiro e um pouco mais.

Ao escolher uma placa-mãe você pode escolher o CHIPSETpara que seu processador funcione da melhor ou mais barata ma-neira possível. Dependendo da aplicação que se deseja dar ao micro-computador, investir muito dinheiro é totalmente desnecessário,pois a cada meio ano seu microcomputador perde 50% do valorcomercial, devido ao surgimento de novas tecnologias eprocessadores mais rápidos.

Placas-mãe com tudo on-board é uma opção barata para usodoméstico sem grandes necessidades de hardware. Estas necessi-dades acontecem em aplicações comerciais de áudio, vídeo. médi-ca, etc.

Ah! A BIOS, aquela memória do tipo EPROM, já vem na placa.Seus fabricantes são Award BIOS ou AMI BIOS.

3. Cooler

À medida que a freqüência do clock aumenta, a temperaturados processadores aumenta muito. São utilizados coolers (do In-

Figura 46

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/106

O termo “pente” é usado porque a memó-ria vem em uma placa de circuito impresso com terminais banhados a ouro e o conjunto se parece com um pente de cabelo.

5. Gabinetes

As figuras 49 e 50 mostram o gabinete, que é onde você colocará a placa-mãe com suas partes.

Figura 47

Figura 48

glês cooler: aquele que esfria ou torna frio). Estes dispositivos são compostos de uma peça em alumínio aletada e uma ventoinha ligada o tempo todo sobre o conjunto (figura 47).

A figura mostra a ventoinha do cooler e a parte em que entra em contato com a CPU.

Recomenda-se o uso de pasta térmica entre a CPU e o cooler para melhorar a trans-ferência de calor entre as partes e manter a CPU na temperatura ideal.

4. Memórias RAM - Pente

Você já tem um processador, uma placa-mãe e o cooler, mas, sem memória RAM o computador nem liga. Escolha um pente de memória entre:

• 32 Mbytes por pente;

• 64 Mbyte por pente;

• 128 Mbyte por pente ou

• 256 Mbyte por pente.

A figura 48 mostra um pente de memória DDR SDRAMC

ópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/107

O gabinete vem com uma fonte de ali-mentação do tipo chaveada, com potência recomendada de 300 W. É feito em chapa dobrada e soldada, tendo pintura externa resistente e tampo de plástico com design moderno e cores a escolher.

6. Periféricos Comuns

Os periféricos que não são mais opcio-nais são:

6.1 DRIVE de Disquete de 3½”

Com ele você inicializa a máquina, desde que seja com o disco de BOOT ou disco de sistema. Utilizado quando seu HardDisk é não-formatado, para que você inicialize a máquina e possa rodar o software de insta-lação do Windows, por exemplo.

6.2 Teclado

Através dele você envia comandos digi-tados. Por exemplo, ao ligar o computador, para que você acesse o SETUP da BIOS tem que apertar a tecla DEL durante a iniciali-zação.

6.3 Mouse

Dispositivo apontador. Criado nos Labo-ratórios da Xerox e copiado por Steve Jobs da Apple, virou o periférico mais necessário no mundo GUI (Graphic User Interface), traduzi-do como “Interface Gráfica com o Usuário”.

Arrastando e clicando sobre ícones, você é dispensado de digitar comandos do antigo MS-DOS.

6.4 Estabilizador de Tensão da Rede

Trata-se de um produto 100% brasileiro, necessário porque a rede elétrica não é confiá-vel, havendo instabilidades; portanto, é neces-sário estabilizar a rede elétrica em 110 volts para que seu computador não estrague.

Figura 51

Figura 52

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/108

6.5 Caixas de Som Amplificadas

A multimídia, com som e vídeo, é o que há de mais moderno em termos de comuni-cação. Antigamente, só se liam textos, depois começaram a surgir as figuras coloridas. Agora as figuras se movem e têm som.

Caixas acústicas com amplificadores embutidos são ligadas à rede elétrica e am-plificam o som que vem do computador.

6.6 CD-ROM Player

A quantidade de memória ocupada por um programa ultrapassou a barreira dos discos flexíveis, que era de 1.4 Mbyte. Os leitores de CD-ROM são fundamentais hoje; sem um deles você não instala um sistema operacional como o Windows XP, por exemplo.

6.7 Hard Disk Drive

É um dispositivo de armazenamento de dados em mídia magnética, sobre um disco de alumínio rodando em alta velocidade. Com ele você tem o sistema operacional sempre dispo-nível a cada vez que liga seu computador.

Atualmente, a capacidade destes discos chega perto de 100 gigabytes.

Existem jumpers na parte de trás para que você configure seu HD como master ou slave. As modernas placas-mãe aceitam até 4 HDs, sendo: master primário, slave primário, master secundário e slave secundário.

Os drives de CD-ROM vêm no padrão IDE, o mesmo do HD. Portanto, eles ocupam uma destas quatro posições.

Comumente é recomendado que você te-nha um HD com master primário, os demais não importando a ordem.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/109

A figura 58 mostra como colocar os JUMPs para torná-losMASTER ou SLAVE. Vale a pena traduzir as instruções do fabri-cante, a fim de evitar que você tenha prejuízos desnecessários:

Ao manusear um HD:

• Manuseie com cuidado, mesmo quando for devolvê-lo ao fabri-cante.

• Abra a embalagem cuidadosamente. Ela é difícil de abrir.

• Não empilhe HDs.

• Não o deixe cair.

• Sempre coloque o HD sobre superfícies cobertas e macias.

• Monte-o no gabinete com cuidado para não bater, chacoalhar ouforçar.

• Use equipamento de proteção eletrostática durante todo o tempoda montagem.

A figura 59 mostra o cabo de ligação com a controladora IDEde HD e CD-ROM drive. É chamado flat cable e é composto devários fios grudados uns aos outros no formato flat (plano). Um destes

Para HD Slave

Para HD MasterFio pintado indica opino 1 do conector

Placa-mãe

Conector docabo de HD

(largo)

Figura 59

Master Slave

Cable Select

J50 J48 J46 J44 J42 J50 J48 J46 J44 J42

J50 J48 J46 J44 J42

Figura 58 - Exemplo de jumper na parte traseira do HD

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/110

fios vem marcado em vermelho (ou outra cor) indicando que se trata do fio do terminal número 1 do conector. Na hora de colocar, alinhe este fio com o terminal número 1.

6.8 Monitor de Vídeo SVga-Colorido

Por ele saem as imagens coloridas. É diferente de uma TV comum devido à sua resolução. O padrão mais utilizado é de 800 x 600 pontos de imagem em uma tela.

Não existe espaço para adivinhação. Todos os terminais e conectores foram padronizados; parafusos do tipo PHILIPS, etc. E ainda: todo produto é vendido com o manual de instalação. Exija o seu! Siga as instruções e pronto.

Junte os cabos, aperte parafusos, faça ligações, pronto! Você montou um microcomputador!

O microcomputador montado como explicamos terá o aspecto mostrado na figura 61. Porém, falta co-locar o software, senão ele não servirá para nada.

Atualmente, o Windows XP é o padrão do mercado. O pacote OFFICE XP da MICROSOFT é utilizado na maioria das instituições.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Respostas dos Exercícios Propostos

133/111

Lição 1

1 - A2 - D3 - A4 - C5 - C

Lição 2

1 - C2 - C3 - Indicar qual a pastilha, indicar o endereço e

o que fazer naquele endereço (ler ou escre-ver).

4 - A5 - A – pois 210 = 1.024 combinações possíveis,

uma para cada endereço da memória.

Lição 3

1 - B2 - A3 - E

Lição 4

1 - E2 - C3 - D4 - E5 - D

Lição 5

1 - A – pois 4 k é 4 x 1.024 = 4.096 e bytecorresponde a 8 bits.

2 - Conjunto de fios que transportam informa-ções no formato binário e que tem a mesmafunção no sistema.

3 - B4 - D5 - C6 - B

Lição 8

1 - Linhas de endereçamento ou address bus:sua função é gerar o endereço dememória no qual a CPU buscaráinstruções de um programa.Linha de dados ou data bus: sua função étransportar os dados para dentro da CPUou da CPU para a memória ou periférico.Clock: sinal de onda quadrada. A CPUutiliza cada pulso para executar umprograma.Interpretador: cada instrução estáassociada a um código binário. O circuitointerpretador identifica a qual instruçãopertence o código binário lido damemória.Registradores: pequenas memórias de 8bits ou 16 bits feitas de flip-flops. Suafunção é armazenar momentaneamentedados do programa em execução.U.L.A.: Unidade Lógica e Aritmética. Éresponsável pelos cálculos de adição esubtração de binários, bem como todas asfunções lógicas entre dois númerosbinários.Flags: registrador onde cada um de seusbits se ativa, dependendo do resultado deuma operação da U.L.A.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/112

2 - A3 - C4 - São como avenidas para enviar dados à CPU ou receber dados

dela. Somente um periférico pode utilizar o barramento porvez. Sem eles a CPU teria milhares de fios e circuitos internospara se comunicar com os periféricos.

5 - A

Lição 11

1 -

Início

AX = 1234H

FIM

BX = 0234H

CX = 0034H

DX = 0004H

CX = CX - DX

FLAG Z ?

FLAG Z ?

CX = CX - DX

BX = BX - CX

FLAG Z ?

AX = AX - BX

FLAG Z ?

SIM

NÃO

NÃO

SIM

SIM

NÃO

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Instituto Monitor

133/113

Convém lembrar que em programaçãoexistem inúmeras maneiras de fazer o mes-mo programa. Portanto, aqui é somente umasugestão de resposta.

2 - Exemplo digitado no Debug da Microsoft,a partir do endereço IP = 500.

PROGRAMA FONTE NO MODOENDEREÇADO

166F:0500 MOV AX,1234166F:0503 MOV BX,0234166F:0506 MOV CX,0034166F:0509 MOV DX,0004166F:050C SUB CX,DX166F:050E JZ 0518166F:0510 SUB BX,CX166F:0512 JZ 0518166F:0514 SUB AX,BX166F:0516 JZ 0518166F:0518 INT 20

PROGRAMA FONTE NO MODO LABEL

MOV AX,1234MOV BX,0234MOV CX,0034MOV DX,0004SUB CX,DXJZ AZULSUB BX,CXJZ AZULSUB AX,BXJZ AZUL

AZUL: INT 20

Lição 12

1 - A2 - É a utilização dos barramentos por dois ou

mais periféricos ao mesmo tempo.3 - A4 - A5 - A

Lição 13

1 - Copia o conteúdo de PC (Program Counter)na stack (pilha), carrega PC com o endere-ço mencionado em CALL, o registrador SPaponta para endereço anterior no final damemória. Executa a instrução do endereçoapontado por CALL.

2 - B3 - B4 - D5 - D

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Bibliografia

133/114

VISCONTI, Antonio Carlos J. FranceschiniMicroprocessadores 8080 e 8085 - 3ª ediçãoSão Paulo: Editora Érica 1983

BRAGA, Newton C.Manutenção de Microprocessadores -Guia para futuros profissionais - 3ª ediçãoSão Paulo: Editora Saber 1999

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

Pesquisa de Avaliação

133 - Microprocessadores

Nome (campo não obrigatório): _______________________________________________________________

No de matrícula (campo não obrigatório): _____________________

Curso Técnico em:Eletrônica Secretariado Gestão de NegóciosTransações Imobiliárias Informática TelecomunicaçõesContabilidade

QUANTO AO CONTEÚDO

1) A linguagem dos textos é:a) sempre clara e precisa, facilitando muito a compreensão da matéria estudada.b) na maioria das vezes clara e precisa, ajudando na compreensão da matéria estudada.c) um pouco difícil, dificultando a compreensão da matéria estudada.d) muito difícil, dificultando muito a compreensão da matéria estudada.e) outros: ______________________________________________________

2) Os temas abordados nas lições são:a) atuais e importantes para a formação do profissional.b) atuais, mas sua importância nem sempre fica clara para o profissional.c) atuais, mas sem importância para o profissional.d) ultrapassados e sem nenhuma importância para o profissional.e) outros: ______________________________________________________

3) As lições são:a) muito extensas, dificultando a compreensão do conteúdo.b) bem divididas, permitindo que o conteúdo seja assimilado pouco a pouco.c) a divisão das lições não influencia Na compreensão do conteúdo.d) muito curtas e pouco aprofundadas.e) outros: ______________________________________________________

Caro Aluno:

Queremos saber a sua opinião a respeito deste fascículo que você acaba de estudar.

Para que possamos aprimorar cada vez mais os nossos serviços, oferecendo um

material didático de qualidade e eficiente, é muito importante a sua avaliação.

Sua identificação não é obrigatória. Responda as perguntas a seguir assinalando

a alternativa que melhor corresponda à sua opinião (assinale apenas UMA

alternativa). Você também pode fazer sugestões e comentários por escrito no

verso desta folha.

Na próxima correspondência que enviar à Escola, lembre-se de juntar sua(s)

pesquisa(s) respondida(s).

O Instituto Monitor agradece a sua colaboração.

A Editora.

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.

QUANTO AOS EXERCÍCIOS PROPOSTOS

4) Os exercícios propostos são:a) muito simples, exigindo apenas que se decore o conteúdo. b) bem elaborados, misturando assuntos simples e complexos.c) um pouco difíceis, mas abordando o que se viu na lição.d) muito difíceis, uma vez que não abordam o que foi visto na lição.e) outros: ______________________________________________________

5) A linguagem dos exercícios propostos é:a) bastante clara e precisa.b) algumas vezes um pouco complexa, dificultando a resolução do problema proposto.c) difícil, tornando mais difícil compreender a pergunta do que respondê-la.d) muito complexa, nunca consigo resolver os exercícios.e) outros: ______________________________________________________

QUANTO À APRESENTAÇÃO GRÁFICA

6) O material é:a) bem cuidado, o texto e as imagens são de fácil leitura e visualização, tornando o estudo bastante agradável.b) a letra é muito pequena, dificultando a visualização.c) bem cuidado, mas a disposição das imagens e do texto dificulta a compreensão do mesmo.d) confuso e mal distribuído, as informações não seguem uma seqüência lógica.e) outros: ______________________________________________________

7) As ilustrações são:a) bonitas e bem feitas, auxiliando na compreensão e fixação do texto.b) bonitas, mas sem nenhuma utilidade para a compreensão do texto.c) malfeitas, mas necessárias para a compreensão e fixação do texto.d) malfeitas e totalmente inúteis.e) outros: ______________________________________________________

Lembre-se: você pode fazer seus comentários e sugestões, bem como apontaralgum problema específico encontrado no fascículo. Sinta-se à vontade!

PAMD1

Sugestões e comentários

Cópia

não a

uto

riza

da. Rese

rvados

todos

os

direitos

auto

rais.

Cópia não autorizada. Reservados todos os direitos autorais.

Cópia não autorizada. Reservados todos os direitos autorais.