Da mir die 512 Bytes für den Bootloader nicht ausreichen bevor ich in den PMode schalte, will ich meinen Bootloader teilen. Der erste Teil lädt (unter anderem 

 ) den Code des zweiten Teils des Bootloaders in den Speicher und führt in aus. Im zweiten Teil soll der PMode aktiviert werden. Nun funktioniert der Code, welcher vor dem Teilen funktioniert hat, nicht mehr. 
Ich denke es liegt daran dass die Adresse der GDT nicht mehr stimmt...
Hier der Code des zweiten Teils meines Bootloaders, welcher in den PMode schalten soll. Er liegt an 1000h:0000h im Speicher.
cli			                       
call _enable_a20		
xor ax ,ax
mov ax, ds
gdt [gdt_descriptor]		
mov eax, cr0			
or eax, 1			
mov cr0, eax			
jmp gdt_code:_init			
[bits 32]				
_init:
	
mov ax, 10h			
mov ds, ax
mov es, ax
mov ss, ax
mov esp, 090000h		
jmp $
; Es folgen Funktionen und Variablen
THX