Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/5/84; site ism780c.UUCP Path: utzoo!watmath!clyde!burl!ulysses!gamma!epsilon!zeta!sabre!petrus!bellcore!decvax!ittatc!dcdwest!sdcsvax!sdcrdcf!ism780c!tim From: tim@ism780c.UUCP (Tim Smith) Newsgroups: net.micro,net.arch Subject: Re: Re: 386 Family Products (8086 sucks Message-ID: <154@ism780c.UUCP> Date: Fri, 13-Dec-85 22:07:19 EST Article-I.D.: ism780c.154 Posted: Fri Dec 13 22:07:19 1985 Date-Received: Mon, 16-Dec-85 04:27:55 EST References: <133@daisy.UUCP> <97800013@ima.UUCP> <464@looking.UUCP> <879@ecsvax.UUCP> <466@looking.UUCP> Reply-To: tim@ism780c.UUCP (Tim Smith) Organization: Interactive Systems Corp., Santa Monica, CA Lines: 31 Xref: watmath net.micro:13089 net.arch:2298 In article <466@looking.UUCP> brad@looking.UUCP (Brad Templeton) writes: > >But all this aside, is the 8086 the processor to run these heavy floating >point applications? Certainly not without the 8087, and if you're that >keen on speed but insist on 8086 you should have gone to 286, where it is >actually possible to have segment 2 64K beyond segment 1, allowing full >sized objects with little work by the compiler. I don't know if anybody >has done this, though. > It could have been done with no work from the compiler if Intel had put the bits in a reasonable place. A full pointer has a selector and an offset. Here is what they look like: Selector: -------------------------------------------------------- | Segment Number ( 13 bits ) | Other Stuff ( 3 bits ) | -------------------------------------------------------- Offset: -------------------------------------------------------- | Offset in Segment ( 16 bits ) | -------------------------------------------------------- If they had swapped the Segment number and the Other Stuff, then one could stick 64k segments one after the other, and do reasonable stuff with pointers, and everyone would live happily ever after. Could someone from Intel please explain why it was done this way instead? The only guess I have heard is that since the Segment Number is an index into a table of eight byte things, they saved having to do a shift by three. -- Tim Smith sdcrdcf!ism780c!tim || ima!ism780!tim || ihnp4!cithep!tim