Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84 SMI; site sun.uucp Path: utzoo!linus!philabs!cmcl2!seismo!harvard!talcott!panda!genrad!decvax!decwrl!sun!guy From: guy@sun.uucp (Guy Harris) Newsgroups: net.arch Subject: Re: Re: Cleverness in the WE-32001 Message-ID: <2546@sun.uucp> Date: Fri, 2-Aug-85 03:01:20 EDT Article-I.D.: sun.2546 Posted: Fri Aug 2 03:01:20 1985 Date-Received: Sun, 4-Aug-85 06:12:26 EDT References: <1121@ihuxb.UUCP> <996@ariel.UUCP> Distribution: net Organization: Sun Microsystems, Inc. Lines: 22 > This also may be a holdover from the past. Most of the hardware > implementations that I know about which use the 8086 and its > descendants have separate I and D space. In that case PC relative > addressing for data objects won't work. I looked at the "iAPX 286 Programmer's Reference Manual" and don't see any PC-relative (or, in 80*8[68]-family terms, IP-relative) addressing modes. That's why PC relative addressing for data objects won't work on the 8086 and its descendants - it doesn't exist. The PDP-11s with separate I&D space use I space for references to "instructions, index words, absolute addresses, and immediate operands" - this implies that any operand references using the PC as an index register other than immediate operands and absolute addresses use D space, so PC-relative addressing for data objects will work. The M68000 and M68010, however, have the PC as a register separate from the general-purpose registers, and all references relative to it are "classified as program references", which means they refer to I space if the hardware has separate I&D space. Guy Harris