Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!thunder.mcrcim.mcgill.edu!snorkelwacker.mit.edu!think.com!rpi!zaphod.mps.ohio-state.edu!wuarchive!ukma!widener!iggy.GW.Vitalink.COM!pacbell.com!tandem!zorch!amiga0!mykes From: mykes@amiga0.SF-Bay.ORG (Mike Schwartz) Newsgroups: comp.sys.amiga.advocacy Subject: Re: 680x0 vs 80x86 Message-ID: Date: 27 Jun 91 08:16:22 GMT References: <92@ryptyde.UUCP> <1991Jun23.152230.17393@Sugar.NeoSoft.com> <112@ryptyde.UUCP> <1991Jun25.012010.3154@Sugar.NeoSoft.com> <125@ryptyde.UUCP> Organization: Amiga makes it possible Lines: 45 In article <125@ryptyde.UUCP> dant@ryptyde.UUCP (Daniel Tracy) writes: >In article <1991Jun25.012010.3154@Sugar.NeoSoft.com> peter@Sugar.NeoSoft.com (Peter da Silva) writes: >>In article <112@ryptyde.UUCP> dant@ryptyde.UUCP (Daniel Tracy) writes: >>> I was referring to the general-purpose address/data registers used in the >>> 8086 line! You wouldn't call these general purpose? >> >>Oh, sure. Both of them. >>-- >>Peter da Silva. `-_-' . >> 'U` "Have you hugged your wolf today?" > >I believe there are 8. All of which can be used as data registers, most >can be used as address registers, and 7 are implicit parameters to various >commands. The 80x8x has a few registers, but that does not make them general purpose. All but 2 are dedicated for use by various instructions of the CPU. You CAN use some of them as general purpose registers, but you won't want to use much of the CPU's instruction set. Specifically, the 80x8x has the following registers: AX,BX,CX,DX,SI,DI,BP,CS,DS,SS,ES, and SP. AX-DX can all be used similarly, but many instructions on the CPU require them to be used in dedicated manners. For example, the CX register is ALWAYs the count register for shift and memory move operations. The CS,DS,SS,ES registers are "segment" registers which are only useful for allowing the CPU to address a specific 64K part of memory. It is possible to access the entire address space of the CPU, but it requires manipulating both a segment register and an address register. And to make things worse, MS-DOS precludes the use of 32-bit registers (restricted to 16 bits without major tricks), and the math required to manipulate the segment registers in a general purpose way is expensive. On the other hand, the 68000 has 8 general purpose data registers and 7 general purpose address registers. The stack pointer is an 8th address register, and can be used as such if the software disables interrupts and deliberately disallows use of the stack. Every 68000 instruction that uses a data register can equally use any of the 8 data registers. Every 68000 instruction that uses an address register can equally use any of the 8 address registers. As an added feature of the 68000, each of the address registers can be used like a segment register (point to a 64K segment), but the math issue is non-existent. -- **************************************************** * I want games that look like Shadow of the Beast * * but play like Leisure Suit Larry. * ****************************************************