What's the value of %cs before jump in pm32 on booting?

Jonathan Neuschäfer j.neuschaefer at gmx.net
Thu Aug 11 12:29:25 EDT 2011


On Thu, Aug 11, 2011 at 09:53:10PM +0700, Mulyadi Santosa wrote:
> On Thu, Aug 11, 2011 at 18:18, jiangtao.jit <jiangtao.jit at gmail.com> wrote:
> > Hi all:
> >
> > on booting of x86
> > top of file arch/x86/boot/pmjump.S
> > there is code
> > -------------------
> > GLOBAL(protected_mode_jump)
> >        movl    %edx, %esi
> >        xorl    %ebx, %ebx
> 
> i think it's zeroing bx (l--> low I suppose)

Long, actually, i.e. 32-bit.

> 
> >        movw    %cs, %bx
> 
> then, it should zero the content of cs. Quite likely, it means to jump
> to cpu ring level 0 and do something there..

No, this is written in AT&T syntax, where the source comes first, and
then the destination. IOW, the code means: Copy the 16 bit register CS
into the lower 16 bit of EBX (which is BX).

CMIIW,
	Jonathan Neuschäfer



More information about the Kernelnewbies mailing list