Hogyan válthat valós módról védettre a 80386-ban?
1. Engedélyezze az A20-as kaput:
- Győződjön meg arról, hogy az A20-as kapu engedélyezve van, lehetővé téve a processzor számára a teljes 20 bites címterület elérését. Ez általában a billentyűzetvezérlőn keresztül vagy meghatározott I/O portokra írva történik.
2. Állítsa be a szegmensregisztereket:
- Inicializálja a négy szegmensregisztert (CS, DS, ES, SS) megfelelő alapcímekkel és korlátokkal a memóriaszegmensek védett módban történő meghatározásához.
3. Töltse be a globális leíró táblázatot (GDT):
- Hozzon létre egy GDT-t, amely egy szegmensleírókat tartalmazó adatstruktúra.
- Töltse be a GDT regisztert (GDTR) a GDT alapcímével.
4. Töltse be a Feladatregisztert (TR):
- Állítson be egy feladatállapot-szegmenst (TSS), és töltse be az alapcímét a TR regiszterbe.
- A TSS információkat tartalmaz az aktuális feladatról, például a veremmutatót és a feladattal kapcsolatos egyéb adatokat.
5. Védett mód engedélyezése:
- Hajtsa végre a "MOV AX, 0x10; MOV DS, AX" utasítást, amely lehetővé teszi a processzor számára, hogy kiolvassa a gép állapotszót (MSW) a 0x0010 memóriahelyről.
- Írja be a megfelelő értéket az MSW-be a védett mód engedélyezéséhez (pl. állítsa be a 0 bitet).
6. Megszakítások inicializálása:
- Megszakítási vektorok és megszakításleíró táblázat (IDT) konfigurálása védett módhoz.
7. Váltás védett módba:
- Hajtsa végre a "JMP FAR PTR 0x10:0x0;LJMP $0, $0" utasítást, amely a 0x0010:0x0000 valós módú megszakítási vektorra ugrik, majd távoli ugrást hajt végre a 0-s szegmensre, az offset 0 védett módban.
Ezen lépések végrehajtása után a processzor védett módba lép. Fontos megjegyezni, hogy a konkrét részletek és a lépések sorrendje a 80386 processzor pontos típusától és a használt operációs rendszertől vagy szoftvertől függően változhat. A memóriakezelés, szegmentálás és egyéb védett módú szolgáltatások megfelelő inicializálása és kezelése elengedhetetlen a rendszer megfelelő működéséhez.