Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Assembly cap3, Notas de estudo de Engenharia Telemática

Organização do microprocessador 8086

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 30/11/2010

samuel-santos-22
samuel-santos-22 🇧🇷

4.6

(41)

262 documentos

1 / 11

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Cap3 – Organização do Microprocessador 8086
Página 1 de 11
3. Organização do microprocessador 8086
3.1 A família Intel 86 (ou 80X86)
Processador Co-proc.
Ano de
introdução No.
de bits
No. de
transistores Velocidade
(MHz)
4004 - 1971 4 2.205
-
8008 - 1972 8 3.300
-
8080 - 1974 8 4.500
-
8085 - 1978 8 6.200
-
8086 8087 1978 16 29.000
4,77 a 10
8088 8087 1979 8 (16) 29.000
4,77 a 10
186 8087 1982 16 100.000
8 a 16
188 8087 1982 8 (16) 100.000
8 a 16
286 287 1982 16 134.000
8 a 12,5
386 (368 DX)
387 1985 32 375.000
16 a 40
386 SX 387 SX 1988 16 (32) 375.000
16, 20
486 (486 DX)
- 1989 32 1.200.000
25, 33, 50
486 SX 487 SX 1991 32 1.200.000
20, 25
486 DX2 - 1992 32 ?
66
486 DX4 - 1993 32 ?
99
Pentium - 1993 32/64 3.100.000
60, 66, 90
Pentium
Celeron -
Pentium Pro -
Pentium 2 - Pesquise e ...
Pentium 3 - Complete !
1 GHz ?
Pentium 4
O primeiro IBM PC foi construído com o 8088 (versão de 8 bits do 8086).
Todo software produzido para a família 80x86 mantem compatibilidade
com os futuros microprocessadores.
pf3
pf4
pf5
pf8
pf9
pfa

Pré-visualização parcial do texto

Baixe Assembly cap3 e outras Notas de estudo em PDF para Engenharia Telemática, somente na Docsity!

3. Organização do microprocessador 8086

3.1 A família Intel 86 (ou 80X86)

Processador Co-proc. Ano de introdução

No. de bits

No. de transistores

Velocidade (MHz) 4004 - 1971 4 2.205 - 8008 - 1972 8 3.300 - 8080 - 1974 8 4.500 - 8085 - 1978 8 6.200 - 8086 8087 1978 16 29.000 4,77 a 10 8088 8087 1979 8 (16) 29.000 4,77 a 10 186 8087 1982 16 100.000 8 a 16 188 8087 1982 8 (16) 100.000 8 a 16 286 287 1982 16 134.000 8 a 12, 386 (368 DX) 387 1985 32 375.000 16 a 40 386 SX 387 SX 1988 16 (32) 375.000 16, 20 486 (486 DX) - 1989 32 1.200.000 25, 33, 50 486 SX 487 SX 1991 32 1.200.000 20, 25 486 DX2 - 1992 32? 66 486 DX4 - 1993 32? 99 Pentium - 1993 32/64 3.100.000 60, 66, 90 Pentium Celeron

Pentium Pro - Pentium 2 - Pesquise e ... Pentium 3 - Complete! 1 GHz? Pentium 4

  • O primeiro IBM PC foi construído com o 8088 (versão de 8 bits do 8086).
  • Todo software produzido para a família 80x86 mantem compatibilidade com os futuros microprocessadores.

3.2 Arquitetura do microprocessador 8086

(referir ao livro-texto, figura 1.6, página 8)

Configuração interna do 8086

  • barramento de endereços é comum com o de dados: 20 bits
  • endereços: 20 bits, 2^20 = 1.048.576 combinações = 1 MByte (1 MB)
  • dados: utiliza somente 16 bits do barramento comum
  • barramento de controle: 16 bits independentes do barramento comum

3.2.1 Registradores de dados:

AX, BX, CX e DX

  • são todos registradores de 16 bits
  • utilizados nas operações aritméticas e lógicas
  • podem ser usados como registradores de 16 ou 8 bits

AH e AL 8 registradores de 8 bits cada BH e BL CH e CL "H" -> byte alto ou superior DH e DL "L" -> byte baixo ou inferior

AX (acumulador) -> utilizado como acumulador em operações aritméticas e lógicas; em instruções de E/S, ajuste decimal, conversão, etc

BX (base) -> usado como registrador de BASE para referenciar posições de memória; BX armazena o endereço BASE de uma tabela ou vetor de dados, a partir do qual outras posições são obtidas adicionando-se um valor de deslocamento ( offset ).

CX (contador) -> utilizado em operações 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 operações de multiplicação para armazenar parte de um produto de 32 bits, ou em operações de divisão, para armazenar o resto; utilizado em operações de E/S para especificar o endereço de uma porta de E/S.

3.2.2 Registradores de segmento:

CS, DS, SS e ES

  • são todos registradores de 16 bits
  • o endereçamento no 8086 é diferenciado para:
    • código de programa (instruções)
    • dados
    • pilhas
  • segmento: é um bloco de memória de 64 KBytes, endereçável.
  • durante a execução de um programa no 8086, há 4 segmentos ativos :

segmento de código: endereçado por CS segmento de dados: " DS segmento de pilha: " SS (stack segment) segmento extra: " ES

3.2.3 Registrador apontador de instrução:

IP ( instruction pointer )

  • utilizado em conjunto com CS para localizar a posição, dentro do segmento de código corrente, da próxima instrução a ser executada;
  • IP é automaticamente incrementado em função do número de bytes da instrução executada.

3.2.5 Registrador de sinalizadores (FLAGS):

  • indica o estado do microprocessador durante a execução de cada instrução;
  • conjunto de bits individuais, cada qual indicando alguma propriedade;
  • subdividem-se em: FLAGS da estado ( status ) e FLAGS de controle.
  • organização: 1 registrador de 16 bits 6 FLAGS de estado 3 FLAGS de controle 7 bits não utilizados (sem função)

OF DF IF TF SF ZF AF PF CF

Para maiores detalhes, veja o Cap. 5.

3.2.6 Os registradores do 8086 (visão geral):

Registradores de dados

AH AL AX BH BL BX CH CL CX DH DL 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 são de 16 bits
  • AH -> byte alto de AX; AL byte baixo de AX; ambos de 8 bits

Formato de endereço lógico -> segmento:offset

Exemplo de endereçamento

Dado o endereço lógico: 8350:0420h

reconhece-se: segmento no. 8350h deslocamento 0420h

o endereço físico vale:

8350 0 h -> desloca-se 1 casa hexa (4 casas binárias)

  • 0420h -> soma-se o deslocamento 83920h -> endereço físico resultante (20 bits)

Graficamente:

8 3 5 0 | 0 8 3 5 0 CS (base) <- endereço lógico 19 4 3 0 15 0

+ 0 4 2 0 0 4 2 0 IP (offset) 15 0 15 0

8 3 9 2 0 <- endereço físico 19 0

para a memória

Tipos de referência à memória Identificador de segmento

Identificador alternativo

Offset

Busca de instrução CS - IP Operação com pilha SS - SP, BP Variável (dado) DS CS, SS, ES * Fonte para instrução com string DS CS, SS, ES SI Destino para instrução com string ES - DI

  • O identificador de segmento (base) aponta para uma região da memória;
  • O offset aponta para um local dentro deste segmento;
  • O offset é aquele que aparece nos programas como o endereço dos dados, rótulos e endereços de instruções;
  • O identificador de segmento aparece somente quando um novo segmento precisa ser especificado;
  • Segmentação é um esquema muito útil para gerar códigos relocáveis ;
  • A maioria das variáveis está localizada no segmento de dados ; podem também estar localizadas em outros segmentos;
  • Endereços lógicos diferentes podem representar o mesmo endereço físico;

ex: base 028Ch offset 0003h endereço físico -> 028C3h

base 0287h offset 0053h endereço físico -> 028C3h.