On 8/22/07, erik quanstrom <[EMAIL PROTECTED]> wrote:
> where is that time?  what i see in l.s
>
>         MOVL    $_startpg(SB), AX               /* this is a virtual address 
> */
>         MOVL    DX, CR0                         /* turn on paging */
>         JMP*    AX                              /* jump to the virtual 
> nirvana */
>
> perhaps i am missing it, but i don't see any point in the code
> where there's a problem.  the two instructions that do the switch
> access only registers.

But the EIP has to access the instructions. After the mov, you're
still at low memory. Paging is turned on at this time. The  JMP is
running at 0x10000something. So you turn paging on and do a jump, but
paging is on when you do the jmp and fetch from low memory. To make
the ifetch work you have to have the low map on.

I'll look at that code tonight again to make sure I'm not imaging
things, but I think this is right.

ron

Reply via email to