.ASM Home Page
Programação Avaçada
 
Tutorial de Modo Protegido

1.Introdução

        Bem acho que muita gente sempre ouviu falar do famoso modo protegido, ou já viu o DOS4WG na inicialização de vários programas DOS, mas na realidade que diabos é isso. Primeiramente para enterdermos o modo protegido temos que saber muito bem o modo real, em que a memória é segmentada em pedaços de 64Kb, esta arquitetura ridícula foi instituida pelo nosso querido Bill Gates, pois ele achava que nunca existiriam programas que ocupassem mais de 640Kb (XTzão), e por esta razão temos a DOS que mesmo tendo 4Gb de RAM, irá nos dizer que não temos memória suficiente, mas graças à Deus, quando projetam o 286 colocaram nele o modo protegido, claro que um pouco primitivo, o modo protegido como conhecemos hoje só apareceu em máquinas 386. Pronto chega de tra-la-lá histórico e vamos ao que interessa com o advento do 386 temos mais dois novos modos o protegido e o virtual, além do real que já existia desde o XT, o modo virtual (V86 daqui em diante), nos dá o recurso de multi-tarefa, pensa dessas forma, pegamos a CPU 386 e a dividimos em vários CPU 8086, que trabalham simultâneamente, e até que enfim o modo protegido, nele temos vários recursos de orgamização de memória, podemos por exemplo definirmos um segmento do tamanho que bem entendermos(até 4Gb), temos níveis de privilégio, ou seja um código de nível de privilégio inferior não pode acessar as informação de um nível superior, mas o contrário é permitido, o que é muito utíl na confecção de Sistemas Operacionais, o lance do tamanho e da localização dos segmentos na memória física bem como seu nível de privilégio são definidos por tabelas, são elas a GDT (Tabela do Descritor Global), e a LDT (Tabela do Descritor Local), além dessas duas existe ainda a IDT (Tabela do Descritor de Interrupção), esta tabela contém informação para as várias interrupções da CPU. Um outro tópico interessante que já ia passando por cima são os gates ou portões, eles são uma espécie de janela nos segmentos de maior privilégio, para que o código de memor segmento possa ler o de maior ou saltar para tal localização.
 

                              xandre@convex.com.br