[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] access gdtdesc on segment 0 unconditionally (Re: [PATCH] i38
From: |
Robert Millan |
Subject: |
Re: [PATCH] access gdtdesc on segment 0 unconditionally (Re: [PATCH] i386-qemu port) |
Date: |
Tue, 23 Jun 2009 00:43:27 +0200 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
On Mon, Jun 22, 2009 at 05:44:43PM -0400, Pavel Roskin wrote:
> On Mon, 2009-06-22 at 23:32 +0200, Robert Millan wrote:
> > On Mon, Jun 22, 2009 at 10:52:13PM +0200, Robert Millan wrote:
> > > I don't think it's possible to use relative addresses
> > > with this particular instruction.
> >
> > Uhm sorry, this was silly. Of course you can use addresses relative to a
> > segment in lgdt, but this doesn't change the fact that GAS always gives
> > you absolute ones.
> >
> > Also, I'm not sure if it's possible to use a 16-bit field in this
> > instruction,
> > it could be that the field is always 32-bit, even if it's relative to a
> > segment. This dump is from the i386-pc kernel.img:
> >
> > 836f: 2e 67 66 0f 01 15 68 addr32 lgdtl %cs:0x8368
> > 8376: 83 00 00
> >
> > a little-endian 0x00008368 is seen here, indicating the field is 32-bit.
>
> But if I omit ADDR32, I get:
>
> 0000016e <real_to_prot>:
> 16e: fa cli
> 16f: 2e 66 0f 01 16 68 01 lgdtl %cs:0x168
> 176: 0f 20 c0 mov %cr0,%eax
>
> The address is 16-bit.
If I omit ADDR32 on i386-pc, I get:
836f: 2e 66 0f 01 16 68 83 lgdtl %cs:-0x7c98
"-0x7c98" being the signed version of 0x8368, which is also 16-bit. What is
really odd is that you got 0x168 which is an offset to 0x8200, when in fact
%cs is 0, so I don't think your binary would work (did you test it?).
Btw my binutils version is 2.18.0.20080103.
--
Robert Millan
The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and
how) you may access your data; but nobody's threatening your freedom: we
still allow you to remove your data and not access it at all."
- Re: [PATCH] i386-qemu port, (continued)
- Re: [PATCH] i386-qemu port, Robert Millan, 2009/06/21
- [PATCH] access gdtdesc on segment 0 unconditionally (Re: [PATCH] i386-qemu port), Robert Millan, 2009/06/21
- Re: [PATCH] access gdtdesc on segment 0 unconditionally (Re: [PATCH] i386-qemu port), Pavel Roskin, 2009/06/21
- Re: [PATCH] access gdtdesc on segment 0 unconditionally (Re: [PATCH] i386-qemu port), Robert Millan, 2009/06/22
- Re: [PATCH] access gdtdesc on segment 0 unconditionally (Re: [PATCH] i386-qemu port), Pavel Roskin, 2009/06/22
- Re: [PATCH] access gdtdesc on segment 0 unconditionally (Re: [PATCH] i386-qemu port), Robert Millan, 2009/06/22
- Re: [PATCH] access gdtdesc on segment 0 unconditionally (Re: [PATCH] i386-qemu port), Robert Millan, 2009/06/22
- Re: [PATCH] access gdtdesc on segment 0 unconditionally (Re: [PATCH] i386-qemu port), Pavel Roskin, 2009/06/22
- Re: [PATCH] access gdtdesc on segment 0 unconditionally (Re: [PATCH] i386-qemu port),
Robert Millan <=
- Re: [PATCH] access gdtdesc on segment 0 unconditionally (Re: [PATCH] i386-qemu port), Pavel Roskin, 2009/06/22
- Re: [PATCH] access gdtdesc on segment 0 unconditionally (Re: [PATCH] i386-qemu port), Robert Millan, 2009/06/23
- Re: [PATCH] access gdtdesc on segment 0 unconditionally (Re: [PATCH] i386-qemu port), Pavel Roskin, 2009/06/22
- Re: [PATCH] access gdtdesc on segment 0 unconditionally (Re: [PATCH] i386-qemu port), Robert Millan, 2009/06/22
- about Apple compiler (Re: [PATCH] access gdtdesc on segment 0 unconditionally (Re: [PATCH] i386-qemu port)), Robert Millan, 2009/06/22
- Re: about Apple compiler (Re: [PATCH] access gdtdesc on segment 0 unconditionally (Re: [PATCH] i386-qemu port)), Pavel Roskin, 2009/06/22
[PATCH] s/GRUB_MEMORY_MACHINE_LINK_ADDR/GRUB_KERNEL_MACHINE_LINK_ADDR/g (Re: [PATCH] i386-qemu port), Robert Millan, 2009/06/22
clean patch for i386-qemu port (Re: [PATCH] i386-qemu port), Robert Millan, 2009/06/22