comp.lang.ada
 help / color / mirror / Atom feed
From: Nick Roberts <nick.roberts@acm.org>
Subject: Re: Ada equivalent for C-pointer?
Date: Sat, 15 Jan 2005 15:51:43 +0000
Date: 2005-01-15T15:51:43+00:00	[thread overview]
Message-ID: <gemini.iad826000p84p02bc.nick.roberts@acm.org> (raw)
In-Reply-To: mailman.55.1105743826.527.comp.lang.ada@ada-france.org

Stephen Leake <stephen_leake@acm.org> wrote:

> On older x86 systems, when 16 bit operating systems were used, there were
> two kinds of pointers; "near" pointers, 16 bits in size, and "far"
> pointers, 32 or 48 bits in size.
> 
> These days, you should interpret "far" as a noop, and just think of it as
> a pointer.

I want to be pedantic about this; please bear with me.

In what is called the 'flat' 32-bit memory model, a far pointer is the same
as near pointer (a 32-bit absolute offset, on its own). Since 32-bit Windows
(and indeed 32-bit Linux) only uses the flat memory model, this mode
appertains mandatorily.

However, in 32-bit segmented mode, a far pointer comprises a 32-bit offset
plus a 16-bit segment selector. These are stored in memory in a format which
is 64 bits in size (16 bits are wasted).

I understand there are some C compilers which support 32-bit segmented mode
compilation (e.g. WATCOM), but GCC never has and probably never will.

The distinction may seem pointless (sorry :-) to most people, but it matters
to me (because it will matter to AdaOS ;-)

To clarify, when we are talking about near and far pointers, we are
specifically talking about the 32-bit Intel Architecture (IA-32). I'm not
aware of any other contemporary architecture supporting a superimposed
segmentation scheme.

-- 
Nick Roberts



  reply	other threads:[~2005-01-15 15:51 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-01-14 16:41 Ada equivalent for C-pointer? Alfred Hilscher
2005-01-14 17:00 ` Duncan Sands
2005-01-14 20:05   ` tmoran
2005-01-15  5:00     ` Brian May
2005-01-14 22:33 ` Keith Thompson
2005-01-14 23:03   ` Stephen Leake
2005-01-15 15:51     ` Nick Roberts [this message]
2005-01-15 18:54       ` tmoran
2005-01-16  1:43         ` Keith Thompson
2005-01-17 21:35       ` Randy Brukardt
2005-01-15  9:09 ` Martin Krischik
2005-01-15 16:03 ` Nick Roberts
2005-01-15 16:27   ` Pascal Obry
2005-01-15 16:50     ` Nick Roberts
2005-01-15 17:11       ` Simon Wright
2005-01-15 18:46         ` Nick Roberts
2005-01-15 17:49       ` Pascal Obry
2005-01-16  8:44       ` Martin Krischik
2005-01-16  9:58         ` Pascal Obry
2005-01-16 11:07           ` Martin Krischik
2005-01-16  8:36     ` Martin Krischik
2005-01-16 15:01       ` Niklas Holsti
2005-01-16 16:02         ` Martin Krischik
2005-01-17 15:33           ` Niklas Holsti
2005-01-16 20:39         ` Nick Roberts
2005-01-17 21:38     ` Randy Brukardt
2005-01-17 21:45       ` Pascal Obry
2005-01-17 13:11 ` Alfred Hilscher
2005-01-18  7:31   ` Keith Thompson
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox