�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