Soll der i386 in den Protected Mode umgeschaltet werden, muß das Betriebssystem oder das ROM-BIOS die erforderlichen Tabellen im Speicher aufbauen und wenigstens die beiden Register GDTR und IDTR mit geeigneten Werten initialisieren. Ist das geschehen, so setzt das System oder ROM-BIOS über den Befehl MOV cr0, das Bit PE im Steuerregister CR0 auf 1. Der i386 arbeitet nun im Protected Mode. Beim PC kann der i386 auch über die Funktion 89h des Interrupts INT 15h in den Protected Mode umgeschaltet werden. Aus Kompatibilitätsgründen mit dem 80286 kann der i386 zudem über den 80286-Befehl LMSW in den Protected Mode versetzt werden.
Der i386 kann den Protected Mode auf einfache Weise wieder verlassen, indem ein Task mit PL=0 das PE-Bit durch den Befehl MOV cr0, wieder löscht. Der i386 schaltet dann sofort in den Real Mode zurück. Beim 80286 ist das leider nicht möglich. Einmal im Protected Mode, konnte beim 80286 das PE-Bit nicht wieder gelöscht werden. Der Grund dafür war wohl, daß INTEL sich nicht vorstellen konnte, daß jemand (nämlich MS-DOS) den neuen Protected Mode einfach ignorieren könnte. Der Real Mode sollte beim 80286 nur dazu dienen, alle notwendigen Vorbereitungen zum Sprung in den Protected Mode zu treffen. Eine Rückkehr in den Real Mode schien absurd (ist sie auch, wenn man z.B. den physikalischen Real-Mode-Adreßraum von 1mByte mit dem des Protected Mode mit 4gByte vergleicht).Erst die Maxime der Kompatibilität und die enorme Marktbedeutung von MS-DOS zwangen INTEL, eine einfache Rückkehr in den Real Mode zu ermöglichen.
|