Você está na página 1de 11

Cap3 Organizao do Microprocessador 8086

3. Organizao do microprocessador 8086 3.1 A famlia Intel 86 (ou 80X86)

Processador Co-proc. 4004 8008 8080 8085 8086 8088 186 188 286 386 (368 DX) 386 SX 486 (486 DX) 486 SX 486 DX2 486 DX4 Pentium Pentium Celeron Pentium Pro Pentium 2 Pentium 3 Pentium 4

8087 8087 8087 8087 287 387 387 SX 487 SX -

Ano de introduo 1971 1972 1974 1978 1978 1979 1982 1982 1982 1985 1988 1989 1991 1992 1993 1993

No. de bits 4 8 8 8 16 8 (16) 16 8 (16) 16 32 16 (32) 32 32 32 32 32/64

No. de Velocidade transistores (MHz) 2.205 3.300 4.500 6.200 29.000 4,77 a 10 29.000 4,77 a 10 100.000 8 a 16 100.000 8 a 16 134.000 8 a 12,5 375.000 16 a 40 375.000 16, 20 1.200.000 25, 33, 50 1.200.000 20, 25 ? 66 ? 99 3.100.000 60, 66, 90

Pesquise e ... Complete !

1 GHz ?

O primeiro IBM PC foi construdo com o 8088 (verso de 8 bits do 8086). Todo software produzido para a famlia 80x86 mantem compatibilidade com os futuros microprocessadores.

Pgina 1 de 11

Cap3 Organizao do Microprocessador 8086

3.2 Arquitetura do microprocessador 8086

(referir ao livro-texto, figura 1.6, pgina 8)

Configurao interna do 8086

barramento de endereos comum com o de dados: 20 bits endereos: 20 bits, 220 = 1.048.576 combinaes = 1 MByte (1 MB) dados: utiliza somente 16 bits do barramento comum barramento de controle: 16 bits independentes do barramento comum

Pgina 2 de 11

Cap3 Organizao do Microprocessador 8086

O 8086 divide-se internamente em duas unidades.

Execution Unit (EU) - unidade de execuo:

UAL - realiza operaes aritmticas de +, -, X, / e operaes lgicas AND, OR, NOT, XOR; contem registradores para armazenamento temporrio durante as operaes, que so endereados por nome.

BUS Interface Unit (BIU) - unidade de interface de barramento:


faz a comunicao de dados entre a EU e o meio externo (memria, E/S); controla a transmisso de sinais de endereos, dados e controle; controla a sequncia de busca e execuo de instrues; mecanismo de pre-fetch: busca at 6 instrues futuras deixando-as na fila de instrues (instruction queue) -> aumento de velocidade.

Registradores: elementos de memria muito rpida dentro da CPU.


de dados, ou de propsito geral de endereos (segmentos, apontadores e ndices) sinalizadores de estado e controle (FLAGS)

Pgina 3 de 11

Cap3 Organizao do Microprocessador 8086

3.2.1 Registradores de dados: AX, BX, CX e DX


so todos registradores de 16 bits utilizados nas operaes aritmticas e lgicas podem ser usados como registradores de 16 ou 8 bits AH e AL BH e BL CH e CL DH e DL 8 registradores de 8 bits cada "H" -> byte alto ou superior "L" -> byte baixo ou inferior

AX (acumulador) -> utilizado como acumulador em operaes aritmticas e lgicas; em instrues de E/S, ajuste decimal, converso, etc

BX (base) ->

usado como registrador de BASE para referenciar posies de memria; BX armazena o endereo BASE de uma tabela ou vetor de dados, a partir do qual outras posies so obtidas adicionando-se um valor de deslocamento (offset).

CX (contador) -> utilizado em operaes iterativas e repetitivas para contar bits, bytes ou palavras, podendo ser incrementado ou decrementado; CL funciona como um contador de 8 bits.

DX (dados) -> utilizado em operaes de multiplicao para armazenar parte de um produto de 32 bits, ou em operaes de diviso, para armazenar o resto; utilizado em operaes de E/S para especificar o endereo de uma porta de E/S.

Pgina 4 de 11

Cap3 Organizao do Microprocessador 8086

3.2.2 Registradores de segmento: CS, DS, SS e ES


so todos registradores de 16 bits o endereamento no 8086 diferenciado para: - cdigo de programa (instrues) - dados - pilhas segmento: um bloco de memria de 64 KBytes, enderevel. durante a execuo de um programa no 8086, h 4 segmentos ativos: segmento de cdigo: segmento de dados: segmento de pilha: segmento extra: endereado por " " " CS DS SS (stack segment) ES

3.2.3 Registrador apontador de instruo:

IP (instruction pointer)

utilizado em conjunto com CS para localizar a posio, dentro do segmento de cdigo corrente, da prxima instruo a ser executada; IP automaticamente incrementado em funo do nmero de bytes da instruo executada.

Pgina 5 de 11

Cap3 Organizao do Microprocessador 8086

3.2.4 Registradores apontador de pilha e de ndice: Armazenam valores de deslocamento de endereos (offset), a fim de acessar regies da memria muito utilizadas: pilha, blocos de dados, arrays e strings. Podem ser utilizados em operaes aritmticas e lgicas, possibilitando que os valores de deslocamento sejam resultados de computaes anteriores.

SP (stack pointer - apontador de pilha) utilizado em conjunto com SS, para acessar a rea de pilha na memria; aponta para o topo da pilha.

BP (base pointer - apontador de base) o ponteiro que, em conjunto com SS, permite acesso de dados dentro do segmento de pilha.

SI (source index - ndice fonte) usado como registrador ndice em alguns modos de endereamento indireto, em conjunto com DS.

DI (destination index - ndice destino) similar ao SI, atuando em conjunto com ES.

Obs: SI e DI facilitam a movimentao de dados sequenciados entre posies fonte (indicado por SI) e posies destino (indicado por DI).

Pgina 6 de 11

Cap3 Organizao do Microprocessador 8086

3.2.5 Registrador de sinalizadores (FLAGS):

indica o estado do microprocessador durante a execuo de cada instruo; conjunto de bits individuais, cada qual indicando alguma propriedade; subdividem-se em: FLAGS da estado (status) e FLAGS de controle. organizao: 1 registrador de 16 bits 6 FLAGS de estado 3 FLAGS de controle 7 bits no utilizados (sem funo)

15 14 13 12

11 10 9 OF DF IF

8 7 TF SF

6 ZF

4 AF

2 PF

0 CF

Para maiores detalhes, veja o Cap. 5.

Pgina 7 de 11

Cap3 Organizao do Microprocessador 8086

3.2.6 Os registradores do 8086 (viso geral):

Registradores de dados AH BH CH DH AL BL CL DL AX BX CX DX

Registradores de segmentos CS DS SS ES Registradores ndices e apontadores SI DI SP BP IP Registrador de sinalizadores FLAGS

O registrador IP corresponde ao Contador de Programa - PC Todos os registradores so de 16 bits AH -> byte alto de AX; AL byte baixo de AX; ambos de 8 bits

Pgina 8 de 11

Cap3 Organizao do Microprocessador 8086

Apndice Gerenciamento de memria por segmentao

O 8086 possui 20 bits para acessar posies de memria fsica 220 = 1.048.576 bytes (1 Mbyte) posies endereveis Exemplos de endereos: 0000 0000 0000 0000 0000b 0000 0000 0000 0000 0001b 0000 0000 0000 0000 0010b 0000 0000 0000 0000 0011b .... 1111 1111 1111 1111 1111b -> -> -> -> -> 00000h 00001h 00002h 00003h FFFFFh

-> 5 dgitos hexa

O 8086 opera internamente com 16 bits Problema: Como gerar endereos com 20 bits? Soluo: Utilizar a idia de segmentao de memria!

Segmento de memria:

bloco de 64 Kbytes de posies de memria consecutivas 216 = 65.536 bytes (64 Kbytes) Segmento de memria identificado por um nmero de segmento Uma posio de memria especificada pelo nmero de segmento e por um deslocamento (offset) em relao ao incio do segmento

Pgina 9 de 11

Cap3 Organizao do Microprocessador 8086

Formato de endereo lgico

->

segmento:offset

Exemplo de endereamento

Dado o endereo lgico: reconhece-se:

8350:0420h 8350h 0420h

segmento no. deslocamento

o endereo fsico vale: 83500h 0420h 83920h -> desloca-se 1 casa hexa (4 casas binrias) -> soma-se o deslocamento -> endereo fsico resultante (20 bits)

Graficamente: 8
19

0 |0
43 0

8
15

0 CS (base)
0

<- endereo lgico

0
15

0
0

0
15

0 IP (offset)
0

8
19

0
0

<- endereo fsico

para a memria

Pgina 10 de 11

Cap3 Organizao do Microprocessador 8086

Tipos de referncia memria Busca de instruo Operao com pilha Varivel (dado) Fonte para instruo com string Destino para instruo com string

Identificador Identificador de segmento alternativo CS SS DS CS, SS, ES DS CS, SS, ES ES -

Offset IP SP, BP * SI DI

O identificador de segmento (base) aponta para uma regio da memria; O offset aponta para um local dentro deste segmento; O offset aquele que aparece nos programas como o endereo dos dados, rtulos e endereos de instrues; O identificador de segmento aparece somente quando um novo segmento precisa ser especificado; Segmentao um esquema muito til para gerar cdigos relocveis; A maioria das variveis est localizada no segmento de dados; podem tambm estar localizadas em outros segmentos;

Endereos lgicos diferentes podem representar o mesmo endereo fsico; base offset base offset 028Ch 0003h 0287h 0053h

ex:

endereo fsico ->

028C3h

endereo fsico ->

028C3h.

Pgina 11 de 11