Autor Thema: CS ohne jmp aktualisieren  (Gelesen 4714 mal)

sp

  • Gast
Gespeichert
« am: 20. February 2005, 16:33 »
Hallo

nach dem ich nun mit Grub boote, bin ich dabei GDT Verwaltungsfunktionen in C zu schreiben. Nun stehe ich aber vor einem Problem, wie kann ich das Codesegment neu "laden" lassen? Im Moment läuft es so, Grub läd meinen Kernel und ich lade meine GDT. Jetzt würde ja ein Jump ins neue Codesegment folgen, nur das ist in C wohl nicht so gut. Daher meine Frage, kann ich CS auch ohne Jump aktualiseren ?

Danke.

sp

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #1 am: 20. February 2005, 16:42 »
Ein Neuladen von CS erfolgt nach vielen Befehlen/Ereignissen z.B.:
-Far Call
-Far Jump
-Int
-iret
Soetwas in der Art muss immer erfolgen, einfach ein Neuladen von CS geht nicht. Aber man kann ganz einfach sowas machen(in NASM):
jmp NEW_CS: $+7
...
In C geht sowas nicht, da musst du auf ASM zurückgreifen.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 20. February 2005, 16:50 »
Eventuell Inline-ASM...wenn du nicht extra eine Obj.-Datei dazulinken willst :D

 

Einloggen