Ich bin mir jetzt nicht sicher was du meinst, aber wenn du meinst wie ich die Adresse in den Trampolin Code bekomme wo der AP dann hinspringen soll?
Ich übergeben dem AP solche Sachen wie GDT, IDT, CR3 usw. über eine festgelegte Speicheradresse und da speichere ich auch die Adresse wo der AP dann hinspringen soll.
In etwa sowas:
Das wird an eine feste Adresse gespeichert und beim Trampolin Code habe ich dann sowas:
Hoffe das hilft dir weiter.
Ich übergeben dem AP solche Sachen wie GDT, IDT, CR3 usw. über eine festgelegte Speicheradresse und da speichere ich auch die Adresse wo der AP dann hinspringen soll.
In etwa sowas:
Code: [Auswählen]
struct smpInitStruc_t {
struct gdtr_t *gdtr;
struct idtr_t *idtr;
uint32t cr3;
void *jumpPoint;
};
Das wird an eine feste Adresse gespeichert und beim Trampolin Code habe ich dann sowas:
Code: [Auswählen]
mov edx,[FESTE_ADRESSE + 12]
;den ganzen kram um gdt und idt zu laden und in den pmode zu springen
...
;jetzt ist man schon im pmode und hat die segment register initialisiert
jmp [edx]
Hoffe das hilft dir weiter.

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert
