Você está na página 1de 2

Processador 8086

Por mais incrvel que parea, apesar da existncia deste processador, a IBM resolveu usar o 8088 por dois motivos: manter os custos do PC reduzidos e manter a compatibilidade com chips perifricos. que o 8088 aceitava um barramento interno de 16 bits (como o 8086), mas seu barramento externo era de 8 bits. O processador 8088 foi implementado com 29.000 transistores e compactado num pacote de 40 pinos - coisa difcil de imaginar se o compararmos com processadores atuais de milhes de transistores e centenas de pinos. Interessante saber que, entendendo-se a arquitetura do 8088 (ou 8086), fica fcil entender a arquitetura dos processadores mais modernos. O modelo de programao bsico continua sendo o mesmo e todos os recursos em nvel de aplicativos, como registradores, tipos de dados e modo de endereamento, tm sido simplesmente utilizados como extenses do conjunto de recursos do 8086 original.

Registradores
Se nosso intuito projetar um sistema operacional, ento um mnimo de conhecimento sobre processadores se faz necessrio. Vamos comear pelo mais fcil, os primeiros processadores de 16 bits. Apareceram nos primeiros PCs IBM e compatveis. Eram bastante idnticos, o 8086 tinha 16 linhas de dados, fornecendo ao barramento de dados uma interface de 16 bits. Por outro lado, o 8088 s apresentava 8 linhas de dados, com uma interface de 8 bits. Como se nota, o 8086 era mais rpido, uma vez que era capaz de transportar uma palavra de 16 bits inteira de ou para o barramento de dados numa operao. J o 8088 precisava de duas operaes de 1 byte (8 bits) cada. Fora isso, o funcionamento dos dois processadores era similar, utilizando o mesmo conjunto de instrues e contendo 20 linhas de endereamento, ou seja, acesso a 1Mb. Todos os membros da famlia x86 contm um registrador FLAGS, que identifica o estado atual do processador. Os bits de 12 a 15 deste registrador esto sempre ativados (ativado significa conter o valor 1) no caso do 8086/8088, no importando o quanto se tente desativ-los. O que o programa WHATCPU faz tentar ativar os bits 12 e 14 e limpar os bits 13 e 15, utilizando um sequncia de instrues que copia os valores do registrador de e para a pilha, usando instrues AND e OR. Se os bits 12 a 15 permanecerem ativados, ento o processador deve ser um 8086. Anlogos a posio de memrias, porm muito mais velozes, os registradores internos so os componentes que so trabalhados numa programao de baixo nvel. Os processadores possuem uma linguagem baseada em

cdigos onde cada cdigo representa uma instruo, que por sua vez representa uma operao que pode ser feita utilizando esses registradores. Todo dado que o processador tem que processar deve, obrigatoriamente, ser armazenado nos registradores, quanto mais registradores o processador tiver, mais informaes ele poder processar ao mesmo tempo. Os processadores 8086, 8088 e 80286, possuem, por exemplo, registradores internos de 16 bits: AX,BX,CX,DX,SI,DI,BP,SP,CS,SS,DS,ES,IP e FLAGS como demonstrado na figura abaixo.

Exemplo do processador 8086


Neste processador tm-se duas linhas de pedido de interrupes, sendo uma delas NMI uma linha de pedidos no mascarveis e a outra IRQ a linha de pedidos utilizada pela maioria das interfaces de IO. Um controlador de interrupes controla, externamente ao CPU, e decide qual o pedido a colocar a cada momento na linha IRQ. Um pedido na linha NMI aceite logo que reconhecida pelo CPU, no fim da execuo da instruo corrente. Um pedido na linha IRQ s reconhecido se o bit IF do CPU estiver a 1. Enquanto tal no acontecer, o pedido mantm-se em vigor, atravs da interface do perifrico. Ao aceitar uma interrupo, o CPU do 8086: empilha flags FR flags register (2 bytes) e PC (CS e IP, 4 bytes), desligando as interrupes (IF=0) afecta CS e IP com novos valores obtidos de uma tabela de vectores de interrupo, que ocupa as primeiras 1024 posies de memria central A entrada da tabela utilizada para carregar os valores de CS e IP tem um endereo inicial calculado por 4*n, em que n o nmero inteiro, que identifica cada interface hardware e que colocado no bus pela interface que gerou o pedido. A multiplicao por 4 deve-se ao facto de CS e IP ocuparem um total de 4 bytes em memria. O 8086 permite valores de n at 255, sendo cada nmero associado a uma interface e havendo alguns nmeros reservados, no incio da tabela (n inferior a 32), para tipos especiais de interrupes. Por exemplo, n=2 para a linha NMI.