OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO



Documentos relacionados
Técnico em Informática - Instalação e Manutenção de Computadores PROCESSADORES

Organização de Computadores 2005/2006 Processadores Intel

Linguagem de Montagem

Unidade: Unidade Lógica e Aritmética e Registradores. Unidade I:

Memória RAM. A memória RAM evolui constantemente. Qual a diferença entre elas? No clock (velocidade de comunicação com o processador)

Processadores. Guilherme Pontes

Organização de Computadores 2005/2006 Processadores Intel

Evolução dos Processadores

Unidade 11: A Unidade de Controle Prof. Daniel Caetano

Arquitetura de processadores: RISC e CISC

Linguagem de Montagem 2. Operações e Operandos

Montagem e Manutenção. Luís Guilherme A. Pontes

Todos os microprocessadores hoje disponíveis em micros compatíveis com PC utilizam o funcionamento do como ponto de partida.

Manutenção de Computadores Montagem de microcomputadores: Entendendo melhor os processadores. Professor: Francisco Ary

CPU Unidade Central de Processamento. História e progresso

Fundamentos de Hardware

PROCESSADOR. Montagem e Manutenção de Microcomputadores (MMM).

Soquetes para o processador

Bits internos e bits externos. Barramentos. Processadores Atuais. Conceitos Básicos Microprocessadores. Sumário. Introdução.

Capítulo 1 Introdução

Curso de Instalação e Gestão de Redes Informáticas

Técnicas de Manutenção de Computadores

Hardware - Microprocessador

29/3/2011. Primeira unidade de execução (pipe U): unidade de processamento completa, capaz de processar qualquer instrução;

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

Conceitos e Evolução Capítulos 1 e 2

Memória cache. Prof. Francisco Adelton

Software Básico. Conceito de Linguagem de Máquina e Montagem: introdução ao Assembly. Prof. MSc. Hugo Vieira L. Souza

PROCESSADORES. Introdução 25/04/2012. Professor Marlon Marcon

Sumário. Organização de Computadores Módulo 3. Primeira Geração Válvulas ( ) Primeira Geração Válvulas ( )

A história do Processadores O que é o processador Características dos Processadores Vários tipos de Processadores

HISTÓRIA DA COMPUTAÇÃO

Hardware Avançado. Laércio Vasconcelos Rio Branco, mar/2007

John von Neumann(Budapeste. Desenvolvido no IAS(Institute of Advanced Studies-Princeton\USA). Iniciado em1946 e finalizado em 1952

ARQUITETURA DE COMPUTADORES

Curso de Instalação e Gestão de Redes Informáticas

IDENTIFICAÇÃO MANUTENÇÃO

Introdução. Hardware (Parte II) Universidade Federal de Campina Grande Departamento de Sistemas e Computação. joseana@computacao.ufcg.edu.

ORGANIZACÃO DE COMPUTADORES PROCESSADORES CHIPS TRANSISTORES

Microprocessadores II - ELE 1084

A Intel e a AMD são os mais conhecidos fabricantes de processadores ambos tiveram a sua evolução em termos de fabrico de processadores

Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação MATA49 Programação de software básico Arquitetura Intel

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

Introdução à Arquitetura e Linguagem Assembly de Processadores IA-32

Hardware Fundamental

I n f o r m á t i c a

Aula 06. Memórias RAM

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Aula 26: Arquiteturas RISC vs. CISC

Introdução ao Processamento de Dados - IPD

Nível do Sistema Operacional

2 - Processadores. CEFET-RS Curso de Eletrônica. Organização de Computadores. Profs. Roberta Nobre & Sandro Silva

Processadores de Núcleo Duplo

CENTRAL PRCESSING UNIT




Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 02 - Estrutura dos Sistemas Operacionais. Cursos de Computação

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

HD, SSD ou disco híbrido, qual o melhor para sua empresa?

1. Introdução - contextos de aplicações

Hardware Montagem e Manutenção

1.3. Componentes dum sistema informático HARDWARE SOFTWARE

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Introdução à estrutura e funcionamento de um Sistema Informático

x86 Assembly Mini-Course

Computador Digital Circuitos de um computador (Hardware)

Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Introdução. Prof. MSc. Hugo Souza

Sistema de Memórias de Computadores

Conceitos Básicos sobre Sistemas Operacionais

O processador é um dos elementos componentes do computador moderno, sendo responsável pelo gerenciamento de todo o computador.

ULA Sinais de Controle enviados pela UC

Prof. Orlando Rocha. Qual o nosso contexto atual?

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL

Arquitetura de Computadores Moderna

Sua Oficina Virtual. Atualização da apostila é freqüente. Visite sempre. = APOSTILA = FREEWARE

2. A influência do tamanho da palavra

1. Explicando Roteamento um exemplo prático. Através da análise de uns exemplos simples será possível compreender como o roteamento funciona.

Capítulo 2. AMD K6, K6-2, K6-III Super 7 Cyrix MII / 6x86 / 6x86MX Super 7 ou Socket 7 AMD K5, Pentium, Pentium MMX Socket 7

Arquitetura do conjunto de instruções (ISA); características de instruções de máquina; tipos de operandos

Programador Web - Pronatec

História dos SOs. Tópicos

AULA 16 - Sistema de Arquivos

Organização de Computadores Prof. Alex Vidigal Bastos

HD e Memória Virtual. Qual as vantagens e desvantagens da Memória Virtual?

Abstrações e Tecnologias Computacionais. Professor: André Luis Meneses Silva /msn: andreluis.ms@gmail.com Página: orgearq20101.wordpress.

armazenamento (escrita ou gravação (write)) recuperação (leitura (read))

Placas. Organização e Arquitetura de Computadores

Memória primária Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Hardware de Computadores

Aula 14: Instruções e Seus Tipos

Descrição do Produto. Altus S. A. 1

Barramentos 17/10/2011. Redes de Computadores. Arquitetura de Computadores FACULDADE PITÁGORAS DE TECNOLOGIA FACULDADE PITÁGORAS DE TECNOLOGIA.

Processadores Tecnologia de Multiprocessamento VS + Núcleos. Claudio Damasceno prof.claudiodamasceno@hotmail.com

Introdução à Engenharia de Computação

Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET

Algoritmos DCC 119. Introdução e Conceitos Básicos

Professor: Venicio Paulo Mourão Saldanha Site:

Transcrição:

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO Prof. Msc. Carlos José Giudice dos Santos carlos@oficinadapesquisa.com.br www.oficinadapesquisa.com.br

Evolução dos processadores Arquitetura x86 e a linguagem Assembly

BREVÍSSIMO HISTÓRICO DOS MICROPROCESSADORES - 1 a fase 8 bits Conforme vimos em nossas aulas, os processadores para microcomputadores se desenvolveram muito rapidamente. Alguns desses processadores são históricos: 1971 A Intel lança o 4004, o primeiro processador de 4 bits. 1972 A Intel lança o 8008, o primeiro processador de 8 bits bits. 1974 A Intel lança o 8080, primeiro processador de 8 bits a equipar um computador (o Altair) que podia ser comprado por qualquer cidadão. 1975 A MOS Technology lança o 6502, baseado no 6800 da Motorola. Ele equipou o Apple por ser o mais barato processador do mercado. 1976 A Intel lança o 8085, primeiro processador de 8 bits a funcionar com apenas 5 volts. 1976 A Zilog lança o Z-80, um aperfeiçoamento do 8080 feito por um ex-funcionário da Intel. Junto com o 6502, dominou o mercado de processadores até meados da década de 80.

BREVÍSSIMO HISTÓRICO DOS MICROPROCESSADORES - 1 a fase 8 bits Intel 4004 1971 4 bits Intel 8008 1972 8 bits Intel 8080 1974 8 bits Equipou o Altair, primeiro microcomputador do mundo

BREVÍSSIMO HISTÓRICO DOS MICROPROCESSADORES - 1 a fase 8 bits MOS 6502 1975 8 bits Equipou o Apple, primeiro microcomputador que foi um fenômeno de vendas. O primeiro Apple

BREVÍSSIMO HISTÓRICO DOS MICROPROCESSADORES - 1 a fase 8 bits Intel 8085 1976 8 bits Duas famílias de computadores baseadas no Zilog Z-80. Acima, o Sinclair. Abaixo, o TRS-80 Zilog Z-80-1976 8 bits O mais famoso processador de 8 bits do mundo

BREVÍSSIMO HISTÓRICO DOS MICROPROCESSADORES - 2 a fase 16 bits 1978 A Intel lança o 8086, seu primeiro processador de 16 bits. 1979 A Intel lança o 8088, para ser usado no IBM PC (Personal Computer). Internamente era idêntico ao 8086, mas externamente comunicava-se com um barramento de dados de 8 bits, mais barato e com maior oferta de circuitos controladores naquela época. Era capaz de endereçar até 1 MB de RAM. 1982 A Intel lança o 80186, processador de 16 bits considerado muito caro e avançado para a época. Passou a ser utilizado depois como controlador de placas de comunicação, sobretudo placas de rede. 1984 A Intel lança o 80286, processador de 16 bits que equipou o IBM PC AT (Advanced Technology). Endereçava até 16 MB de RAM e já oferecia algum suporte para sistemas que usavam memória virtual.

BREVÍSSIMO HISTÓRICO DOS MICROPROCESSADORES - 2 a fase 16 bits Intel 8086 1978 16 bits Primeiro processador de 16 bits fabricado pela Intel Intel 80186 1982 Processador de 16 bits Evolução do 8086, foi e continua sendo usado em placas de comunicação (rede, modem, roteadores) Intel 8086 1979 16 bits Internamente era 16 bits, mas comunicavase com o barramento em 8 bits Equipou o primeiro micro da IBM, o PC (Personal Computer 1981) abaixo.

BREVÍSSIMO HISTÓRICO DOS MICROPROCESSADORES - 2 a fase 16 bits Intel 80286 1984 Processador de 16 bits Primeiro processador a endereçar até 16 MB de RAM Equipou o IBM PC-AT (Personal Computer Advanced Technology), mostrado ao lado

BREVÍSSIMO HISTÓRICO DOS MICROPROCESSADORES - 3 a fase 32 bits 1987 A Intel lança o poderoso 80386, seu primeiro processador de 32 bits. É um processador simplesmente espetacular, cuja base e instruções são utilizadas em processadores até hoje (2010). Possuia suporte para sistemas com multitarefa e um modo virtual DOS que permitia rodar até 256 programas DOS simultaneamente. Depois de algum tempo após o seu lançamento, passou a ser conhecido apenas como 386. 1989 A Intel lança o 486, basicamente um 386 muito melhorado. Tinha algumas instruções a mais e um coprocessador aritmético interno. Foi o primeiro processador a adotar uma cache interna de 8 KB, além de um pipeline de 5 estágios. Foi construído até 2007 devido ao seu ótimo custo/benefício quando usado em sistemas embarcados. 1992 A Intel lança o Pentium, primeiro processador de 32 bits a utilizar arquitetura superescalar (dois pipelines).

BREVÍSSIMO HISTÓRICO DOS MICROPROCESSADORES - 3 a fase 32 bits Intel 386 1987 - Processador de 32 bits Capaz de endereçar impensáveis (para a época) 4 GB de RAM. Algumas placas-mãe tinham soquete para o 387 (co-processador aritmético), que aumentava muito a velocidade de cálculos matemáticos. Intel 486 1989 - Processador de 32 bits Basicamente era um 386 com 6 instruções a a mais, com co-processador 387 integrado à ULA, uma cache interna L1 de 8 KB e um pipeline de 5 estágios.

BREVÍSSIMO HISTÓRICO DOS MICROPROCESSADORES - 3 a fase 32 bits Intel Pentium 1989 Primeiro processador de 32 bits da Intel a utilizar arquitetura superescalar. Internamente era formado por um núcleo único construído com dois núcleos de 486. Visão interna ampliada do núcleo de um processador Pentium

BREVÍSSIMO HISTÓRICO DOS MICROPROCESSADORES - 3 a fase 32 bits 1995 A Intel lança o Pentium Pro, um poderoso processador destinado ao mercado corporativo (servidores). 1996 A Intel lança o Pentium MMX, primeiro processador a dar suporte para instruções SIMD (Single Instruction Multiple Data), que permite aplicar uma mesma instrução a múltiplos dados com extrema rapidez. Isso permitiu a evolução dos sistemas multimídia. 1997 A Intel lança o Pentium II, que tinha desempenho inferior ao Pentium Pro. Foi o primeiro processador da arquitetura P6, que ainda hoje (em sua versão Yonah) é utilizada. 1998 A Intel lança o Pentium II Xeon, destinado ao mercado corporativo que exige processadores de alto desempenho. 1998 A Intel lança o malfadado Celeron, basicamente um Pentium II piorado (sem cache interno), mais barato, com o objetivo de brigar com a concorrência. Ficou conhecido como Lentium.

BREVÍSSIMO HISTÓRICO DOS MICROPROCESSADORES - 3 a fase 32 bits Acima, o Pentium Pro (1995), primeiro processador desenvolvido para o mercado corporativo. Ao lado, acima, o Pentium II (1997) em um encapsulamento tipo Slot 1. Ao lado, abaixo, o mesmo Pentium II fora do seu encapsulamento.

BREVÍSSIMO HISTÓRICO DOS MICROPROCESSADORES - 3 a fase 32 bits 1999 A Intel lança o Pentium III, uma evolução do Pentium II, com 8 novos registradores e suporte a instruções SSE (Streaming SIMD Extensions), uma evolução das instruções SIMD. 1999 A Intel lança o Pentium III Xeon, destinado ao mercado corporativo. OBSERVAÇÃO: Esse brevíssimo histórico está mostrando apenas os lançamentos da Intel, principal fabricante de processadores para PC s. Seus principais concorrentes são a Motorola, cujos processadores equipam outro tipo de computador (Apple e Macinstosh e imac), e a AMD, que atua no mesmo mercado da Intel e é a principal concorrente. Desde o 286 existe concorrência da AMD, que também fez clones do 386 e 486. A partir do Pentium, a concorrência ficou mais acirrada. A Intel ainda domina o mercado atual, especialmente no segmento corporativo, mas a AMD ainda tem muita força, sobretudo quando o assunto são aplicações gráficas.

BREVÍSSIMO HISTÓRICO DOS MICROPROCESSADORES - 3 a fase 32 bits Acima, o Pentium II Xeon (1998), processador desenvolvido para o mercado corporativo em um encapsulamento do tipo Slot 2. Ao lado, acima, um Pentium III em um encapsulamento tipo ZIF. Ao lado, abaixo, um Pentium III (1999) em um encapsulamento tipo Slot 1.

BREVÍSSIMO HISTÓRICO DOS MICROPROCESSADORES - 3 a fase 32 bits Acima, o Pentium III Xeon (1999), processador desenvolvido para o mercado corporativo em um encapsulamento Slot 2. Ao lado, o mesmo Pentium III Xeon fora do seu encapsulamento.

PROCESSADORES Pós-2000: A arquitetura Netburst (x32) 2002 A Intel começa a projetar uma nova arquitetura para substituir a arquitetura P6, que deu origem aos Pentium II e III. Trata-se da arquitetura Netburst, também conhecida como HPT (Hyper Pipelined Technology). A versão inicial (codinome Northwood) tinha um pipeline de 20 estágios), e a versão final (codinome Prescott) tinha um pipeline de 31 estágios. Incorporou duas novas tecnologias: uma chamada REE (Rapid Execution Engine ou Mecanismo de Execução Rápida), que permitia a ULA trabalhar no dobro da velocidade do processador, e outra chamada ETC (Execution Trace Cache) que armazena em cache os últimos dados processados para o caso das próximas instruções necessitarem deles. O primeiro processador a usar esta arquitetura foi o Pentium 4 (lançado em 2004), muito rápido mas com um grande problema próprio desta arquitetura: a grande quantidade de calor dissipada devido ao alto consumo de energia destes processadores.

PROCESSADORES Pós-2000: 4ª fase - A arquitetura x64 2003 A AMD lança o primeiro processador de 64 bits (arquitetura x64) compatível com versões anteriores do Windows e do DOS (x86). Foi ao Athlon 64, que embora tenha sido lançado em setembro de 2003, só chegou com força ao mercado em 2004. 2006 A Intel lança a sua linha Core, sendo o Core 2 Duo o primeiro processador dessa família. Depois vieram os i3, i5 e i7 de 1ª geração (2008 a 2010), 2ª geração (2011), 3ª geração (2012), 4ª geração (2013), 5ª geração (2014) e foi anunciada a 6ª geração para o 2º semestre de 2015. Observação: A Intel tem outras arquiteturas de 32 e 64 bits (IA-32 e IA-64) para processadores de servidor (Itanium), que são incompatíveis com versões anteriores do Windows e do DOS.

RESUMO SOBRE PROCESSSADORES [01] O QUE É IMPORTANTE SABER PARA AS AVALIAÇÕES Neste resumo, trocaremos a palavra microprocessador pela sigla MCPU (Micro CPU). 1971: Lançamento do primeiro MCPU do mundo, o Intel 4004 (um processador de 4 bits). 1974: Lançamento do Intel 8080, primeiro MCPU de 8 bits a equipar um microcomputador (o Altair). 1975: Lançamento pela MOS Technology do MCPU 6502, processador de 8 bits que equipou o primeiro microcomputador de sucesso mundial em 1977 (o Apple). 1978: Lançamento do Intel 8086, primeiro MCPU de 16 bits e que equipou o primeiro PC da IBM em 1981.

RESUMO SOBRE PROCESSSADORES [02] O QUE É IMPORTANTE SABER PARA AS AVALIAÇÕES Neste resumo, trocaremos a palavra microprocessador pela sigla MCPU (Micro CPU). 1987: Lançamento do primeiro MCPU de 32 bits do mundo, o Intel 80386. 2003: Lançamento do AMD Athlon 64, primeiro MCPU de 64 bits do mundo que mantém compatibilidade com a arquitetura x86. 2006: Lançamento da linha Core da Intel, inaugurando MCPU s com mais de um núcleo para PC s e notebooks, o que vem resultando em MCPU s cada vez mais rápidos e com menor consumo de energia.

ARQUITETURAS DE 8, 16, 32 e 64 bits [01] No mundo dos PC s hoje existem basicamente três tipos de arquiteturas: a x86, a x32 e a x64. Vamos entender o que significa isso. Em primeiro lugar, vamos voltar no tempo na época que surgiram os primeiros microcomputadores. Nessa época, os processadores possuíam palavras de 8 bits, o que significa que cada instrução podia trabalhar com valores variando entre 0 e (2 8-1), o que corresponde a um valor máximo de 255. Para poder processar valores maiores que esse, o processador tinha que usar uma palavra (8 bits) de cada vez. Para acessar a memória RAM, este tipo de processador usava dois bytes (duas palavras) e este acesso era feito em duas etapas, o que tornava esse acesso lento.

ARQUITETURAS DE 8, 16, 32 e 64 bits [02] Assim, um processador de 8 bits manipulava no máximo 1 byte de cada vez, o que significa que a sua palavra é de 8 bits (ou 1 byte). Para endereçar a memória, por exemplo, um processador de 8 bits utilizava 16 bits. Desse modo, o tamanho máximo de memória que um computador com CPU de 8 bits era capaz de endereçar com os seus 16 bits era de 2 16 = 65536 posições de memória (0 a 65535) ou 64 KB (64 Kilobytes). Este tamanho de memória era mais do que suficiente para as necessidades de computação doméstica do final da década de 1970 e início da década de 1980, mas a história mostra que os seres humanos nunca ficam satisfeitos por muito tempo.

ARQUITETURAS DE 8, 16, 32 e 64 bits [03] Com o sucesso dos computadores de 8 bits (em diversas famílias ao longo de quase uma década - Sinclair, TRS- 80, Commodore, Apple I, Apple II e MSX), a gigante do setor (IBM) resolveu que era hora de intervir no mercado. Criou uma fábrica na Flórida (perto de uma praia - Boca Raton West Palm Beach), e em 1981, nasceu o primeiro microcomputador (Personal Computer PC) destinado ao mercado corporativo. Havia duas versões de processadores, ambos de 16 bits: o Intel 8086 (que tinha registradores internos comuns de 16 bits e acessava a memória em palavras de 16 bits), e o Intel 8088 (que tinha registradores internos comuns de 16 bits e acessava a memória em palavras de 8 bits para baratear os custos).

ARQUITETURAS DE 8, 16, 32 e 64 bits [04] Em relação ao endereçamento de memória, 16 bits eram suficientes para acessar diretamente 64 KB de memória, como já vimos anteriormente. Assim, o PC da IBM deveria ter um diferencial a mais do que simplesmente acessar a memória mais rapidamente. Isto foi feito coma utilização de 20 bits para endereçamento. Com 20 bits, a capacidade de endereçamento chegava a 2 20 bits = 1.048.576 posições de memória ou 1 MB (1 Megabyte), algo impensável para a época. Desta quantidade imensa de memória, 640 KB eram reservados para os aplicativos, enquanto que a memória entre 640 KB e 1024 KB (1 MB) era reservada para o sistema operacional, vídeo, controle de E/S, etc.

ARQUITETURAS DE 8, 16, 32 e 64 bits [05] A IBM imaginou que 640 KB de memória RAM seriam mais do que suficientes para qualquer tipo de aplicação, já que os melhores computadores de 8 bits da época só endereçavam 64 KB. Como estes computadores ainda utilizavam um sistema, que ocupava tipicamente algo em torno de 32 KB desta memória, sobrava apenas 32 KB para os usuários das CPU s de 8 bits rodarem seus programas. Ter um computador com 640 KB de RAM (10 vezes mais do que qualquer um daquela época) era uma felicidade, quase um sonho. A história mostrou mais uma vez que esse sonho durou muito pouco tempo (pouco menos de uma década). Antes que eu explique como este sonho virou um pesadelo, vamos entender o endereçamento de memória do PC com 20 bits.

ARQUITETURAS DE 8, 16, 32 e 64 bits [06] Quando se fala em arquitetura x86, estamos nos referindo à arquitetura do primeiro PC com processador 8086, com registradores internos de 16 bits e endereçamento de 20 bits. Como já vimos, 2 20 bits equivalem a 1 MB. A IBM dividiu a memória em 16 pacotes de 64 KB cada um. Convencionouse chamar cada pacote de 64 Kilobytes consecutivos de segmento. Convencionou-se que os 10 primeiros segmentos ficariam reservados como memória do usuário (640 KB) enquanto que os outros seis segmentos (384 KB) seriam reservados para o sistema. Para acessar cada um destes pacotes, utilizava-se 4 bits (2 4 = 16 segmentos). Para acessar um endereço individual dentro de cada pacote utilizava-se 16 bits (2 16 = 65.536).

ARQUITETURAS DE 8, 16, 32 e 64 bits [07] Convencionou-se chamar este endereçamento de 16 bits dentro de cada segmento de offset. Desse modo, o endereçamento de 20 bits do PC era composto de 4 bits para o segmento + 16 bits para o offset. Entretanto, deve ficar claro que o PC era um computador de 16 bits, ou seja, arquitetura x86. Quando a IBM lançou o IBM PC AT (Personal Computer Advanced Technology), ela utilizou um processador 80286, que possuía registradores internos de 16 bits, mas utilizava 24 bits para endereçamento de memória, chegando a incríveis 16 MB de RAM. Esta capacidade de memória era utilizada por sistemas UNIX, já que o DOS só enxergava no máximo 1 MB (até a versão 3.3).

ARQUITETURAS DE 8, 16, 32 e 64 bits [08] Em 1987 a Intel lança o poderoso 80386 (ou simplesmente 386), primeiro processador de 32 bits. Estava inaugurada a era x32 (na teoria), ou seja, computadores com registradores de 32 bits e capazes de endereçar impensáveis 2 32 posições de memória RAM, ou seja, até 4.294.967.296 bytes ou 4 GB. Na prática os computadores da época vinham com no máximo 4 MB de RAM, mas o 386 consegui acessar até 4 GB se o SO permitisse isso. Geralmente o máximo de RAM na época era 16 MB, ficando o restante como memória virtual.

ARQUITETURAS DE 8, 16, 32 e 64 bits [09] Embora esta arquitetura (do 386) fosse oficialmente de 32 bits (x32), ela não foi usada na época por causa de problemas de compatibilidade com milhares de aplicativos DOS que necessitavam da arquitetura x86. Já os processadores com 64 bits reais só vieram depois da virada do milênio, e a aguardada arquitetura x64 (compatível com a x86) só deu as caras em 2003/2004. Um registrador de 64 bits pode trabalhar com números inteiros positivos equivalentes a 2 64. Isto equivale ao número 18.446.744.073.709.551.616. Este número também equivale a quantidade de posições de memória que podem ser endereçadas = 16 EB (16 Exabytes ou 16 x 1024 x 1024 x 1024 GB), algo em torno de 16 bilhões de Gigabytes.

A ARQUITETURA x86 [01] A arquitetura de processadores da família x86 possui as seguintes características: 1. Oito registradores de 16 bits (sendo dois deles reservados). 2. Os registradores de propósito geral são: AX, BX, CX e DX. 3. Podem ser acessados os 8 bits superiores ou inferiores destes registradores Ex.: AL (8 bits inferiores de AX); AH (8 bits superiores de AX); 4. SI, DI Índices (podem ser usados como propósito geral) 5. BP, SP Pilha (reservados, devem ser apenas configurados na inicialização do programa)

Continuação... A ARQUITETURA x86 [02] 4 registradores de segmento CS Code Segment Início das instruções DS Data Segment Início das variáveis ES Extra Segment Para uso do programador SS Stack Segment Início da pilha OBS: Os registradores de segmento guardam informações essenciais para a execução das instruções e devem ser alterados com extremo cuidado!

A ARQUITETURA x86 [03] Com a introdução da arquitetura x32, foram criados novos registradores para manter a compatibilidade com a arquitetura x86. 8 registradores de 32 bits: EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP Os registradores de segmento continuaram com 16 bits. 2 novos registradores de segmento CS, DS, SS, ES, FS, GS

A ARQUITETURA x86 [04] Com a introdução da arquitetura x64, foram criados novos registradores para manter a compatibilidade com a arquitetura x86. 8 registradores de 64bits: RAX, RBX, RCX, RDX, RSI, RDI, RBP, RSP Os registradores de segmento continuaram com 16 bits. 6 registradores de segmento CS, DS, SS, ES, FS, GS

A linguagem Assembly x86 [01] Linguagem Assembly (Assembly Language) é uma linguagem de montagem de instruções. É uma linguagem de baixo nível, fortemente relacionada à arquitetura do processador, que possui comandos mnemônicos com uma notação legível para seres humanos. Os comandos mnemônicos são uma representação da linguagem de máquina, para substituir os padrões de bits que só os processadores entendem. Nunca confunda Assembly com Assembler. Assembler é um programa que cria o código objeto (padrões de bits) a partir do código em Assembly.

A linguagem Assembly x86 [02] Existem vários programas de Assembler. Os mais comuns são: NASM Netwide Assembler TASM Turbo Assembler MASM Microsoft Assembler GAS GNU Assembler A maioria dos programadores de Assembly x86 usam o NASM pelo fato de ter uma sintaxe menos poluída (mais fiel ao padrão original), possuir mais abstrações e principalmente, por ser Open Source (assim como o GAS).

A linguagem Assembly x86 [03] Para se programar em Assembly, deve-se conhecer profundamente a estrutura interna do processador. Por exemplo, para se programar em Assembly x86 para programas compatíveis como DOS e as primeiras versões do Windows, usa-se o chamado Modo Real, o que significa que apenas os registradores de 16 bits estão disponíveis. Outra característica do Assembly é o fato de ser uma linguagem imperativa pura, ou seja, um programa em Assembly é constituído de uma série de ações em forma de instruções em sequência. Isto dificulta a legibilidade de um programa escrito em Assembly, porque a linguagem permite saltos.

A linguagem Assembly x86 [04] Os principais comandos do Assembly são: Atribuição: mov destino, origem Lógicos: and operando1, operando2 or operando1, operando2 Aritméticos: add operando1, operando2 sub operando1, operando2 mul operando1, operando2 div operando1, operando2 Comparação: cmp operando1, operando2 Saltos: jmp endereço / je endereço / jne endereço jz endereço / jnz endereço / djnz endereço dje endereço / djne endereço

Exemplos de códigos em Assembly x86 [01] Fonte: Pannain. Disponível em: <http://www.ic.unicamp.br/~pannain/mc404/aulas/slides/obclm6_ppt.pdf>.

Exemplos de códigos em Assembly x86 [02] Fonte: Pannain. Disponível em: <http://www.ic.unicamp.br/~pannain/mc404/aulas/slides/obclm6_ppt.pdf>.

BIBLIOGRAFIA CONSULTADA FORBELLONE, André Luiz Villar. Lógica de programação: a construção de algoritmos e estruturas de dados. 3.ed. São Paulo: Pearson Prentice Hall, 2005. NOBRE, Roberta; SILVA, Sandro. Interrupção no PC. Disponível em: <http://www2.pelotas.ifsul.edu.br/sandro/docs/oc_unidade _04_2_interrupcao.pdf>. Acesso em: 7 set. 2015. KINOSHITA, Jorge. O que são interrupções. PCS USP. Disponível em: <http://www.pcs.usp.br/~jkinoshi/2005/e5roberto. doc>. Acesso em: 7 set. 2015. SEBESTA, Robert. W. Conceitos de linguagens de programação. 9. ed. Porto Alegre: Bookman, 2011. TANEMBAUM, Andrew S. Organização estruturada de computadores. 5. ed. São Paulo: Pearson Prentice Hall, 2011.