Kako se prebaciti iz stvarnog načina rada u zaštićeni u 80386?
1. Omogućite vrata A20:
- Provjerite jesu li vrata A20 omogućena, omogućujući procesoru pristup punom 20-bitnom adresnom prostoru. To se obično radi putem kontrolera tipkovnice ili pisanjem na određene I/O portove.
2. Postavite registre segmenata:
- Inicijalizirajte četiri segmentna registra (CS, DS, ES, SS) s odgovarajućim osnovnim adresama i ograničenjima za definiranje memorijskih segmenata u zaštićenom načinu rada.
3. Učitajte tablicu globalnih deskriptora (GDT):
- Napravite GDT, što je podatkovna struktura koja sadrži deskriptore segmenata.
- Učitajte GDT registar (GDTR) s osnovnom adresom GDT-a.
4. Učitaj registar zadataka (TR):
- Postavite segment stanja zadatka (TSS) i učitajte njegovu osnovnu adresu u TR registar.
- TSS sadrži informacije o trenutnom zadatku, kao što je njegov pokazivač na hrpu i drugi podaci povezani sa zadatkom.
5. Omogući zaštićeni način rada:
- Izvršite instrukciju "MOV AX, 0x10; MOV DS, AX", koja omogućuje procesoru čitanje statusne riječi stroja (MSW) s memorijske lokacije 0x0010.
- Zapišite odgovarajuću vrijednost u MSW da biste omogućili zaštićeni način rada (npr. postavite bit 0).
6. Inicijaliziraj prekide:
- Konfigurirajte vektore prekida i tablicu deskriptora prekida (IDT) za zaštićeni način rada.
7. Prebacite se na zaštićeni način rada:
- Izvršite instrukciju "JMP FAR PTR 0x10:0x0;LJMP $0, $0", koja skače na vektor prekida stvarnog načina rada na 0x0010:0x0000 i zatim izvodi dugi skok na segment 0, pomak 0 u zaštićenom načinu rada.
Nakon izvršenja ovih koraka, procesor će ući u zaštićeni način rada. Važno je napomenuti da se određeni detalji i redoslijed koraka mogu razlikovati ovisno o točnom modelu procesora 80386 i operativnom sustavu ili softveru koji se koristi. Ispravna inicijalizacija i rukovanje upravljanjem memorijom, segmentacijom i drugim značajkama zaštićenog načina rada ključni su za ispravno funkcioniranje sustava.