Article View: net.micro.pc
Article #6769Re: Segment Registers -- 8086/80286
From: Kevin P. Kleinfelter
Date: Wed, 04 Jun 1986 12:56
Date: Wed, 04 Jun 1986 12:56
22 lines
1665 bytes
1665 bytes
In article <494@ubvax.UUCP>, skip@ubvax.UUCP writes:
> In article <146@apr.UUCP> las@apr.UUCP (Larry Shurr) writes:
> > ...
> ... and if you ever plan on writing programs for the i80286, don't
> "normalize" pointers. To paraphrase some Microsoft documentation:
>
> When a program loads a segment register on an 8086, it is
> actually loading a displacement value. On the 80286, what
> is loaded is actually a segment number indexing to an entry
> in the master segment table. The actual displacement value
> is loaded from that table. There is NO relation between
> segment N and segment N+1 (ie N+1:0 != N:10h).
>
So how will one compare pointers? If you can't normalize them, two pointers
could reference the same address, but not contain the same values. In
a language such as Pascal, equality is a valid test on pointers. In a language
such as Modula-2, pointer arithmetic is valid. How can items such as these
be implemented without normalization of pointers?
Confused,
Kevin Kleinfelter (kpk@gitpyr.UUCP)
Technical Details
Message-ID:
<1851@gitpyr.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!watmath!clyde!cbosgd!gatech!gitpyr!kpkReferences:
<165@sci.UUCP> <146@apr.UUCP> <494@ubvax.UUCP>Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: arc1-ca.pugleaf.net!utzoo!watmath!clyde!cbosgd!gatech!gitpyr!kpk From: kpk@gitpyr.UUCP (Kevin P. Kleinfelter) Newsgroups: net.micro.pc Subject: Re: Segment Registers -- 8086/80286 Message-ID: <1851@gitpyr.UUCP> Date: Wed, 4-Jun-86 08:56:28 EDT Article-I.D.: gitpyr.1851 Posted: Wed Jun 4 08:56:28 1986 Date-Received: Sat, 7-Jun-86 02:21:13 EDT References: <165@sci.UUCP> <146@apr.UUCP> <494@ubvax.UUCP> Organization: Georgia Institute of Technology Lines: 22 Keywords: 286 segment registers