Path: utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!zephyr.ens.tek.com!tekcrl!tekgvs!toma From: toma@tekgvs.LABS.TEK.COM (Tom Almy) Newsgroups: comp.sys.ibm.pc Subject: Re: 386 instructions Message-ID: <6655@tekgvs.LABS.TEK.COM> Date: 12 Jan 90 21:43:54 GMT References: <13346@garnet.BBN.COM> <580@watserv1.waterloo.edu> <6142@internal.Apple.COM> <8166@portia.Stanford.EDU> Reply-To: toma@tekgvs.LABS.TEK.COM (Tom Almy) Distribution: comp Organization: Tektronix, Inc., Beaverton, OR. Lines: 30 In article <8166@portia.Stanford.EDU> dhinds@portia.Stanford.EDU (David Hinds) writes: > > On a tangent to the previous articles in the series, why are these DOS >extenders and things needed anyway??? >[Statements I agree with] >Any DOS >program can use the 386's 32-bit registers, extended arithmetic, and new >addressing modes. But with the cost of having to put prefix bytes on each such instruction >Any DOS program can simply use 32-bit addresses to access >extended memory. Not true. While you can do 32 bit address calculation, the resulting address must be 16 bits (before adding the contents of the 16 bit segment selector). To quote the Intel 80386 Programmer's Reference Manual, "Unlike the 8086 and 80286, 32-bit effective addresses can be generated (via the address-size prefix); however, the value of a 32-bit address may not exceed 65535 without causing an exception. >For a single >task, the 386 can run 32-bit code just as well under DOS in real mode, as >it can under UNIX, OS/2, or a DOS extender in protected mode. Not true, for you still have to deal with 64k segments and suffer the additional code size of those prefix bytes. The linear addressing is a big win for many memory intensive programs. Tom Almy toma@tekgvs.labs.tek.com Standard Disclaimers Apply