Autor Thema: Call auf 0x500 erzeugt GPF  (Gelesen 4440 mal)

rizor

  • Beiträge: 521
    • Profil anzeigen
Gespeichert
« am: 23. October 2011, 14:45 »
Hi zusammen,

ich habe mir gerade mal Code geschrieben, der zurück in den RM springt, dort BIOS-Interrupts verwenden soll und dann zurück in den PM springen muss. Der Code wird ordentlich gebaut und als Flat-Binary gelinkt. Der Linker nutzt 0x500 als Basisadresse.
Wenn ich nun den Code mit .incbin in meinen Kernel einbinde und dann auf 0x500 kopiere, sollte ja alles soweit funktionieren.
Leider gibt es beim Call auf 0x500 einen GPF und der Error-Code ist 0x5b4.

Woran kann das liegen?
Kann es sein, dass was mit der GDT von GRUB nicht passt oder so?

Gruß,
rizor
Programmiertechnik:
Vermeide in Assembler zu programmieren wann immer es geht.

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 23. October 2011, 15:31 »
Du solltest bevor du so etwas tust, auf jeden Fall deine eigene GDT laden, und nicht die von GRUB benutzen. Ansonsten ist die Problembeschreibung zu unspezifisch, um da was genaueres sagen zu können.
Dieser Text wird unter jedem Beitrag angezeigt.

 

Einloggen