Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!husc6!sri-unix!sri-spam!mordor!lll-tis!ptsfa!ihnp4!alberta!ubc-vision!fornax!bby-bc!john From: john@bby-bc.UUCP (john) Newsgroups: comp.unix.xenix,comp.sys.intel,comp.sys.ibm.pc Subject: Re: XENIX 386 benchmark results Message-ID: <130@bby-bc.UUCP> Date: Fri, 3-Jul-87 14:00:18 EDT Article-I.D.: bby-bc.130 Posted: Fri Jul 3 14:00:18 1987 Date-Received: Sat, 4-Jul-87 15:30:37 EDT References: <127@spdcc.COM> <225@m10ux.UUCP> <139@spdcc.COM> Organization: Burnaby, British Columbia, Canada Lines: 19 Xref: mnetor comp.unix.xenix:435 comp.sys.intel:286 comp.sys.ibm.pc:5295 > then 16-bit addressing and operands are the default; if D==1, then all > addresses and operands are taken to be 32 bits wide. There are two opcode > prefixes which invert the current sizes of addresses and operands for that > instruction. These prefixes are most useful in a real mode DOS environment > to force 32-bit operations. They're generally unnecessary in a protected mode > environment, since the OS sets your code segment selector appropriately. > I could imagine some hacks to get 16-bit behavior in a 32-bit environment, > but they'd be certainly unusual. So if you want to do 16 and 32 bit arithmetic in the same procedure all the instructions with operands of one of the sizes has to be prefixed? Do any of the existing compilers do this? Are there instuctions for 16->32 and vice versa conversions along the lines of CBW? Assuming 32 bit wide memory is there any unusual speed penalties for particular instuctions with 16/32 bit operands, e.g. are shifts faster with one particualr size?