Mail Archives: djgpp-workers/2001/08/27/12:01:45
>
> At 15:56 27/08/01 , vous avez écrit:
> > > Doesn't this mean that the higher part of a index is not used?
> > > (i.e. if $esi contain 0x10008,
> > > will
> > > movl %gs:(%esi),%eax
> > > load into %eax
> > > the content of linear address 0x10008 or 0x00008 ??)
> > >
> > > Can we really access to UMB area with a 16 bit selector ?
> I think that you misunderstood my question.
Oh, sorry!
> I know the segment register are 16 bit registers but I was talking about
> something completely different:
> The descriptor of each selector allocated as a field that specifies if
> the OS should
> consider it as a 16 bit or a 32 bit data area.
>
> But as the instruction explicitly have a 16 bit or 32 bit nature
> (depending on some CR0 field IIRC) I don't know really if this
No, it depends on the presence/absense of the address prefix and what
the entry in GDT/LDT is set to. If I understood you correctly that
selector points to a 16-bit segment, so the presence of the address
prefix would imply 32-bit.
> does influence the reading past the first megabyte or not.
Hmm. Above you're talking about UMB and now past the first megabyte.
> My question is more to know if the OS shouldn't forbid to
> access anything above the 0xffff memory position relative to selector base
> if the
> selector is marked as a 16 bit selector.
This ought to depend on limit of the selector, not on the "bitness" of
the selector, but I'm not sure.
Right,
MartinS
- Raw text -