On Apr 26, 10:25 am, "Helge Kruse" wrote:
> I wrote a x86 boot loader a long time ago. One step is to jump
> form 16 bit to 32 bit segment before entering protected mode.
> Is there any way to write a clean jump to 32 bit segment?
;assemble with FASM
use16
66 31 C0 xor eax, eax
8E D8 mov ds, ax
0F 01 16 18 00 lgdt [gdt]
0F 20 C0 mov eax, cr0
0C 01 or al, 1
0F 22 C0 mov cr0, eax
EA 30 00 08 00 jmp 8:protected_mode
90 align 8
gdt:
; Global Descriptor Table size - 1
; pointer to table, null selector
; is a good location for this
17 00 dw 23
18 00 00 00 dd gdt
00 00 dw 0
; maximum pm code selector = #8
FF FF 00 00 00 9A CF 00 dw 0FFFFh, 0, 9A00h, 0CFh
; maximum pm data selector = #16
FF FF 00 00 00 92 CF 00 dw 0FFFFh, 0, 9200h, 0CFh
use32
protected_mode:
Mike Gonta
look and see - many look but few see
http://aeBIOS.com


|