Re: Segment override and lldt instruction

"A D" <[email protected]> Wed, 30 May 2007 21:21:00 -0400
Newsgroups org.kernel.vger.linux-assembly
Message-ID <[email protected]>


>Frank Kotler wrote:
>>A D wrote:
>>Hi! I have couple of questions regarding gnu assembly. I've heard the word
>>segment override. Where segment register can be manually overriden. so how 
>>can i
>>override say ds register? can segment register be overriden to my 
>>preferred
>>memory address location?
>>
>>mov $0xf800, %ax
>>mov %ax, %es
>>mov %ds, %bx
>>
>>But I get segmentation fault error. How can i do it without error?
>
>Use a valid selector. You appear to have "heard about" some 16=bit real 
>mode stuff that is not true in protected mode. Take a look here:
>
>http://my.execpc.com/~geezer/johnfine/segments.htm
>
>In "Linux assembly", there is no reason you'd *want* to use a segment 
>override, or alter a segment register.
>
>>
>>Also I was looking at the function of lldt instruction. The manual says 
>>that:
>>"The source operand (a general-purpose register or a memory location)
>>contains a segment selector that points to a local descriptor table 
>>(LDT)."
>>
>>How can one make segment selector point to ldt?
>
>"lldt ax" or "lldt [mem]" (16-bits)... I guess. But why? The limit is 
>0xffffffff and the base is 0. (Windows uses fs in a way that might be 
>"interesting"..._
>
>If you're developing your own OS (using Linux), starting from a bootsector 
>- or GRUB - these instructions might be useful, but for "Linux assembly", 
>forget that segment registers exist! (and be glad! :)
>
>Best,
>Frank
>

Thanks Frank. I was just curious how these things work. Thanks for your
pointer.

_________________________________________________________________
Windows Live Hotmail. Now with better security, storage and features.  
www.newhotmail.ca?icid=WLHMENCA149