Sunteți pe pagina 1din 18

Microprocessadores Prof. Nelso G.

Bonacorso 2001

Capítulo 2 – MICROPROCESSADORES
......................................................................................................................................... ...........................
2.1 - Evolução
2.2 - Arquitetura Interna de um Microprocessador
2.3 - Hardware Típico de um Microprocessador
2.4 - Memórias
2.5 - Decodificação de Endereços
2.6 – Linguagens de Programação

2.1 – Evolução

O primeiro CI (circuito integrado) produzido comercialmente com uma estrutura de um


microprocessador rudimentar surgiu em 1971 colocado no mercado pela INTEL. Era o 4004, que tinha um
barramento de dados de 4 bits, endereçava 16 KBytes, e continha um conjunto de 46 instruções.

A seguir, em 1972 a INTEL lançou uma versão mais poderosa deste microprocessador chamado
8008, este já de 8 bits de dados e com um conjunto de 48 instruções. Em 1973 o 8080 que se seguiu ao
8008 já continha 30 instruções a mais que o 8008, o que ampliava para 78 instruções, além da maior
capacidade de endereçamento: 65535 posições de memória.

Em 1976 a INTEL já fornecia diversas versões do 8080, incluindo o 8085 que tinha importantes
aperfeiçoamentos como a alimentação de uma só tensão de 5V, e capacidade de leitura/escrita de dados
seriais. O conjunto de instruções do 8085 era quase o mesmo exceto por duas novas instruções, portanto
mantendo a compatibilidade de software com o 8080.

Com o lançamento do 8088/86 a INTEL introduziu o primeiro microprocessador da família 8086


que hoje se encontra a sua 6 a geração com o Pentium II. Estes microprocessadores são os que constituem a
plataforma de hardware dos microcomputadores do padrão IBM-PC compatível, os mais populares em
todo o mundo.

O microprocessador Z-80 da Zilog é um microprocessador de 8 bits que dividiu com o 8085 e com
o 6.800 da Motorola, a predominância no mercado, porém o Z-80 alcançou uma maior popularidade por
oferecer compatibilidade de software com a família 8080 com uma nítida vantagem pelo fato de oferecer
um complemento de 80 instruções sobre este.

1
Microprocessadores Prof. Nelso G. Bonacorso 2001

Outro fabricante que aparece com destaque no cenário dos microprocessadores de 8 bits é a
Motorola com sua CPU MC6800 e MCS6502. A Motorola no entanto obteve mais sucesso com o seu
microprocessador de 16 bits o MC68.000, o qual é usado na plataforma de hardware dos
microcomputadores da marca Apple, os famosos MacIntosh. A tabela 2.1 dá uma idéia de como foi a
evolução dos microprocessadores, incluindo os principais fabricantes.

Tabela 2.1 – Evolução dos Microprocessadores


Modelo Clock Bits da Via Bits da Via Memória Número
e Em de Dados de Dados Endereçável de
Fabricante (MHz) Interna Externa (bytes) Transistores
4004 - Intel - 4 4 16 K LSI
8008 - Intel - 8 8 16 K LSI
8080 – Intel 2 8 8 64 K LSI
8085 – Intel 4 8 8 64 K LSI
6.800 – Motorola 8 8 64K
Z-80 – Zilog 6 8 8 64K LSI
8088 – Intel 8 16 8 1M 29.000
8086 – Intel 8 16 16 1M 29.000
68.000 – Motorola 16 16
80C86 – Intel 8 16 16 1M 29.000
80186 – Intel 16 16 16 1M 35.000
80286 – Intel 20 16 16 16 M 130.000
80386SX – Intel 33 32 16 16 M 275.000
80386DX – Intel 40 32 32 4096 M 275.000
80486SX – Intel 40 32 16 16 M 900.000
80486DX – Intel 50 32 32 4096 M 1,2 M
80486DX2 – Intel 66 32 32 4096 M 1,2 M
80486DX4 – Intel 100 32 32 4096 M 1,2 M
PENTIUM – Intel 233 32 64 4096 M 3,1 M
PENTIUM II – Intel 233 64 64 4096 M 7M

2.2 - Arquitetura Interna de um Microprocessador

Podemos dividir o microprocessador em geral em três blocos básicos que são: a ALU (unidade de
aritmética e lógica ), a rede de registradores da CPU (o acumulador, registrador auxiliar e os outros

2
Microprocessadores Prof. Nelso G. Bonacorso 2001

registradores) e a seção de controle. A figura 2.1 mostra o diagrama de blocos da arquitetura interna de
uma CPU genérica.

Alimentação
Via de
Control

Decodificador
de Instruções e
Registrador Controle da CPU
de Instruções

Flags

Via de
Dados Controle da
ALU
Via de Dados

Via de
Registros Controle da Endereços
da CPU Via de Endereços

Figura 2.1- Arquitetura Interna Básica de um Microprocessador.

- Via de Dados (Data Bus): são as linhas (8 nos microprocessadores de 8 bits) nas quais temos os dados
com os quais o microprocessador irá trabalhar, ou os resultados de cálculos efetuados a serem enviados para
fora do chip. São vias bidirecionais, isto é, emitem e recebem dados.

- Via de Endereços (Address Bus): em geral, 16 linhas (nos microprocessadores de 8bits) que dessa forma
podem endereçar 65.536 posições diferentes nas memórias externas ao microprocessador. Essas linhas são
unidirecionais, isto é, só emitem o endereço.

- Via de Controle (Control Bus): essas linhas, algumas de saída outras de entrada, permitem ao
microprocessador controlar dispositivos externos ou ser, pelo menos, controlado.
- ALU (Unidade de Lógica e Aritmética): é o local onde o microprocessador efetua as operações de
lógica e aritmética.

- Decodificador de Instruções: é um circuito lógico que, ao receber o código binário da instrução, gera os
sinais de controle necessários para que o microprocessador execute a função desejada.

3
Microprocessadores Prof. Nelso G. Bonacorso 2001

- Registros da CPU (Banco de Registradores): são memórias internas ao microprocessador que


armazenam o resultado das operações efetuadas e servem também como registros temporários.

- Flags (Bandeiras): são bits vinculados ao resultado da operação do microprocessador. Os


microprocessadores típicos possuem os flags para sinalizar os estados de zero, sinal, paridade, estouro ,
etc.

2.3 - Hardware Típico de um Microprocessador

De um modo geral, um sistema baseado em um microprocessador possui a seguinte estrutura


mínima representada na figura 2.2.

INTERFACE SISTEMA INTERFACE


DE DE
ENTRADA MICROPROCESSADO SAÍDA

MUNDO EXTERIOR

Figura 2.2 - Sistema Microprocessado Ligado ao Mundo Exterior.

A interface de entrada são circuitos que interligam o mundo exterior às linhas de entrada do
sistema microprocessado e são usadas para prover informações deste mundo exterior ao sistema. O
sistema, após tratar, ou processar estas informações, entrega através das suas linhas de saída as mesmas à
interface de saída para serem interpretadas pelo usuário, acionar algum dispositivo, etc.

A interface de entrada pode estar conectada a dispositivos os mais variados, recebendo do mundo
exterior as mais variadas informações. Por exemplo esta interface de entrada poderia estar recebendo
caracteres de um teclado de computador, se o sistema microprocessado em questão fosse um
microcomputador, mas também poderia ser proveniente de um circuito de aquisição de dados ligados a
sensores, por exemplo sensores de pressão, temperatura, vibração, posição, etc., e neste caso o sistema
microprocessado poderia ser um computador de bordo de um avião, ou mesmo um automóvel mais
sofisticado. Em suma, a informação de entrada para o sistema depende da aplicação deste sistema
microprocessado.

4
Microprocessadores Prof. Nelso G. Bonacorso 2001

A interface de saída da mesma forma poderá estar conectada aos mais variados dispositivos
transmitindo a informação previamente processada pelo sistema ao mundo exterior. No exemplo no qual o
sistema se tratava de um microcomputador, esta interface de saída estará conectada, por exemplo, ao
monitor de vídeo, ou à impressora. No caso do computador de bordo, a interface de saída poderá estar
conectada aos dispositivos de controle de temperatura, pressão, suspensão, ou atuadores diversos.

A CPU, a interface de I/0, as memórias físicas, e os periféricos, são o que chamamos de hardware
do sistema. As instruções que residem na memória de programa é a porção denominada software ou
programa. O sistema microprocessado visto em maior detalhe, figura 2.3, consiste dos seguintes blocos:

ALIMENTAÇÃO

Via de Dados
GERADOR
DO
rd RESET
rd MEMÓRIA rd MEMÓRIA
MICRO DE
DE P
INTERRUPÇÕES DADOS PROGRAMA O
PROCESSADOR
wr R
T
A
CPU S
Via de Endereços
cs0 cs1
D
Via de Controle E
cs2
SELEÇÃO DE
OSCILADOR ENDEREÇOS I/O
cs3
Figura 2.3 - Sistema Microprocessado Genérico.
- Microprocessador: o microprocessador ocupa uma posição de destaque em qualquer sistema
microprocessado. É ele que gerencia todas as operação que se processam no sistema. Esta gerencia é
efetuado através da troca de sinais de controle com os demais dispositivos (memórias, e interfaces de I/O).
Para se comunicar com os demais blocos do sistema, a CPU se utiliza de um sistema de vias ou
barramentos, que são agrupamentos de sinais de mesma natureza. Estas vias poderão ser de três tipos: via
de dados, via de endereços e via de controle.

- Oscilador ou Circuito de Clock: o circuito oscilador ou circuito de clock, é o responsável pela geração
de um sinal de relógio que a CPU, assim como outros circuitos específicos, utilizam para o perfeito
sincronismo de todas as operações do sistema. A frequência deste sinal de relógio vai depender do tipo de

5
Microprocessadores Prof. Nelso G. Bonacorso 2001

CPU que se está usando, e pode variar 2 megahertz até 300 megahertz nos sistemas providos de
microprocessadores de última geração.

- Gerador de Reset: inicializa o sistema ao ligar e também inicializa o sistema sob comando externo.

- Interrupções: entrada de sinais externos, de outros periféricos, para interromper o processamento e


executar outro previamente acertado.

- Seleção de Endereços: circuito lógico que escolhe qual memória ou perif érico a CPU vai utilizar. Este
circuito é responsável pela lógica de seleção necessária para que a via de dados, endereços, e controle sejam
compartilhados no tempo entre estas várias interfaces, e para que a CPU possa individualizar os vários
dispositivos de I/O através de endereços únicos.

- Portas de I/O: dispositivos de entrada e saída (Input/Output) para comunicação com o mundo externo
como teclados, display, impressoras, entre outros.

- Memória de Programa: memória onde a CPU vai procurar as instruções para executa-las.

- Memória de Dados: memória onde a CPU lê e escreve dados durante a operação normal.

O microprocessador se comunica com os seus periféricos de entrada e saída, mundo exterior,


através das Portas de I/O. A CPU irá então processar os dados segundo instruções do programa
armazenado na memória de programa. Durante o tratamento destes dados, a CPU armazena dados
transitórios na memória de dados.
Após terminar a execução da tarefa, a CPU deixa os resultados disponíveis na porta de I/O. Esta
porta de saída, entrega os resultados para os dispositivos de saída, também chamados de periféricos de
saída do sistema, que num microcomputador poderão ser: o monitor de vídeo, impressora, etc.

A busca das instruções pelo microprocessador é realizada da seguinte maneira: primeiro o


microcontrolador coloca na via de endereços o endereço da instrução ( exemplo: 0000H) e o sinal de

controle de que quer exetuar a leitura rd da instrução deste endereço, em segundo lugar o circuito de

seleção de endereços fornece somente o sinal de habilitação cs0 para a memória de programa e por último a
instrução do endereço em questão ( exemplo: 3EH ) é fornecido ao microprocessador pela via de dados.

6
Microprocessadores Prof. Nelso G. Bonacorso 2001

Para a escrita de um dado na memória de dados o microprocessador opera da seguinte maneira:


primeiro o microprocessador coloca na via de endereços o endereço onde quer colocar o dado ( exemplo:

2100 H) e o sinal de controle de que quer efetuar a escrita wr do dado neste endereço, em segundo lugar o

circuito de seleção de endereços fornece somente o sinal de habilitação cs1 para a memória de dados e por
último o microprocessador envia o dado ( exemplo: B6H ) para o endereço em questão pela via de dados
para a memória de dados.

A comunicação com os periféricos de entrada e saída do sistema é similar a leitura e escrita de


dados nas memórias, isto é, também utiliza o circuito de seleção de endereços para fornecer os sinais de

habilitação cs2 e cs3 .

Ao ligarmos o sistema, a primeira coisa que o microprocessador faz é buscar a primeira instrução do
programa principal no endereço 0000 H da memória de programa, e logo após executa esta instrução.
Depois o microprocessador automaticamente busca a segunda instrução no endereço 0001 H da memória de
programa para ser executada. Este procedimento é realizado até encontrar a instrução de “término do
programa”. De maneira simbólica, podemos ver o processo pelo fluxograma da figura 2.4.

Se durante o processo ocorrer uma interrupção externa, o microprocessador para de executar o


programa principal salvando o endereço da próxima instrução e desvia para executar o programa da
interrupção em questão. Este programa da interrupção se localiza em um endereço da memória de programa
chamado de endereço da interrupção e ali executa uma série de instruções até encontrar a instrução de “fim
da interrupção”. Na seqüência o microprocessador carrega o endereço da próxima instrução e continua
processando o programa principal.
Ao ocorrer um reset ou falta de energia o microprocessador interrompe a execução do programa na
instrução que se encontra. Ao iniciar sua operação novamente ele busca a instrução no endereço 0000 H.

7
Microprocessadores Prof. Nelso G. Bonacorso 2001

Início

Busca da
Instrução

Executa a Salva o
Instrução Contador de
Endereços

Incrementa o
Executa o
Contador de
Programa da
Endereços
Interrupção

s
Interrupção n
Fim ?

n
s
n
Fim ? Carrega o
Contador de
Endereços
s

Fim do Programa

Figura 2.4 – Fluxograma do Funcionamento de um Sistema Microprocessado.

O conjunto de instruções que a CPU entende, constitui o que se chama de linguagem assembly do
microprocessador, e para um mesmo microprocessador podem ser mais de 100 diferentes instruções cada
qual associada a uma operação. Estas instruções do microprocessador combinadas como previamente dito
irá formar um programa em linguagem assembly, este programa que é armazenado na memória de
programa é que provê inteligência ao sistema. Passaremos agora, a detalhar um pouco mais cada uma
dessas partes hardware e software que compõe o sistema.

2.4 – Memórias

A memória é o local onde é armazenado não somente o programa e os dados mas também os dados
processados (resultados finais e parcias). A figura 2.5 ilustra como visualizar uma memória de 65.536

8
Microprocessadores Prof. Nelso G. Bonacorso 2001

posições ou endereços. Em cada endereço é guardado uma informação de 1 byte. Esta informação poderá
ser um dado ou uma instrução de programa.

Endereço Informação
0000 H C8H
0001 H A4H
0002 H 3EH

FFFD H 00H
FFFE H 29H
FFFF H B6H

Figura 2.5 – Esboço de uma memória de 64 Kbytes.

As memórias podem ser:

♦ Memórias somente de Leitura, não Voláteis

São as memórias tipo ROM (Read Only Memory), que só podem ser lidas e não perdem a
informação ao ser desligadas. Dividem-se em vários tipos, sendo:

- ROM: só pode ser gravada no processo de fabricação.

- PROM: pode ser gravada uma só vez pelo usuário.

- EPROM: é uma PROM apagável e regravável, quando exposta a luz ultravioleta perde as suas
informações e permite uma nova gravação.

♦ Memórias de Leitura e Escrita, Voláteis

São as memórias do tipo RAM (Random Acess Memory), permitem ler e escrever dependendo
sempre da tensão de alimentação. Ao desligar o sistema seus dados são perdidos. Dividem-se em:

9
Microprocessadores Prof. Nelso G. Bonacorso 2001

- Estáticas: mantém as informações durante todo o tempo em que estiver com alimentação.m da operação
de refresh, que é necessário de tempos em tempos repassar a memória, caso contrário, perdem seus dados
mesmo com a alimentação ligada.

- Dinâmicas: são memórias nas quais as informações vão gradativamente desaparecendo, necessitando de
uma regravação (circuito de refresh).

♦ Memórias de Leitura e Escrita, nãoVoláteis

É um tipo especial de memória chamada EEPROM (Electric Erasable PROM), mais conhecida
com E2PROM, isto é, pode ser programada e apagada eletricamente, não necessitando mais da exposição à
luz ultravioleta.

2.5 - Decodificação de Endereços

Vimos que o microprocessador acessa diferentes periféricos usando a mesma via de endereços e a
mesma via de dados. Para isso, o microprocessador envia um sinal de habilitação através do circuito de
seleção de endereços que indica qual o periférico que ele deseja “conversar”, isto é, ler ou escrever.

Como são muitos os periféricos (chips) então o microprocessador usa a própria via de endereços
para gerar os sinais de habilitação através de um “decodificador de endereços”. O componente que realiza
a função de decodificação de endereços é o chip 74138 que é, na realidade, um multiplexador de 3x8, isto é,
3 entradas e 8 saídas. A tabela 2.2 ilustra o seu funcionamento deste componente.

A figura 2.6 mostra uma aplicação do multiplexador 74138 na decodificação de endereços


acessando 4 chip’s de memória de 8 Kbytes cada.

10
Microprocessadores Prof. Nelso G. Bonacorso 2001

Tabela 2.2 – Funcionamento do componente 74138.


Entradas Saídas
A2 A1 A0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
0 0 0 1 1 1 1 1 1 1 0
0 0 1 1 1 1 1 1 1 0 1
0 1 0 1 1 1 1 1 0 1 1
0 1 1 1 1 1 1 0 1 1 1
1 0 0 1 1 1 0 1 1 1 1
1 0 1 1 1 0 1 1 1 1 1
1 1 0 1 0 1 1 1 1 1 1
1 1 1 0 1 1 1 1 1 1 1

Via de Dados
D0 – D7 (8 bits)

8K 8K 8K 8K
wr wr wr wr wr
Via de Endereços
A0 – A15 (16 bits)
rd rd rd rd rd

cs0 cs1 cs2 cs3


A0 – A12

A13 A0 Y0
A14 A1 Y1
A15 A2 Y2
Y3
Y4
Y5
Y6
Y7
74138

Figura 2.6 – Decodificador de Endereços para acessar 4 x RAM 8 Kbytes.

A via de dados (D0 – D7), a via de endereços (A0 – A12) e os sinais rd e wr são comum a todas
as memórias. Através do multiplexador 74138 seleciona-se qual das memórias será acionada. As demais
permanecem com seus pinos em alta impedância.

11
Microprocessadores Prof. Nelso G. Bonacorso 2001

Os bits A0 até A12 são destinados a enviar o endereço para a via de endereços podendo acessar
8.192 endereços. Já os bits A13, A14 e A15 são reservados para acionar até 8 periféricos diferentes. Assim,
mapeamos a memória como se fosse um endereço:

- 1a Memória ( 8 Kbytes): 0000H até 1FFFH


- 2a Memória ( 8 Kbytes): 2000H até 3FFFH
- 3a Memória ( 8 Kbytes): 4000H até 5FFFH
- 4a Memória ( 8 Kbytes): 6000H até 7FFFH

2.6 – Linguagens de Programação

Para executar uma tarefa qualquer, um microprocessador precisa receber as instruções precisas
sobre o que fazer. Uma seqüência adequada de instruções para realizar uma tarefa se constitui num
programa de microprocessador. Uma linguagem de programação é um conjunto de ferramentas, regras de
sintaxe e símbolos ou códigos que nos permitem escrever programas.

A linguagem de máquina é aquela que mais se aproxima das características técnicas do hardware,
é a linguagem própria do microprocessador, definida pelo fabricante, confusa para o ser humano, é
caracterizada por um códigos pequeno e rápido (opco des), sua representação é feita por números binários
e/ou hexadecimais o que torna a programação na linguagem de máquina pouca prática.

Um programa em linguagem de máquina é uma longa série de 0’s e 1’s ou em hexadecimal,


ordenados de forma que alguns representem códigos de instruções e os outros representem os dados que
serão processados ou indicam onde esses dados estão armazenados.

Já a linguagem assembly também chamada de linguagem simbólica foi a primeira evolução da


linguagem de programação, possui uma seqüência de instruções da linguagem de máquina. Esta linguagem é
constituída por um conjunto de instruções proposta em símbolos e números, onde os símbolos representam
os mnemônicos e registradores e os números representam os dados e endereços. Exemplos de mnemônicos:
ADD que é a soma de dados, SUB que é a subtração de dados, etc. Esta linguagem proporciona a clareza,
totalmente inexistente na linguagem de máquina e, obviamente, facilidade na programação.

É importante lembrar que um microprocessador é sempre monoglota, isto é, ele entende única e
exclusivamente a sua linguagem de máquina. Portanto, para escrever um programa em outra linguagem e ele

12
Microprocessadores Prof. Nelso G. Bonacorso 2001

ser entendido e executado pelo microprocessador, é preciso haver outro programa que leia o programa
escrito nessa linguagem alternativa e traduza para a linguagem de máquina.

O programa chamado de assembler (montador) realiza o processo de tradução da linguagem


assembly para a linguagem de máquina. Com a criação dos programas montadores facilitou muito o trabalho
dos programadores. Uma outra vantagem foi a facilidade da depuração de erros de sintaxe e de
programação.

O programa em assembly é chamado de programa fonte, e o programa em linguagem de máquina


é chamado de programa objeto. A tabela 2.3 nos mostra um exemplo bem simples de um trecho de
programa em linguagem de máquina e o mesmo escrito em linguagem assembly.

Tabela 2.3 – Exemplo de programa em Linguagem de Máquina e Assembly.


Programa em Linguagem de Máquina Programa em Linguagem Assembly
End. na Memória Cód. da Oper. Dado ou End. na Memória Mnemônico Dado ou
de Programa Opcode Endereço de Programa Endereço
01F1 3E 00 SALTO: LD A,00H
01F3 D6 10 SUB 10H
01F5 D3 05 OUT 05H
01F7 C3 01F1 JP SALTO

♦ Característica dos Assemblers

- Permite atribuir nomes a localizações de memória, dispositivos de entrada e saída, e mesmo seqüências de
instruções, no exemplo anterior SALTO é um nome atribuído à localização de memória 01F1H.

- Converte dados e endereços de diversos sistemas de numeração (decimal, octal, hexadecimal) para binário,
e ainda caracteres para seus correspondentes códigos, exemplo: ASCII.

- Executa algumas operações aritméticas como parte do processo assembly, por exemplo, na instrução ADD
A, C+1, ao acumulador é somado o conteúdo do registro C mais 1.

♦ Desvantagens da Linguagem Assembly

- Não é portátil, ou seja, um programa escrito para um determinado microprocessador não pode ser
executado em outro microprocessador de outra família.

13
Microprocessadores Prof. Nelso G. Bonacorso 2001

- Deve-se conhecer profundamente o microprocessador, para que se possa ser escrito o programa.

- Existe uma distância grande entre as instruções do microprocessador e as tarefas que o sistema
microprocessado deve executar.

As linguagens de baixo nível são compostas por símbolos e números, ou seja, códigos próximos
aos interpretados pela máquina. Exemplo: linguagem de máquina e assembly. Suas vantagens são: código
pequeno e alta velocidade de processamento. Suas desvantagens são: difícil aprendizado, difícil manutenção
e depuração.

As linguagens de alto nível caracterizam-se por símbolos próximos à linguagem natural do


homem. Exemplo: Pascal, C++, etc. Suas vantagens são: fácil aprendizado, modularização, depuração e
gerência automática da memória. Suas desvantagens são: necessidade de tradução para linguagem de
máquina correspondente.

Cada instrução de um programa em linguagem de alto nível corresponde a inúmeras instruções do


microprocessador. Os compiladores são os programas que traduzem o programa fonte em linguagem de alto
nível para linguagem de máquina, o programa objeto.

A mais importante linguagem de alto nível para aplicações dedicadas com microprocessadores e
microcontroladores é a linguagem C, disponível para a maioria dos microprocessadores ou
microcontroladores, as chamadas plataformas de desenvolvimento. A vantagem principal é o tempo de
desenvolvimento que pode ser superior em 10 vezes ao desenvolvimento em linguagem assembly. Além
disto o programa será melhor documentado, com maior clareza, e terá maior facilidade de depuração
(debug).

♦ Aspecto Geral de um Programa em Assembly

A listagem parcialde um programa em assembly, tabela 2.5, é organizado de acordo com uma
estrutura que inclui os seguintes campos de informações:

Tabela 2.5 – Aspecto de um Programa em Assembly.

14
Microprocessadores Prof. Nelso G. Bonacorso 2001

Campo de Campo de Campo de Campo de Comentários


Label’s Mnemônicos Operandos
SALTO: LD A,00H ; Carrega acumulador com zero
SUB 10H ; Subtrai 16 do acumulador
OUT 05H ; Usa porta 5 de saída
JP SALTO ; Salta para o início

- Campo de Label’s: neste campo deverão ser colocados os label’s que são referências à posições de
memória na forma de texto, que confere ao programa fonte uma maior clareza, e uma maior facilidade de
escrita. Estes label’s serão necessários para se proporcionar as referências para desvios e início de rotina.

- Campo de Mnemônicos: neste campo estarão os mnemônicos das instruções que compõem o programa.
Além disto, serve para se incluir pseudo operandos que serão discutidos mais adiante, e que servem para
indicar ações que o programa assembler deve executar, como por exemplo definir áreas reservadas para
dados, posição de memória para alocação do programa, etc.

- Campo dos Operandos: neste campo, terceira coluna da listagem acima, deverão ser colocados, quando
houverem, os operandos das instruções, por exemplo: DEC C, sendo C o operando, e DEC o mnemônico.
Neste caso este campo é utilizado por um operando que é o conteúdo do registro C. Quando as instruções
necessitarem de endereços como operandos, por exemplo: JP SALTO, onde SALTO é o endereço de
desvio, neste campo deve ser especificado o endereço em questão.

- Campo dos Comentários: é um campo não necessário, utilizado auxiliar na documentação do programa.

♦ Conveção para a Notação dos Operandos

- Os endereços ou operandos são assumidos como decimais se não houver nenhuma indicação em contrário.
Exemplo: ADD A,100 ; Soma 100 decimal ao acumulador.

- Caso se queira um outro sistema de numeração, que não o decimal, deve-se usar a seguinte notação:

15
Microprocessadores Prof. Nelso G. Bonacorso 2001

Hexadecimal: Valor hexadecimal precedido da letra H ou h. Exemplo: ADD A,100H


Octal: Valor octal precedido da letra Q, q, O, ou o . Exemplo: ADD A, 100Q
Binário: Valor binário precedido da letra B ou b. Exemplo: ADD A,100B
Decimal: Valor decimal precedido da letra D ou d. Neste caso é opcional o uso. Exemplo: ADD A,100D

- Pode-se usar nomes simbólicos para definir endereços ou operandos, como visto a seguir:
Exemplo: VALOR EQU 5 ; Define VALOR1 como sendo 5
ADD A, VALOR ; Soma 5 ao acumulador

♦ Pseudo Operandos

Alguns pseudo operandos mais importantes e suas respectivas funções são descritos a seguir:

ORG (Origem): é usado para definir o endereço a partir do qual o programa, ou trecho de programa,
ocupará na memória de programa. Exemplo: ORG 0100H, indica ao programa assembler que o programa
escrito após este pseudo operando, deverá ocupar a área de memória a partir do endereço 0100H da
memória.

DS (Define Segmento): serve para reservar uma área de memória. Exemplo: VAL: DS 10, esta reservado
10 bytes para a variável VAL.

DB (Define Byte): este pseudo operando pode ser usado quando se deseja definir um byte ou uma
seqüência de bytes na memória.
Exemplos: DB 10H ; um único byte definido
MENS: DB 1,5,7,123,70H, 15Q ; vários bytes definidos a partir do endereço MENS
DB “MENSAGEM” ; vários bytes formando uma mensagem em ASCII

DW ( Define Word): este pseudo operando pode ser usado quando se deseja definir dois byte na memória,
o que se chama de word.
Exemplo: DW 10FFH ; dois bytes definidos na memória

EQU (Define uma Constante Simbólica): pode ser usado para definir uma constante simbólica que substitui
um operando ou um endereço.

16
Microprocessadores Prof. Nelso G. Bonacorso 2001

Exemplos: FINAL EQU 5


RESET EQU 0
ST1 EQU START+1

END ( Término do Programa): indica ao programa assembler onde é o término do programa fonte.

♦ Fluxograma

O fluxograma é uma representação gráfica das tarefas de um programa, por meio de símbolos que
fornecem uma visualização imediata do significado da tarefa. O fluxograma ajuda a organizar o programa,
permitindo o seu delineamento e possibilitando seguir, um a um, todos os passos, que serão executados em
um programa.

Na prática, percebe-se que o fluxograma é fundamental na documentapara a economia de tempo e


redução de erros de programação. Um fluxograma não é um elemento indispensável ao desenvolvimento de
um programa, porém, sem ele, será necessário um grande esforço para qualquer alteração ou correção. Os
principais símbolos utilizados em fluxogramas são:

Terminal : início, término ou interrupcão de um programa.

Processamento: uma ação que deve ser tomada.

Decisão: desvio para diversos outros pontos do programa, de acordo com uma
situação testada.

Processamento Predefi nido: um grupo de operações separadas do fluxo do


programa. Geralmente usado para operações repetitivas automáticas (subrotinas).

Entrada ou Saída Genérica: qualquer função relacionada com dispositivos de


entrada ou saída de dados genéricos.

Documento ou Relatório: principalmente usado para saída de resultados.

17
Microprocessadores Prof. Nelso G. Bonacorso 2001

Armazenamento Interno: guardar dados.

Fluxo: direção do fluxo de processamento.

Subprograma Externo: referência a um subprograma externo


ao fluxograma.

Terminal de entrada ou saída: terminal para entrada ou saída de


dados. Usado para teclado ou impressora.

Terminal Exibidor: Terminal de tubo de raios catódicos


(display) principalmente usado para saída.

Conexão: indica a rota do proceguimento do fluxograma.

18

S-ar putea să vă placă și