[ASM]Skoczyć ... ale dokąd

0

Witam.
Mam taki problem:
Pisze kernela do mojego systemu. Podczas startu jądra włączana jest pamięć wirtualna i początek kodu jądra ustawiany jest na 3GB pamięci. Moje pytanie brzmi: Jak obliczyć offset względem początku kodu kernela a miejsca gdzie jest etykieta. Oto przykladowy kod:

start: ;tutaj startuje kernel
        ... ;tu jest ustawiany stos, ladowane GDT, IDT i LDT
        call _InitMem ;Inicjalijacja pamięci wirtualnej, po wykonaniu tej procedury 
                            ;kernel znajduje się w 3GB pamięci
        jmp ;tu musze skoczyć do adresu 3GB + offset tej etykiety
vmem: ;tu chce skoczyć.
        ;dalsza czesc kernela
         

Wiem że to troche zagmatwane ale nie wiedziałem jak to wytłumaczyć ;)

0
jmp (vmem+0x3000000000) ;?

btw, sam piszesz tego osa?

[dop]
Nie latwiej pamiec dla trybu kernela zmapowac tak jak jest? A tylko przeladowywac Page Directory jak beda zmieniac sie procesy?

0

Dzięki.
Sam próbuje cos co przypomina OS'a napisać ale nieciekawie mi idzie :) Wim że nie mam szans czegoś takiego stworzyć ale naucze sie czegoś ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1