Você está na página 1de 38

1

Microprocessadores 8086/8088

MICROPROCESSADORES
8086 /8088

2
Microprocessadores 8086/8088

NDICE:
INTRODUO

--------------------------------------------------------------------------------------

TERMINOLOGIA ---------------------------------------------------------------------------------------- 4
INFORMAES BSICAS SOBRE MPs 8086/8088 ---------------------------------------------- 5
ARQUITETURA BSICA ------------------------------------------------------------------------------ 8
PINAGEM DAS CPUs 8086/8088 --------------------------------------------------------------------- 12
CICLO DAS VIAS 8086 ------------------------------------------------------------------------------- 13
ARQUITETURA INTERNA DOS MICROPROCESSADORES ------------------------------- 16
ARQUITETURA DO 8086 ---------------------------------------------------------------------------- 18
UNIDADE DE INTERFACEAMENTO DE VIA -------------------------------------------------- 19
SOFTWARE ---------------------------------------------------------------------------------------------- 26
INTERRUPES --------------------------------------------------------------------------------------- 35
BIBLIOGRAFIA ---------------------------------------------------------------------------------------- 38

3
Microprocessadores 8086/8088

INTRODUO
CONCEITOS BSICOS
ELETRNICA a tcnica que estuda a conduo da corrente eletrnica nos diferentes
meios (slidos fios/barramentos/cristais; lquidos solues eletrolticas; gasosas
non/hlio/argnio e vcuo) e os mtodos, processos e componentes para estabelecer e
controlar circuitos, sistemas e equipamentos baseados neste fenmeno.
Ela se divide em Eletrnica Analgica (ou linear) e Eletrnica Digital.
Eletrnica Analgica (ou linear) a tcnica que estuda as correntes eletrnicas (ou tenses)
que assumem diversos valores durante um certo intervalo de tempo (dt).
ELETRNICA DIGITAL a tcnica que estuda as correntes eletrnicas (ou tenses) que
assumem apenas 2 (dois) valores, 0 e 1 (ou BAIXO e ALTO), ou seja, ausncia de tenso
(terra) ou tenso (+ 5VDC TTL; + 15VDC/+ 12VDC CMOS), num certo intervalo de
tempo (dt).
A eletrnica obteve um grande progresso na rea de semicondutores, surgindo o circuito
integrado (C.I.), que e o agrupamento de uma grande quantidade de elementos discretos
(transistores/diodos) em um nico componente. Com a aplicao dos tipos de circuitos
integrados e a integrao aumentada, chegou-se ao microprocessador.
MICROPROCESSADORES um circuito integrado em larga escala de integrao,
devido as suas modernas tcnicas de fabricao. Contem a maioria dos componentes lgicos
digitais e consegue efetuar com rapidez varias funes e operaes lgicas e aritmticas, sob
controle de um PROGRAMA externo que determina para a mquina a SEQUENCIA das
funes e os operandos a serem utilizados.
Ele e o principal componente de um microcomputador e tambm uma mquina lgica
seqencial sncrona.
Os primeiros microcomputadores tinham o seu barramento de dados de 8 bits (1 byte)
ou 4 bits (1 nible):

4 bits : P4040 (INTEL)


8 bits : 8080 (INTEL), 8085 (INTEL), Z 80 (ZILOG), 6800 (MOTOLORA), 6809
(MOTOROLA), 6502 (ROCKWEEL).

Os MPs de 8 bits que mais se destacaram foram o Z 80 (ZILOG), 8085 (INTEL), 8080
(INTEL), 6809 (MOTOROLA) e 6502 (ROCKWEEL).
O MP Z - 80 e utilizado nos microcomputadores das linhas MSX, SINCLAIR e TRS 80,
em equipamentos eletrnicos, dedicados e em automao industrial (CLPs, SINCLE-LOOP,
MULT-LOOPs).

4
Microprocessadores 8086/8088

O MP 8085 e utilizado nos microcomputadores antigos, em equipamentos eletrnicos


dedicados e em automao industrial.
O MP 8080 e utilizado em equipamentos eletrnicos dedicados e microcomputadores
antigos.
O MP 6809 e utilizado nos microcomputadores da linha TRS -80 COLOR, e em
equipamentos eletrnicos dedicados.
O MP 6502 e utilizado nos microcomputadores da linha APPLE.

TERMINOLOGIA
BUFFER o circuito que tem por objetivo o armazenamento temporrio de informaes.
Como exemplo citamos os buffers das impressoras que armazenam dados a serem impressos.
Muitas vezes usa-se a palavra BUFFER como sinnimo de DRIVER. Devemos ter cuidado
com a utilizao do termo no contexto para no interpretarmos de forma errnea.
DRIVER um circuito amplificador de corrente, usado para interligarmos equipamentos a
uma grande distncia, ou para ampliar a capacidade de fornecimento de uma porta (FANOUT).
HARDWARE o conjunto de componentes eletrnicos e peas mecnicas de um
computador, ou seja, tudo que se refere a parte fsica dos sistema.
FIRMWARE o conjunto de instrues contidas na memria interna permanente do
computador ou equipamento dedicado. o programa associado ao hardware para executar
funes especficas.
SOFTWARE Nome dado aos programas que so executados pelos sistemas, ou seja, o
conjunto de instrues que o computador ou sistema recebem do ambiente externo.
PERIFRICOS So equipamentos eletrnicos de entrada, sada e armazenamento de dados.
MICROCOMPUTADOR o conjunto formado pelo hardware, firmware e perifricos de
pequeno porte.
MICROCOMPUTADOR DEDICADO um equipamento que utilize um
microprocesador e um firmware especfico, podendo vir a ter um software dedicado a uma
determinada funo.
Ex: GEOCOMP, BT 100, INFRARED ENG., GENINI.
SISTEMA OPERACIONAL o conjunto de programas (software) bsicos, que permitem
ao operador usar um computador sem ter de conhecer seu funcionamento interno. um
gerenciador de programas. Temos como exemplos sistema operacional de discos (D.O.S) e o
sistema operacional de fitas (T.O.S).

5
Microprocessadores 8086/8088

MONITOR / SUPERVISOR o programa que gerencia as funes de um equipamento


dedicado, em firmware ou software.
DMA Mtodo pelo qual um perifrico, acesa diretamente a memria do sistema para leitura
ou escrita, pedindo ao MP o domnio sobre os barramentos de dados e endereos, ou seja, bypassando-o.
LATCH Circuito eletrnico que tem a funo de reter as informaes que foram
colocadas na entrada da porta a habilitao de leitura da mesma.
COMPILADOR Programa especial que traduz uma linguagem de mdio ou alto nvel em
sua interpretao de baixo nvel correspondente. Citamos os compiladores COBOL, BASIC,
FORTRAN, PASCAL e outros.
MONTADOR Programa que permite ao projetista de firmware, fazer o teste de seu
programa em linguagem de baixo nvel, sem ter que escrev-los em cdigos objetos e sim em
mnemnicos.

INFORMAES BSICAS SOBRE MPs 8086 / 8088


Os microprocessadores de 16 bits consistem em uma gerao mais recente de pastilhas (chips)
para computadores.
Eles so maiores e mais poderosos, projetados para substituir ou auxiliar os microprocessadores
de 8 bits da dcada de 70.
Podem ser at, em determinadas configuraes, 4000 vezes superiores aos circuitos integrados
de 8 bits custando o mesmo preo. Isso se da atravs da possibilidade da utilizao de produtos
de inteligncia significativa (programas aplicativos, utilitrios), tambm de mquinas falantes e
ouvintes, display coloridos de trs dimenses, rede de comunicao avanada dando acesso a
grandes bancos de dados via telefone e outros.
O 8086 foi a primeira pastilha de 16 bits (MP) que apareceu no mercado, estabelecendo assim o
maior volume de usurios e fornecedores de produtos de apoio.
O 8086 a pastilha de 16 bits mais barata.
O 8086 uma evoluo do 8080 que o MP mais antigo da INTEL.
Os MPs de 16 bits sobressaem os de 8 bits devido:
- Tratamento de informao de mltiplos de 16 bits/ 8 bits em lugar de 8 bits;
- Mecanismo bsico (arquitetura) e o dobro do de 8 bits;
- Maior preciso e maior velocidade (l 2 bytes por vez).

6
Microprocessadores 8086/8088

No 8086/88 uma instruo em linguagem de mquina utiliza de 1 6 bytes de memria e no


8080 utiliza de 1 3 bytes, logo o processador moderno ter um conjunto de instrues muito
mais rico e verstil.
No 8086 foi implementado um novo processo de manufatura de silcio denominado HMOS,
que permite a colocao de 70.000 ou mais transistores em um nico CHIP, possibilitando a
execuo de tarefas mais sofisticadas. Como a decodificao de instrues de multiplicao e
diviso, e a falta de necessidade de hardware adicional para controles de muitos dispositivos de
E/S e implementao de estruturas de interrupes sofisticadas.
Os 8086/88 tem capacidade de enderear mais de 1 milho de bytes de memria de
escrita/leitura. Com essa capacidade aumentada os programadores podem projetar programas
mais sofisticados e poderosos e a partir de 265 Kbytes e possvel processar sistemas
operacionais avanados. Possibilita que vrios usurios utilizem o mesmo computador 8086,
(compartilhem) atravs de terminais inteligentes (8088).
O 8086/88 divide o processamento em subfunes executadas por outros circuitos integrados
dedicados como co-processadores matemticos em ponto flutuante (8087), gerenciadores de
E/S (8089), que liberam a CPU para outras funes e executam essas funes especiais com
mais recursos, velocidade e preciso, tambm economizando memria (no precisa fazer subrotina para instrues matemticas e de interrupo pois possuem sua prpria linguagem).
Melhorias e relao ao 8 bits:
- Realocao de programas (segmentao);
- Reforo na verificao de erros (envio de mensagens a tela devolvendo o comando ao
programa);
- Possibilidade de gravao digital, anlise espectral, sntese de msica, reconhecimento
da fala, comunicao;
- Maior inteligncia ao sistema;
- Multiprocessamento.
Em agosto de 1981, a IBM lanou seu primeiro computador pessoal (PC) com o MP 8088.
O 8086 foi utilizado posteriormente em PCs e em outros computadores pessoais (PC).
O 8086 tem barramento de dados e arquitetura interna de 16 bits.
O 8088 tem barramento de dados de 8 bits e arquitetura interna de 16 bits.
O 8086/88 usa o conceito de memria cach (fita de instruo), que contm vrios bytes de
instruo, durante a busca da prxima instruo a ser executada, economizando tempo no
processamento de uma instruo e aumentando a velocidade de MP.
O 8086 possui 6 bytes de memria cach (6 registradores).
O 8088 possui 4 bytes de memria cach (4 registradores).

7
Microprocessadores 8086/8088

O 8086/88 utiliza o processo de segmentao para endereamento de memria, atravs de


registradores de segmento fornecendo endereos bsicos que so automaticamente
acrescentados a cada endereo de usurio de 16 bits na mquina.
De A0 A15 e D0 e D15, no 8086, existe a multiplexao em pinos comuns, de A16 A19 so
multiplexados sinais de status.
utilizado um gerador de clock externo (8284) e um controlador de via (8288) para gerar sinais
de controle.
No 8086 1.000 bytes so dedicados para 256 apontadores de vetores.
Existem 64 Kbytes de E/S na memria, acessados por instrues IN, OUT e suas derivadas.
Para que o MP 8086 trabalhe em conjunto com o co-processadores (8087) existe um pino
TESTE que em nvel baixo permite que a CPU continue seu processamento e em caso contrrio
coloca-o em estado passivo (de espera).
Existem 4 registradores de uso geral de 16 bits 4 pares de registradores de 8 bits (para serem
usados em instrues de 8 bits) AX, (AH, AL), BX (BH,BL), CX (CH,CL) e DX (DH,DL), que
so equivalentes aos registradores do MP 8080 A (acumulador), HL, BC e DE.
Ainda compem o 8086 4 registradores de 16 bits de segmentos, DC, SS, ES e CS, usados para
enderear somado ao contedo do registrador de deslocamento (registrador no de segmento),
pertencente a unidade de execuo, at 1MB de endereos externos a CPU.
Alm disso, existem 4 registradores de 16 bits de base e ndice BP, SP, DI e SI e 2 registradores
especiais de 16 bits IP ( = PC) e FLAGS (registros de condio).
O 8086 muito rpido, as verses comerciais de clock mais usadas so 5 e 8 MHZ.
Os 2 co-processadores que auxiliam os MPs 8086/8088 so:
- O 8087 que um processador de dados numricos;
- O 8089 que um processador E/S.
Esses dois circuitos integrados trabalhando juntos aos MPs 8086/88 formam a base de um
computador muito poderoso.

8
Microprocessadores 8086/8088

ARQUITETURA BSICA
Os sinais, a exceo de Vcc, terra e MN/MX , so compatveis com nveis TTL (interpretam 0 e
1 de acordo com a faixa de variao correspondente).
No MP 8088, por ser o seu barramento de dados de 8 bits, A8 A15 so usados somente para
endereamento, em conseqncia no h necessidade de BHE e temos no pino 34 apenas um
sinal de estados, SS0.
A polaridade invertida de 10/M em relao ao 8086, torna o 8088 compatvel com 8085
(permite a utilizao de perifricos de 8 bits).

ALIMENTAO:
Pino 1 terra (GND)
Pino 20 terra (GND)
Pino 40 5 volts (Vcc) +/- 10%
Pino 2 ao 16 (8086) e 39 AD14 AD0 e AD15 Barramento de endereos (16 bits menos
significativos) multiplexado com a palavra de dados. Durante o 1 perodo de clock de um ciclo
de via, essas linhas contm os 16 bits de endereo de ordem mais baixa. Durante todos os
outros ciclos, elas contm dados.
Pino 9 ao 16 (8088) AD7 AD0 Idem ao anterior no byte de mais baixa ordem.
Pino 2 ao 8 e 39 (8088) A14 A8 e A15 Durante um ciclo da via contm os bits de
endereos 8 15. No so multiplexados.
Pino 35 ao 38 A19/S6, A18/S5, A17/S4 e A16/S3 So as 4 linhas de endereos de mais alta
ordem multiplexadas com linhas de estados em ambos os processadores. No 1 perodo de um
ciclo da via so linhas de endereo e nos outros perodos so informaes de estados. Se uma
instruo de I/O for executada, essas linhas so mantidas baixas no primeiro perodo do ciclo de
via.
S3 e S4 Especificam qual o registrador de segmento que esta sendo usado para a poro de
segmento do endereo.
S5 Reflete o estado da capacidade de interrupo no 1 perodo do ciclo de via e atualizada
a cada inicio de perodo do clock.
S6 Apresenta nvel 0 se os MPs 8086/88 estiverem controlando o barramento, caso o controle
esteja sendo feito por outro MP ou co-processador, ou perifrico, apresenta nvel 1.

9
Microprocessadores 8086/8088

Pino 34 BHE /S7 (8086) Discrimina o byte de mais alta ordem do byte de mais baixa
ordem da linha de dados, no 1 perodo de clock do ciclo de via (BHE), transferindo dados
para a parte mais significativa da via de dados, D8 D15. Este sinal e mantido 0 durante leitura,
escrita ou seqncias de reconhecimento de interrupo. Em conjunto com A0 e usado para
selecionar os bancos de memria . em T2, T3, e T4, S7 mantm o mesmo nvel do 1 perodo
(A0 seleciona endereo par, BHE seleciona endereo impar).
Quando palavras de 16 bits estiverem localizadas em endereos impares, isto , dois bytes
consecutivos com bytes menos significativos num endereo impar, so acessadas em dois ciclos
de vias, no 1 ciclo acessa-se o banco de memria impar (A0 = 1, BHE = 0) e no 2 ciclo o
banco de memria par (A0 = 0, BHE = 1). No entanto, no caso de palavras de 16 bytes
localizadas em endereos pares, ou seja, dois bytes consecutivos com o byte menos
significativo num endereo par, so acessadas em ciclo de via A0 e BHE = 0 habilitam ambos
os bancos simultaneamente, sendo este acesso mais rpido.
Pino 34 SS0 (8088) o equivalente lgico de S0 no modo mximo: a combinao de SS0,
Io/M e DT/R permitem ao sistema decodificar o estado do ciclo de via no 8088.
Pino 17 NMI Habilita em transio de nvel alto o pedido de interrupo no mascarvel,
que no e mascarada por software. O endereo da rotina de servio no mascarvel deve estar
no endereo de memria 00008H.
Pino 18 INTR Em nvel alto habilita um pedido de interrupo que e testado pela CPU,
durante o perodo final de cada interrupo. Esta interrupo pode ser mascarada por software
atravs do bit de capacidade de interrupo.
Pino 19 CLK Relgio que varia de 2 MHz 8 MHz (e assimtrico com duty cicle de 33%).
Pino 21 RESET Este sinal deve permanecer em nvel 1 por pelo menos 4 perodos de clock
para ressetar a CPU. Quando h um RESET, o reincio do processamento ocorre a partir do
endereo FFFF0H ( FLAGS 0000H DS, SS, ES, PC 0000H CS FFFFH).
Pino 22 READY Habilitado em nvel alto, indica para a CPU que a memria ou E/S esta
pronta para a transferncia de dados. O estado de espera e causado por nvel baixo neste pino, e
durante o perodo de espera os barramentos no ficam em alta impedncia.
Pino 23 TEST Este pino e examinado pela instruo WAIT, se 0, o processamento continua
normalmente, se 1, a CPU fica em estado de espera (sem executar nada) at que o sinal retorne
ao nvel baixo. Este pino pode ser usado para o sincronismo de co-processadores com a CPU.
Pino 33 MN/MX Indica se a CPU esta trabalhando no modo mnimo (=1) ou mximo (=0).
No modo mnimo os 2 MPs trabalham de forma mais autnoma.
No modo mximo h a possibilidade de trabalhar em conjunto com os processadores 80887 e
8089, e depende de C.I.S perifricos como 8288 (controlador de barramentos), para gerar todos
os sinais para o barramento de controle.

10
Microprocessadores 8086/8088

Pino 24 QS1, INTA


QS1 (modo mximo) representa o estado da fila de instruo valido durante o perodo de clock
seguinte a uma operao na fila.
INTA (modo mnimo) o reconhecimento da interrupo pedida por um dispositivo externo,
pela CPU, ativo em nvel baixo.
Pino 25 QS0, ALE
QS0 (modo mximo) representa o estado da fila de instruo valida durante o perodo de clock
seguinte a uma operao na fila.
ALE (modo mnimo) ativo em nvel alto no 1 perodo de clock de qualquer ciclo da via,
tem a funo de introduzir o endereo nas pastilhas latch de endereo 8282/8283.
Pino 26 S0, DEN
S0 (modo mximo) uma informao de estado gerada para o 8288 para que ele fornea sinais
de acesso a memria 3 dispositivos de E/S.
DEN (modo mnimo) usado para controlar os transceptores 8286/8287 habilitando a sua
operao, indicando que a CPU esta apta para a transferncia de dados, ativo em nvel 0.
Pino 27 S1, DT/R
S1 (modo mximo) idem a S0.
DT/R (modo mnimo) uma sinal de controle para os buffers transceptores 8286/8287
indicando a direo do fluxo de dados. Em nvel 0 indica recepo (leitura) em nvel 1 indica
transmisso de dados (escrita).
Pino 28 S2, M/IO
S2 (modo mximo) idem a S0.
M/IO (modo mnimo) usado para indicar quando uma operao refere-se a memria (nvel 1)
ou E/S (nvel 0).
Pino 29 LOCK, WR
LOCK (modo mximo) indica que outros controladores da via (como processadores) quando
no devem assumir o controle do barramentos. Ativo em nvel 0 pela instruo LOCK, mantm
este estado at o final da prxima instruo. Usado para proteo de programas.
WR (modo mximo) ativo em nvel baixo, indica que o microprocessador esta executando uma
operao de escrita na memria ou dispositivo de entrada e sada.
Pino 30 RQ/GT1, HLDA
RQ/GT1 (modo mximo) usado para forar a CPU a ceder a via local, no final da instruo
atual, para outro processador, tem menor prioridade e, e ativo em nvel 0.
HLDA (modo mnimo) o reconhecimento, pela CPU, do pedido de reteno por outro C.I.,
perifricos ou sistema, e ativo em nvel alto.
Pino 31 RQ/GT0, HOLD
RQ/GT0 (modo mximo) usado simultaneamente a RQ/GT1 s que tem maior prioridade
sobre o mesmo.
HOLD (modo mnimo) o pedido de reteno da CPU, por outro sistema ou C.I., para o uso
dos barramentos de dados e de endereos, ativo em terceiro estado os barramentos locais e as
linhas de controle.

11
Microprocessadores 8086/8088

O estado de reteno gera a alta impedncia dos barramentos (3 estado). O estado de


PARADA (HALT), no.
Pino 32 RD sinal ativado em nvel 0 que indica que o microprocessador esta efetuando uma
operao de leitura de memria ou dispositivo de E/S.

8088

8088

A14
A13

GND
AD 14
AD 13

1
2
3

40
39
38

VCC
AD 16
A16/S8

A12
A11
A10
A9

AD 12
AD 11
AD 10
AD 9

37
36
35
34

A17/S4
A18/S5
A19/S6
BME/S7

A8

AD 8
AD 7
AD 6
AD 5
AD 4

8
9
10
11
12

33

MN/MX
RD
RQ/GT0, HOLD
RQ/GT1, HODA
LOCK, WR

AD 3
AD 2

13

AD 1
AD 0
NMI

15
16
17

INTR
CLK

18
19

GND

20

5
6
7

14

8086

32
31
30
29
28
27
26
25
24
23

S2, M/WR
S1, DT/R
S0, DEN
QS 0, ALE
QS 1, INTA
TEST

22

READY

21

RESET

A15

SS 0

S2, I0/M

12
Microprocessadores 8086/8088

PINAGEM DAS CPUs 8086/8088


As colunas laterais cujo titulo l-se 8088 correspondem aos pinos que diferem do
8086. A barra ( / ) separa sinais multiplexados e a vrgula ( , ) sinais de modos
mximo e mnimo de utilizao da CPU.
ENDEREAMENTO FSICO DO 8086

512KB

A19 A1

512KB

FFFF

FFFE

FFFD

FFFC

*
*

*
*

D15 D8

____
BHE

D7 D0

A0

13
Microprocessadores 8086/8088

CICLO DAS VIAS 8086

14
Microprocessadores 8086/8088

REGISTRADOR
SEGMENTO

A17/S4

A16/S3

A0

____
BHE

ENDEREO

1 palavra (16 bits)

1 byte (8 bits)

Byte (8 bits)

ES (extra)
SS (pilha)
CS (cdigo)
DS (dados)

__
IO/ M

__
DT / R

___
SS0

CICLO DA VIA

Reconhecimento de interrupo

Leitura de E / S

Escrita de E / S

Parado (HATL)

Carrega instruo

Leitura da memria

Escrita na memria

Passivo (sem ciclo)

15
Microprocessadores 8086/8088

QS1
0

QS0
0

CARACTERSTICAS
Nenhuma operao
Primeiro byte de uma instruo da fila est
sendo executado

_
S2

_
S1

_
S0

CICLO DA VIA

Reconhecimento de interrupo

Leitura de E / S

Escrita de E / S

Parado (HALT)

Carrega instruo

Leitura da memria

Escrita na memria

Passivo (sem ciclo)

A fila est sendo esvaziada


Um byte subseqente da fila est sendo
executado

16
Microprocessadores 8086/8088

ARQUITETURA INTERNA DOS MICROPROCESSADORES


UNIDADE DE EXECUO (UE)
responsvel por todo o processamento das instrues (decodificao, interpretao e
execuo).
composta por um barramento de dados de 16 bits, pela unidade lgica e aritmtica (ULA);
pelo registrador de flags (16 bits) e por 8 (oito) registradores de 16 bits.

REGISTRADORES DE USO GERAL


AX: o primeiro, que chamado acumulador. dividido em AH, byte mais significativo e AL,
byte menos significativo, podendo cada um deles ser acessados separadamente. Este registrador
e usado para manipulao de dados e endereos de I/O.
BX: o segundo, que chamado registrador de base. Tambm divide-se em BH e BL. Pode ser
usado com base de endereos para manipulao de tabelas, alm de trabalhar com dados.
CX: o terceiro, que o chamado registrador de contagem. Divide-se em CH e CL. Trabalha
com dados e pode realizar contagens de LOOPS.
DX: o ltimo, que chamado registrador de dados. Divide-se em DH e DL. Pode ser usado
como a extenso de AX nas operaes de multiplicao e diviso.

REGISTRADORES DE BASE E NDICE


SP: o ponteiro da pilha (STACK POINTER), que demonstra o topo da memria tipo pilha.
BP: o ponteiro de base (BASE POINTER), que usado para endereamento de memria,
pode conter o endereamento inicial de uma tabela que ser manipulada pela CPU.
SI: o indexador fonte (SOURCE INDEX), que usado para a indexao de tabelas no
endereamento indireto.
DI: o indexador destino (DESTINATION INDEX), tambm usado para a indexao no
endereamento indireto.
FLAGS: So armadas pela UE para refletir certas propriedades do resultado de uma operao
aritmtica ou lgica. Existem certas instrues que habilitam um programa a alterar a sua
execuo dependente dessas condies.
OF (Overflow): Em nvel 1, indica que um bit excedente aritmtico ocorreu, isto , um digito
significativo foi perdido porque o tamanho do resultado excedeu a capacidade da localizao de
destino.

17
Microprocessadores 8086/8088

DF (Direo): Em nvel 1, indica que instrues para cadeias de smbolos so decrementadas


automaticamente (os smbolos so processados do endereo mais alto para o mais baixo). Em
nvel 0, mostra que instrues para cadeias de smbolos so auto-incrementadas.
IF (Interrupo): Em nvel 1, a CPU reconhece sinais de requisio de interrupo externos
(mascarveis). Em nvel 0, os pedidos de requisio esto desabilitados. No representa
interrupes externas no mascarveis ou geradas internamente.
TF (Trap): Em nvel 1, indica que o MP entrou no modo passo-a-passo para observao de
erros (debuggins). Nesse modo a CPU gera uma interrupo interna depois de cada instruo,
permitindo que um programa seja inspecionado depois da execuo de cada instruo.
SF (Sinal): Em nvel 1, representa um nmero negativo (representado em complemento de 2).
Em nvel 0, indica um nmero positivo.
ZF (Zero): Em nvel 1, o resultado da operao lgica ou aritmtica foi 0.
AF (Auxiliar): Em nvel 1, indica que houve vai um dos 4 bits de mais baixa ordem para os 4
bits de mais alta ordem (soma) ou emprestam um dos 4 bits de mais alta ordem (subtrao) de
uma quantidade de 8 bits (LSB). usada em instrues aritmticas decimais.
PF (Paridade): Em nvel 1, o resultado e par, ou seja, nos 8 bits de mais baixa ordem um
nmero par de bits 1. pode ser usado para detectarmos erros na transmisso de dados.
CF (Vai um): Em nvel 1, houve vai um ou emprestou um, no bit de mais alta ordem do
resultado. usada para instrues de soma ou subtrao e rotao.

18
Microprocessadores 8086/8088

ARQUITETURA DO 8086

19
Microprocessadores 8086/8088

UNIDADE DE INTERFACEAMENTO DE VIA (BIU)


O interfaceamento das vias de dados e de endereos com a unidade de execuo, gera todo o
endereamento de memria (1MB) e E / S (64KB).
composto de 4 registradores de segmento, 1 registrador especial, uma estrutura de
armazenamento tipo fila com capacidade de 6 bytes (4 no 8088) de instrues, e um sistema
para gerar o endereamento de 20 bits (1MB), a partir de registrados de 16 bits cada.

Registro de Estado com 9 bits de condies

20
Microprocessadores 8086/8088

REGISTRADORES DE SEGMENTO
CS Segmento de Cdigo: Enderea o segmento onde devem estar as instrues a serem
executadas pela CPU.
SS Segmento de Pilha: Enderea o segmento que esta reservado ao uso da pilha (STACK).
DS Segmento de Dados: Acessa o segmento reservado aos dados a serem manipulados pela
CPU.
ES Segmento Extra: Acessa outro segmento que contm dados, como manipulao de tabelas
e strings.

REGISTRADOR ESPECIAL
IP Ponteiro de Instrues: Aponta para a instruo seguinte no segmento de cdigo.
A fila de instruo, tambm chamada de memria cach ou QUEUE, tem a funo de
armazenar os prximos 6 (ou 4) bytes de instrues a serem executadas pela CPU. uma
estrutura FIFO (First In First Out), usada para aumentar a velocidade de acesso s instrues
pois, enquanto a UE executa uma instruo, a BIU est buscando uma nova instruo, que ser
armazenada na QUEUE para ser executada futuramente pela UE.
-

SEGMENTAO (paginao)
A capacidade de endereamento linear de 1 MB (10 6 bytes) = 512 KW (16) a partir de
registradores de 16 bits e uma caracterstica marcante das CPUs 8086/88.
O endereamento completo de memria, tambm chamado de endereo fsico, obtido atravs
da soma de dois endereos, o de segmento e o de deslocamento, tambm chamado de endereo
lgico (o que vem com a instruo) ou off-set.
O processo consiste em deslocar o contedo do registrador de segmento para a esquerda de 4
bits (o mesmo que multiplicar por 16), sendo que os 4 bits menos significativos so preenchidos
com 0s. A esse endereo (agora j com 20 bits) somado o endereo de deslocamento (16 bits),
que resultar assim o endereo fsico externo.
A notao usual para um endereo segmentado e nnnn:nnnn (n um dgito na base
hexadecimal), onde os 4 dgitos a esquerda dos dois pontos e o segmento (contedo do
registrador de segmento) e os 4 dgitos a direita dos dois pontos e o deslocamento relativo.
A memria sendo acessada por segmentos, permite o seu uso para a multiprogramaao.

21
Microprocessadores 8086/8088

O 1 MB de memria est dividido em 16 segmentos (ou paginas) de 64 KB.


Podemos ter distncias entre pginas maiores do que 64 KB, que podem conter programas e
dados, sem nos arriscarmos a sobrep-los.
Os segmentos lgicos de um programa, por exemplo cdigo e dados, no precisam ser de 664
KB, logo, o uso de mltiplos registros de segmentao, permite um uso eficaz da memria,
desde que seja tomado o cuidado para que durante a execuo do programa no haja
interferncia entre, Poe exemplo, uma rea de dados e uma rea de programa.

MODOS DE ENDEREAMENTO
Os MPs 8086/88 possuem 25 modos de endereamento, dentre os quais destacamos:
1) Endereamento direto: 16 bits de endereo contidos na instruo. Uso tpico e no acesso
de variveis escalares.
EX: MOV AX,(08)
(08) = Contedo do endereo 08
2) Endereamento indireto: O endereo de memria esta contido em um registrador de
base ou de ndice.
EX: MOV AL,(BX)
3) Endereamento baseado: O endereo calculado pela soma de uma constante
(deslocamento) com o contedo de um dos registradores de base BX ou BP. Usado para
enderear estruturas, onde um dos registradores acima aponta para base da estrutura e
com um deslocamento podemos acessar os seus elementos. Esse recurso permite o
trabalho do 8086/88 com compiladores para linguagem de alto nvel e tambm banco de
dados.
EX: MOV AX,(BX + 10)
DS:IP
SS:IP

MOV AX,(BP + 10)


4) Endereamento indexado: O endereo calculado somando uma constante
(deslocamento) ao contedo de um registrador de ndice SI ou DI. Usado para acesso de
elementos de matrizes. Uma constante define o endereo inicial da matriz e o contedo
de um registrador de ndice define o elemento.
EX: MOV AL,VETOR (SI)
5) Endereamento baseado/indexado: O endereo gerado pela soma dos contedos de um
registrador de base com um ndice e uma constante. usado em matrizes de duas
dimenses.
EX: MOV AL,(BX + 2) (SI) RECORD (Label)

22
Microprocessadores 8086/8088

OBS: Endereo efetivo (EE) o deslocamento relativo que a unidade de execuo (UE) calcula
para acessar um operando memria.
Ele tem 16 bits e expressa a distncia do operando em bytes desde o comeo do segmento em
que ele reside. Pode ser calculado de diversas maneiras (EA = effective adress).
a adio de um deslocamento, com o contedo de um registrador de base (BX ou BP) e o
contedo de um registro de ndice (SI ou DI).

23
Microprocessadores 8086/8088

ENDEREAMENTO DA MEMRIA
SSSS0H
0nnnnH
____
SrrrnH

S um dgito de um registro de segmento


n um dgito hexadecimal do endereo efetivo
r o dgito do resultado da soma = endereo

Xxxxxxxxxxxxxxxx0000
0000yyyyyyyyyyyyyyyy
______________
xxxxzzzzzzzzzzzzzzyyyy

Contedo do registro de segmento


Deslocamento relativo
Endereo real apresentado
Memria

nnnn : nnnn

64KB
64KB
1MB

24
Microprocessadores 8086/8088

ACESSO A VRIOS SEGMENTOS, USANDO OS REGISTRADORES DE


SEGMENTOS

25
Microprocessadores 8086/8088

MEMRIA [EPROM]
ENDEREAMENTO
DIRETO

CS: IP
MOV AX, [08]
DS:OFF-SET
DS:OFF-SET

MEMRIA (PILHA)
ENDEREAMENTO
BASEADO
CLCULO
Push BX
MOV BX, [BP+2]
Push AX
MOV AX, BP
MOV BP,SP
*
*
CALL
RET 4

MEMRIA (RAM)
ENDEREAMENTO
INDEXADO
DS: VETOR
SI pr-definido entre [0] e [N]
MOV AL, VETOR [SI]
ARRAY (MATRIZ)

26
Microprocessadores 8086/8088

SOFTWARE
O conjunto de instrues dos MPs 8086/88 podem ser divididos em 6 grupos bsicos: total de
100 instrues.
- movimentao de dados: Fig. A
EXs: MOV AX, CX
AX registro destino
CX registro origem

PUSH ES
ES registro segmento origem

POP DX
DX registro destino

INSTRUES DE TRANSFERNCIA DE DADOS


- MOV
- PUSH
- POP
- XCHG
- XLHT
- IN
- OUT
- LEA
- LDS
- LES
- LAHF
- SAHF
- PUSHF
- POPF

OBJETIVOS GENRICOS
Move um byte ou palavra
Coloca uma palavra endereada no topo da pilha
Tira uma palavra do topo da pilha para destino
Troca um byte ou palavra
Traduz um byte
ENTRADA / SADA
Entrada de byte ou palavra
Sada de byte ou palavra
ENDEREO OBJETO
Carregue endereo efetivo
Carregue indicador usando DS
Carregue indicador usando ES
TRANSFERNCIA DE FLAGS
Carrega o registro AH com as flags
Guarda o registro AH nas flags
Coloca as flags na pilha
Tira as flags da pilha para destino
Fig. A

27
Microprocessadores 8086/8088

- instrues aritmticas: Fig. B


EXs: ADD TEMP, CL
TEMP- reg. Destino
CL- reg. Origem

MUL BL (AL X BL = AX)


BL-reg. Origem
MUL BX (AX X BX = AX, DX)

DIV ALBA (AX, DX / (ALBA) = AX + DX)


ALBA-origem
DX-resto

INSTRUES ARITMTICAS
- ADD
- ADC
- INC
- AAA
- DAA

- SUB
- SBB
- DEC
- NEG
- CMP
- AAS
- DAS
- MUL
- IMUL
- AAM
- DIV
- IDIV
- AAD
- CBM
- CWD

ADIO
Adiciona um byte ou uma palavra
Adiciona um byte ou palavra c/ transporte
Incrementa um byte ou palavra de 1
Ajuste ascii para adio
Ajuste decimal para adio
SUBTRAO
Subtrai byte ou palavra
Subtrai byte ou palavra c/ empresta 1
Decrementa byte ou palavra de 1
Nega byte ou palavra
Compara byte ou palavra
Ajuste ascii para subtrao
Ajuste decimal para subtrao
MULTIPLICAO
Multiplica byte ou palavra
Multiplica inteiros byte ou palavras
Ajuste ascii para multiplicao
DIVISO
Divide byte ou palavra positiva
Divide inteiros byte ou palavra
Ajuste ascii para diviso
Converte byte para palavra
Converte palavra p/ palavra dupla
Fig. B

28
Microprocessadores 8086/8088

- instrues lgicas: Fig. C


EXs: NOT AX
AX-destino

AND AL, BL
AL-destino
BL-origem

INSTRUES LGICAS
- NOT
- AND
- OR
- XOR
- TEST

LGICAS
no um byte ou uma palavra
e um byte ou uma palavra
ou um byte ou uma palavra
ou exclusivo um byte ou uma palavra
testa um byte ou uma palavra
Fig. C

- manipulao com strings: Fig. D


EXs: REP MOVS AX, BX (repete enquanto no for o final da strings de BX AX).
AX-destino
BX-origem

INSTRUES DE STRINGS
- REP
- REFE / REPZ
- REPNE / REPNZ
- MOVS
- MOVSB/MOVSW
- CMPS
- SCAS
- LODS
- STOS

Repete
Repete enquanto for igual / zero
Repete enquanto no for igual / zero
Move carreira de bytes ou palavras
Move cadeira de bytes ou palavras
Compara cadeia de bytes ou palavra
Busca uma cadeia byte ou palavra
Carrega uma cadeia byte ou palavra
Armazena uma cadeia byte ou palavra
Fig. D

29
Microprocessadores 8086/8088

- transferncia de controle: Fig. E:


EXs: CALL DEBUG

JA (CF ou ZF = 0)
desvie-se

DEBUG-nome da rotina
desvie-se

JNS (SF = 0)

INT 3
3 tipo de interrupo

LOOP NOVA (transfere o controle para o operando NOVA se CX = 0)

INSTRUES DE TRANSFERNCIA DE CONTROLE


TRANSFERNCIA INCONDICIONAL
- CALL
Chama uma subrotina
- RET
Volta de uma subrotina
- JMP
Desvia
TRANSFERNCIA CONDICIONAL
- J / JNDE
Desvie se acima / no abaixo nem igual
- JAE / JNB
Desvie se acima ou igual / no abaixo
- JB / JNAE
Desvie se abaixo / no acima nem igual
- JBE / JNA
Desvie se abaixo ou igual / no acima
- JC
Desvie se transporte
- JE / JZ
Desvie se igual / zero
- JE / JNLE
Desvie se maior / no menor nem igual
- JGE / JNL
Desvie se maior nem igual / no menor
- JL / JNGE
Desvie se menor / no maior nem igual
- JLE / JNG
Desvie se menor ou igual / no maior
- JNC
Desvie se no transporte
- JNE / JNG
Desvie se diferente / no zero
- JNO
Desvie se no excesso
- JNP / JPO
Desvie se no paridade / paridade impar
- JNS
Desvie se no sinal
- JO
Desvie se excesso
- JP / JPE
Desvie se paridade / paridade real
- JS
Desvie se sinal
CONTROLE DE ITERAO
- LOOP
Repetio
- LOOP/LOOPZ
Repita se igual / zero
- LOOPNC/LOOPNZ Repita se no igual / no zero
- JCXZ
Desvie se registro CX = 0

30
Microprocessadores 8086/8088

INTERRUPO
Executa rotina de interrupo
Interrupo se houver excesso (overflow,OF=1)
Retorno de interrupo

- INT
- INTO
- IRET

Fig. E

- controle do processador: Fig F


EXs: HLT (parada)

CLD (zera a flag direo)

CMC (complementa a flag carry)

INSTRUES DE CONTROLE DO PROCESSADOR


- STC
- CLC
- CMC
- STD
- CLD
- STI
- CLI
- HLT
- WAIT
- EXC
- LOCK
- NOP

OPERAES NAS FLAGS


Arma a flag transporte (carry)
Zera a flag transporte (carry)
Complementa a flag transporte (carry)
Arma a flag direo
Zera a flag direo
Arma a flag habilitao de interrupo
Zera a flag habilitao de interrupo
SINCRONIZAO EXTERNA
Para at interrupo ou reincio
Espere pelo pino test ativo
Fuga escape para o processador externo
Tranque a via durante a prxima instruo
NENHUMA OPERAO
Nenhuma operao
Fig. F

31
Microprocessadores 8086/8088

- manipulao de bits: Fig. G


EXs: SHR SI 1
SI-destino
1-contagem

(desloca os bits do registrador SI, para a direita de 1 bit).

INSTRUES DE TRANSFERNCIA DE CONTROLE


TRANSFERNCIA INCONDICIONAL
CALL
Chama uma rotina
RET
Volta de uma rotina
JMP
Desvia
TRANSFERNCIA CONDICIONAL
JR/JNBE
Desvie se acima / no abaixo nem igual
JAB/JNB
Desvie se acima ou igual / no abaixo
JB/JNAE
Desvie se abaixo / no acima nem igual
JBE/JNA
Desvie se abaixo ou igual no acima
JC
Desvie se transporte
JE/JZ
Desvie se igual / zero
JE/JNLE
Desvie se maior / no menor nem igual
JGE/JNC
Desvie se maior ou igual / no menor
JL/JNGE
Desvie se menor / no maior nem igual
JLE/JNG
Desvie se menor ou igual / no maior
JNC
Desvie se no transporte
JNE/JNZ
Desvie se diferente / no zero
JNO
Desvie se no excesso
JNP/JPO
Desvie se no paridade / paridade impar
JNS
Desvie se no sinal
JO
Desvie se excesso
JP/JPE
Desvie se paridade / paridade par
JS
Desvie se sinal
CONTROLE DE ITERAO
LOP
Repetio
LOOP/LOOPZ
Repita se igual / zero
LOOPNC/LOOPNZ Repita se no igual / no zero
JCXZ
Desvie se registro CX = 0
INTERRUPO
INT
Interrompa
INTO
Interrompa se excesso
IRET
Retorno de interrupo
Fig. G

32
Microprocessadores 8086/8088

As instrues de movimentao de dados, aritmticas e lgicas podem operar com constantes,


registradores ou posies de memria, usando qualquer uma das funes de endereamento
citadas anteriormente.
A instruo aritmtica compe-se em 4 operaes bsicas, podendo ser operaes com 8 ou 16
bits, nmeros positivos e negativos (aritmtica sinalizada com valores na notao de
complemento 2).
Os MPs 8086/88 ainda executam as 4 operaes aritmticas bsicas em decimal, atravs da
utilizao das instrues de ajuste decimal.
As instrues lgicas tambm podem utilizar operandos de 8 ou 16 bits.
Tanto as operaes lgicas como as aritmticas (com exceo da multiplicao e diviso)
podem ter como operandos qualquer um dos registradores, com exceo dos registradores de
segmentos, e o resultado da operao e colocado em um dos registradores usados.
Operaes com strings permitem o trabalho com blocos de dados contidos em memria.
Podemos atravs dessas instrues movimentar ou comparar, por exemplo, 2 posies de
memria, o que no e permitido com as instrues normais. Em conjunto com uma instruo de
prefixo (por exemplo REPEAT), uma operao de strings pode ser repetida o nmero de
vezes dado pelo registrador CX (contagem de LOOPS-repetidos). Com isso obtemos de forma
bastante simples transferncia de uma rea de memria para outra, ou, comparao entre duas
reas.
As instrues de transferncia de controle podem ser divididas em;
- Desvios incondicionais: chamadas e retorno de sub-rotinas;
- Desvios condicionais;
- Desvio de LOOP;
- Interrupo por software.
As instrues de controle do processador permitem manipular FLAGS forar a parada de
processador (HALT), etc.
Segmentos DEFAULT so determinados quando no existe pr-definio (prefixo override), de
registradores de segmento em algumas instrues. Tem prioridade de armazenamento em
operaes executadas pela CPU. Indicadores (ponteiros) para a memria normalmente usam o
registrador DS como base de referencia; excees incluem SP e BP que usam SS. Instrues
strings que baseiam SI e DI em ES alm de DS, e IP que sempre referencia CS.

33
Microprocessadores 8086/8088

As codificaes destes prefixos em instrues so:


CS = 2EH

ES = 26H

DS = 3EH

SS = 36H

As codificaes dos registradores de segmento, implcitos numa instruo (DEFAULT), dentro


do modo de endereamento so:
ES = 00

1 BYTE

CS = 01

2 BYTE

: COD. DE OPER. : 7 6 5 4 3 2 1 0 :
:
byte de modo

SS = 10

DS = 11

3 BYTE

DADOS :

4 BYTE

DADOS

:----------------------- deslocamento --------------------

--------:
de
endereamento
7 6 = mod. (operao em memria ou registradores)
5 4 3 = reg. (registrador referenciado)
2 1 0 = r/m (modo de endereamento)
Conclumos que importantes novas instrues foram adicionadas as CPUs 8086/88, (em relao
ao 8080 e 8085), que em muito simplificaram e estendem o alcance do processamento. As
instrues so:
- multiplicao e diviso de nmeros binrios relativos (inteiros) e positivos, e tambm de
decimais, na forma no codificada (os dgitos 0-9 representados num byte);
- transfira, busque (um elemento, scan) e compare so operaes para cadeias com at 64 KB
de comprimento;
- teste de bits no destrutivos;
- traduo de bytes entre um cdigo e outro;
- interrupo gerada por software;
- um grupo de instrues que pode ajudar ou coordenar as atividades de sistemas de
multiprocessadores.
O nmero de clocks, dado em tabela, para cada instruo, e considerado aps a instruo j
estar na fila interna da CPU (cach) pois, quando se executa uma instruo a prxima j esta na
fila.

34
Microprocessadores 8086/8088

No existe transferncia de contedo de memria para memria.


No existe transferncia de contedo de um certo endereo para um registro de segmento.
EX: MOV SS, (05) no existe
Toda a vez que trabalhamos com pilha o ponteiro (SP) estar sempre apontando para um
endereo decrementado da ltima posio utilizada.

35
Microprocessadores 8086/8088

INTERRUPES
Uma interrupo para o fluxo normal de programa transfere o controle da CPU para uma rotina
de servio cujo endereo, ou vetor, ou indicador, est armazenado nos endereos de 0 3FFH
da memria ( = 1KB = 256 interrupes de 4 bytes) que uma tabela de 256 vetores de
interrupo. (CS : IP).

Cada tipo de interrupo tem um nmero para identific-la. Esse nmero e multiplicado por 4
pela CPU e o resultado e o endereo do primeiro byte do vetor de interrupo (endereo da
rotina).
As interrupes podem ser indicadas:
1 por perifricos na linha INTR (mascarvel) e NMI (no mascarvel);
2 atravs da execuo de instruo apropriada (INTO, INTn);
3 pela CPU em certos casos (erro de diviso, execuo passo-a-passo), Fig. A.
Quando uma rotina de interrupo e iniciada o registro de condies (flags), CS e IP so
armazenadas (PUSH) na pilha e as flags TF e IF so zeradas. Logo depois a CPU chama a
rotina de servio carregando o vetor da tabela (tipo *4) nos registros CS e IP. Ao terminar,
restaura as flags, CS e IP com os valores, salvos h pilha (IRET).
A prpria rotina pode reabilitar IF para que pedidos de interrupo sejam aceitos na linha INTR
(uma rotina de interrupo pode ser sempre interrompida por um pedido na linha NMI).
Toda rotina de interrupo deve ser terminada por uma instruo IRET. Essa instruo assume
que a pilha esta nas mesmas condies de quando foi iniciada. Ela carrega (POP) as 3 words do
tipo da pilha nos registros CS, IP e flags, logo, voltando a instruo que seria executada quando
o fluxo foi interrompido.
Portas de um sistema, so dispositivos de E / S de informaes do sistema com perifricos. So
acessadas atravs de endereamento por instrues de memria ou de E / S (IN, OUT).
E / S mapeada em memria.
Vantagens:
- utilizar o poderoso set de instrues dos MPs 8086/88;
- tem a seu dispor 1 MB de endereo.

36
Microprocessadores 8086/8088

Desvantagens:
- instrues maiores e mais lentas.
E / S no mapeada em memria.
Vantagens:
- utiliza instrues mais rpidas (IN, OUT);
- tem compatibilidade com instrues de 8 bits, no caso do MP 8088.
Desvantagens:
- s tem duas instrues e est restrito aos modos de endereamento das mesmas;
- s pode acessar 64 KB de endereos.

37
Microprocessadores 8086/8088

PROGRAMA: Preencher 100 bytes partir de BUFFER com 00H

MOV AX, 0
MOV BX, BUFFER
LOOPP1 MOV [BX] (carrega 2 bytes com 0 a
partir de BUFFER)
INC BX
INC BX
INC AX
CMP AX, 50d
JB LOOP 1

ORIGEM DAS INTERRUPES

38
Microprocessadores 8086/8088

BIBLIOGRAFIA
Ttulo : 8086 8088 Microprocessadores
Autor : Morgan/Waite
Editora: Mc GranHill

Ttulo : Hardware e Software de Sistemas Baseados em MP 8086/8088


Autor : Roberto Gleman Waissman
Editora: rica

Ttulo : IBM PC-xt


Autor : Raphael Machado Silva Salvador
Editora: rica

Ttulo : Microprocessadores
Autor : Eng. Vidal Pereira da Silva Junior
Editora: rica

Ttulo : Perifricos Magnticos Para Computadores


Autor : Raimondo Cuocolo
Editora: rica

Você também pode gostar