Ich habe das mal so angepasst:
in segmentation.h
void initializeGDT() {
gdt[0] = createGDTEntry(0, 0, 0, 0);
gdt[1] = createGDTEntry(0, ~0, READABLE | EXECUTABLE, 0);
gdt[2] = createGDTEntry(0, ~0, READABLE, 0);
lgdt(&gdt);
}
und in io.s
lgdt:
mov eax, [esp + 4]
lgdt [eax]
jmp SEGSEL_KERNEL_CS:.load_segments
.load_segments
mov ax, SEGSEL_KERNEL_DS
mov ds, ax
mov ss, ax
mov es, ax
mov gs, ax
mov fs, ax
ret
Rebootet aber immer noch dauernd.
Wie kann ich das debuggen? Den bochs debugger hab ich bis jetzt auf jeden Fall noch nicht zum laufen bekommen
edit: ich hab jetzt den debugger hinbekommen, aber bin noch nicht dazu gekommen, weiter zu machen.