Specifications
MICROPROCESSADORES
O MICROPROCESSADOR 8086
1
Luís Miguel Charrua Figueiredo 1 - 8 E.N.I.D.H.
CS
SS
DS
ES
Code Segment
Stack Segment
Data Segment
Extra Segment
64 KB
+Offset
Segment
Register File
FFFFFh
XXXX0h
00000h
Figura 4 - Mapa de memória exemplificativo dos segmentos e offset.
Uma base e um deslocamento formam um endereço segmentado, o 8086 converte o endereço
segmentado de 32 bits num endereço de 20 bits. Na realidade o que acontece é que o CPU
desloca a base 4 bits à esquerda e adiciona-lhe o valor de deslocamento.
ex.: o endereço 1666:0001 = 16660h+0001h=16661h
O espaço de memória do 8086 é implementado por dois bancos de memória de 512 Kbytes
independentes. Denominados por banco par e banco ímpar.
Os bits de endereço de A
1
a A
19
seleccionam e acedem a uma posição de memória, assim sendo,
estas linhas são aplicadas aos dois bancos em paralelo. A
0
e BHE (Bank High Enable) são usadas
como sinais de selecção do banco, o valor ‘0’ em A
0
identifica um endereço par de um byte de
dados e faz com que esse banco fique acessível. Por outro lado, o
BHE a ‘0’ permite ao banco
impar ser acedido por um endereço impar de um byte de dados. Cada um dos bancos de memória
providência metade dos 16 bits de uma palavra de dados.
Quando o 8086 acede a uma palavra de dados de 16 bits num endereço par, os dois bancos são
acedidos ao mesmo tempo, tanto o A
0
como o BHE estão no nível lógico ‘0’. Neste caso, um byte
de dados é transferido ou recebido pelo banco par e pelo banco impar simultaneamente. Esta
palavra de 16 bits é transferida pela linha de dados completa (D
0
a D
15
). Quando a memória for
acedida por endereço par, diz-se que os bancos de memória estão alinhados, e as operações de
transferência fazem-se apenas num ciclo de
bus.










