global _loadgdt extern _gdtptr _loadgdt: lgdt [_gdtptr] ; Ładujemy GDT adresem naszego wskaźnika mov ax, 0x10 ; 0x10 jest selektorem segmentu danych (indeks: 2, tablica: 0, przywileje: 0) mov ds, ax ; Poprzednie selektory staną się niepoprawne, więc należy załadować nowe mov es, ax mov fs, ax mov gs, ax mov ss, ax ; Aby zaktualizować rejestr CS, musimy dokonać skoku do nowego ; segmentu określonego selektorem 0x08 i offsetem c_code (adres etykiety) jmp 0x08:c_code ; 0x08 jest selektorem segmentu kodu (indeks: 1, tablica: 0, przywileje: 0) c_code: ret ; Zakończenie procedury, powrót do kodu C