Skip to contentSkip to conversation

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

DISCUSSION jiangtao.jit 3 participants 3 messages Aug 11, 2011

lore
Share & tools
lore
#0 lore raw

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
	movw	%cs, %bx
	shll	$4, %ebx
	addl	%ebx, 2f

...
-------------------

what's the value of %cs here? how was it loaded?
i would really appreciate if someone provide me some references thank you very much

2011-08-11
jiangtao.jit

#1 lore raw
Quoted 9 lines · jiangtao.jit

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)

Quoted 1 line

? ? ? ?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..

Signature · 7 lines
regards,

Mulyadi Santosa
Freelance Linux trainer and consultant

blog: the-hydra.blogspot.com
training: mulyaditraining.blogspot.com
#2 lore raw
Quoted 11 lines · Mulyadi Santosa
Quoted 9 lines · jiangtao.jit

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

Quoted 1 line

i think it's zeroing bx (l--> low I suppose)

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

Quoted 5 lines
Quoted 2 lines

? ? ? ?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