Das geht.
1. der Einfachheit halber an eine Adresse < 0xffff springen (eigentliche Anforderungen: Code muss identity gemappt sein, und du darfst mit den Segmentdeskriptoren bzw. -basen nicht durcheinanderkommen.)
2. Paging deaktivieren (bit 31 in cr0 löschen)
3. IDT laden mit Basis 0, Limit 1023
4. 16 Bit Code/Daten Segmente in alle Segmentregister laden (Basis 0, wenn du in den ersten 64 KB bist)
5. Protected Mode deaktivieren (bit 0 in cr0 löschen)
Das ganze natürlich bei deaktivierten Interrupts.
Ich hoffe ich hab nix vergessen^^