Okay, danke für die rasche Antwort...:
[bits 16]
org 0x0
jmp start
; ===============================
; = Global Descriptor Table =
; ===============================
Descriptoren dw 0x0000
dw 0x0000
db 0x00
db 0x00
db 0x00
db 0x00
dw 0xFFFF
dw 0x0000
db 0x00
db 0x9A
db 0xCF
db 0x00
dw 0xFFFF
dw 0x0000
db 0x00
db 0x92
db 0xCF
db 0x00
GDT dw 23
dd 0
; ===============================
; = Protected Mode Start =
; ===============================
start:
mov ax, cs
mov ds, ax
cli
xor eax, eax
mov ax, ds
shl eax, 4
add eax, Descriptoren
mov dword [GDT+2], eax
lgdt [GDT]
mov eax, cr0
or al, 00000001b
mov cr0, eax
jmp 0x0008:dword 0x10000+ProtectedMode
; =======================================
; = !Here starts 32bit protected mode! =
; =======================================
[bits 32]
ProtectedMode:
mov ax, 0x0010
mov ds, ax
mov es, ax
mov ss, ax
mov fs, ax
mov gs, ax
mov esp, 0x1FFFFF
Was ist daran dann falsch? (Funzt soweit, nur mit C dann nicht, obwohl der Code stimmt...der kann absolut keine Globalen Variablen (also nur wenn ihnen Global ein wert zugewiesen wird) und keine Parameter und Returnwerte bei Funktionen O_O)
Achja, warum eigentlich 0x0010?
@BlueXSeven hast du ICQ oder so?