Ich bin gerade dabei die GDT einzurichten. Ich arbeite mit GRUB, es ist
also schon eine GDT vorhanden, deshalb lade ich die Segmentregister neu.
Ich arbeite nach diesem(n) Tutorial(s):
speziell für GDT:
http://www.lowlevel.eu/wiki/Global_Descriptor_TableHauptseite:
http://www.lowlevel.eu/wiki/Teil_5_-_InterruptsSobald ich Segmentregister neu lade, wird ein reboot ausgeführt. Ich
habe schon eine Vermutung. Und zwar wird im Tutorial angegeben, das
jeder Eintrag in die GDT 8 Byte groß ist. Aber wenn ich den Prototyp der
Funktion, die für die Erstellung eines Eintrags zuständig ist, anschaue,
dann sind darin 2 unsigned und 1 normaler int enthalten. Das wären ja
dann 32bit*3 /8 = 12 Byte oder. Da ich ja in ein bestimmtes Register
Anfang und Endadresse der GDT schreiben muss, denke ich dass hier der
Fehler liegt. Wenn ich aber 12 Byte für die Länge benutze taucht der
selbe Fehler wieder auf. Kann jemand von euch den Fehler finden?
Im Anhang befinden sich meine c und Assemblerdateinen