\r
popad\r
ret\r
-\r
-global ASM_PFX(AsmInitializeGdt)\r
-ASM_PFX(AsmInitializeGdt):\r
- push ebp\r
- mov ebp, esp\r
- pushad\r
- mov edi, [ebp + 8] ; Load GDT register\r
-\r
- lgdt [edi] ; and update the GDTR\r
-\r
- push PROTECT_MODE_CS\r
- mov eax, ASM_PFX(SetCodeSelectorFarJump)\r
- push eax\r
- retf\r
-ASM_PFX(SetCodeSelectorFarJump):\r
- mov ax, PROTECT_MODE_DS ; Update the Base for the new selectors, too\r
- mov ds, ax\r
- mov es, ax\r
- mov fs, ax\r
- mov gs, ax\r
- mov ss, ax\r
-\r
- popad\r
- pop ebp\r
- ret\r