Microprocessador 8086/8088, parte 2 : Perspectivas

    O grande salto na evolução foi o fato destes microprocessadores tratarem informações em múltiplos de 16 bits, ao invés de 8 bits. Antes, 255 era o maior número representado com 8 bits. Com os de 16 bits, esse número aumentou para 65535, o que aumentou a precisão na forma de representação dos números.

O 8086/8088 continua a usar o conjunto de instrução com orientação de bytes. Ou seja, uma instrução em linguagem de máquina para o 8086/8088 utiliza de 1 a 6 bytes de memória. Além disso, o processador pega as instruções com razão de 2 bytes por vez.

Para que ocorresse essa evolução toda, foi necessário um novo processo de manufatura de silício, denominado HMOS, implementado no 8086, que permitiu a colocação de um maior número de transistores, cerca de 70mil. Com este número de transistores, foi possível a inclusão de instruções de multiplicação e divisão direto na pastilha(onde ficam os transistores) e de uma sofisticada estrutura de interrupção.

O aumento na memória também foi significativo, pois antes a memória chegava ao ápice de 64000 bytes. Com 16 bytes era possível ter milhões de bytes, para ler e escrever, o que permitiu a criação de programas mais sofisticados, inclusive sistemas operacionais completos que podiam lidar com essa nova geração de softs.

A grande mudança porém, foi o fato de possuírem pastilhas para funções específicas, como as usadas para lidar com ponto flutuante e funções trigonométricas, quem era opcionais. Ou seja, para E/S, não era necessário a utilização do processador. Essa subdivisão de tarefas veio a se tornar mais comum com o tempo, em todo o ramo tecnológico, em contrapartida aos microprocessadores anteriores, que faziam sozinhos todos os cálculos do sistema.   

Esses processos 'extras' eram feitos no co-processador, que são microprocessadores dedicados, voltados para finalidades específicas. Um exemplo da época, é a pastilha matemática 8087, da Intel, que possui sua própria linguagem de programação.

Essas novas pastilhas de 16 bits permitiam que os programas se movimentassem facilmente pela memória, permitindo que os programas se reconfigurassem no ato da execução, sendo possível a realocação de programas e a utilização de programas de diferentes fornecedores. Eram os primórdios da portabilidade.

As unidades de 16 bits também iniciaram o que hoje chamamos de 'Tratamento de erros', ou seja, quando encontrava alguma instrução absurda, como divisão por zero, o processo era interrompido, uma mensagem enviada ao console e o controle retornava pro usuário.

Por conta desse grande potencial para a época, o sucesso do 8086 foi enorme na utilização de computadores para objetivos pessoais, como: automóveis, fliperamas, lava-louças, rádio, secretárias eletrônicas, máquinas de escrever e a comunicação por som. Além do cunho pessoal, o setor de serviços ganhou muito com os microprocessadores de 16 bits. As aeronaves, por exemplo, se tornaram mais automatizadas, seguras e passaram a ter rotas e dados de vôo muito mais precisos.

E em 1981, um marco na história de todos, na sua também, que está lendo isso através de um computador: a IBM lança seu primeiro computador pessoal, utilizando o 8086. Ele rodava os programas feitos em 8 bits e também foi usado o 8088, que diferenciava-se do 8086 por usar externamente uma via de dados de 8 bits, o que facilitou o uso das comuns e baratas pastilhas de de memória e de E/S de 8 bits, o que deixa o 8088 compatível com várias vias de 8 bits existentes. Porém, internamente, ele é igual ao 8086.


- Visão preliminar do 8086/8088

    O 6 de 8086 se refere a 16bits, e o 8 do 8088 se refere a 8 bits. Ou seja, se referem à    largura da via de dados do hardware. No demais, incluindo o tamanho de dados e instrução, é tudo igual.   

Ambos usam o conceito 'fila de instrução', que é uma parte da pastilha que armazena bytes de uma instrução. Assim, quando o processo anterior terminar, não será necessário pegar muitos bytes de memória, pois toda a instrução já se encontra na fila. Isso faz com que as vias de dados e endereço não estejam sob uso excessivo (comum nos dispositivos de 8 bits, que estão sempre acessando a memória).     A fila do 8086 tem 6 bytes de largura, ao passo que a do 8088 possui apenas 4 bytes, o que evidencia a eficiência do 8086, pois com uma maior largura de banda da via, o número de operações num mesmo intervalo de tempo aumenta, liberando a via para que outros dispositivos possam usá-la.

O 8086 também possui novos registradores. Os registradores do 8080 (HL, BC e DE) são agora BX, CX e DX, que podem ser tratados como pares de registradores de 8 bits como também registradores de 16 bits em relação às operações de 16 bits. O acumulador do 8080, registrador A, tem agora 16 bits e é agora denominado AX, mas ainda pode ser usado como acumulador de 8 bits na parte inferior. Há novos registradores de 16 bits no 8086, os registradores de segmento, CS, DS, SS e ES. Existem ainda o apontador de pilha, o apontador de base e dois registradores de indexação, o de fonte e o de destino.



Para mais detalhes de um Simulador de Microprocessador 8086:


    Não podemos deixar de cita os co-processadores 8087, que fornece operações em ponto flutuante mais rápidas para o 8086 e o 8089, que é o Processador de E/S, que torna mais eficiente a movimentação do bloco de dados.

- Software do 8086

    Com a chegada do 8086/8088, a preocupação maior foi converter os programas do antigo 8080 para este novo e também que, na época, já existiam diversos sistemas operacionais para os computadores de 16 bits e, assim como ainda hoje, existiam diversos problemas de compatibilidade entre os SO. Os sistemas operacionais mais comuns da época eram o CP/M, OASIS, ISIS-II e o UNIX). Mas naquela época a coisa era mais restrita. Uma vez escolhido o SO, já estava escolhida a faixa de programas que você poderia usar.


Booting do CP/M


    Um SO que foi criado para o 8086 foi o MS-DOS, da Microsoft, que foi escrito em C e podia ser compilado para funcionar no Z8000 e no 68000, ou seja, em quase todos os 16 bits lançados. Como foi parcialmente modelado do CP/M-80 (8080), os programas de 8 bits que funcionaram no CP/M eram traduzidos para a codificação do 8086 e rodavam no MS-DOS.

Porém, a característica mais marcante no MS-DOS foram os gráficos, que eram independentes do do dispositivo. Assim, os programadores poderiam escrever gráficos sem ter que se preocupar com um computador específico em mente, pois o MS-DOS usava o protocolo de apresentação PLP. Assim, os projetistas de hardware faziam um display que interpretava comandos do PLP, e os programadores simplesmente usavam PLP em seus softwares. A Apple já possuía excelentes possibilidades gráficas, mas extremamente ligadas ao seu hardware. A IBM também passou a usar uma versão do MS-DOS.     Em pouco tempo o MS-DOS tomou o lugar do CP/M-86 e se tornou o SO mais popular para computadores 16 bits.


Booting do MS-DOS

Nenhum comentário:

Tutoriais de Programação