Úvod do protected módu procesorů Intel x86

Kdysi jsem se ucil podle knizky Mikroprocesory Intel Pentium a spol. od Grady protectedmode. V te dobe (1995) jsem se snazil napsat jakysi program a pri jeho psani jsem prubezne ukladal zdrojaky na disk. Vysledkem je nekolik casti, od nejjednodussi (prepnuti do chraneneho rezimu a zpet) az po pomerne obtizne veci (prepinani procesu, TSS). Jak to dopadlo, muzete videt nize. Myslim si, ze psat vlastni extender je nesmsysl, radsi pouzijte nejaky uz hotovy (pmode, pmode/w, ...) nebo nejaky OS, ve kterem zadny extender potrebovat nebudete (Linux, OS/2, ...).

Poznámka (květen 2000): Dnes se již programováním takto low-level věí nezabývám, přesto jsem zde tuto stránku nechal. Možná bude někomu užitečná...

1st.asm Jednoduchy program, ktery nastavi v cr0 bit PE (0. bit), provede NOP, a potom zase v cr0 vynuluje bit PE.
2nd.asm V podstate to sami co 1st, ale nyni to zkontroluje, zda je 386+ (pochopeni tedle rutiny necham na vas...) a jestli neni uz V86 mode (1. bit v machine status wordu), tzn bezi Qemm,Emm386,386Max a jine blbosti.
3rd.asm Umi od predchozich versi navic jenom A20 gate enable.
4th.asm Nastavuje GDTR a zobrazi na monitoru '?'.
5th.asm Crashnul mi disk a zrovna tento soubor to odnesl :-(((, takze jeho konec je poruseny. Nic noveho tady nebylo, akorat `jina` organizace selektoru.Podivejte se radsi na dalsi cast.
6th.asm Stack v protected modu, funkce main.
7th.asm Nastaveni IDTR a vyvolani interruptu.
8th.asm Exception handlery, IRQ1 a IRQ2 handler. Ceka na stisk klavesy. Nakonec vyvola exception - deleni nulou.
9th.asm Nove exception handlery (uz to vypada jako v qemmu), IRQ a exceptions jsou oddeleny (puvodne prekryvali stejny prostor, takze se tezko zjistovalo, zda je to irq nebo exception.) - preprogramovani radice preruseni.
10th.asm Pridan task (zatim jenom jeden, vic se mi jich nepodarilo udelat), ukazka jak nastavit Task Register.
11th.asm Prepne so do v86 modu a vypise message. Bohuzel neumi z V86 vyskocit,takze RESET.

Taky si muzete stahnout tuto stranku jako celek, stahovani 10ti souboru neni asi to prave...


Další odkazy


Copyright (c) 1995,98,2000 Martin Hinner, <[email protected]>. All rights reserved.