[net.micro.68k] Intel processors vs. Motorola processors

elwell@osu-eddie.UUCP (Clayton M. Elwell) (05/31/85)

I have done extensive programming in C and assembly language on both the
8086 family and the 68000 family.  I have found that in all respects, the
68000 is much easier to use and allows me to write faster code.  Speed is
important to me, because a lot of what I write is graphics and screen
handling.

(Note: I will use '8086' and '68000' in a generic fashion, i.e. referring to
 the entire families in question)

    o Register complement

      Although occasionally the 68K address/data register distinction can
      be annoying, it's nothing compared to the hassle of the 8086.
      ``General purpose registers? Why would we want any of those?''
      ``Put a full address into a register? Nobody ever does that!''
      Argh.  Registers have one big advantage for both assembly language
      and compiled code: SPEED.

      It's also annoying to have to push/pop/exchange/etc. just to move
      things around so you can execute a SHIFT instruction (to pick an
      example out of a hat).  Orthogonality isn't just for the benefit
      of the hardware designers...

    o Address space and treatment

      I realize this is a religious issue, but I'll risk it anyway.
      First, real programs DO use more than 64K of code and data.  Some
      even want it all accessible at once.  Take text editors, formatters,
      spreadsheets, graphics systems, compilers [you know, the stuff no
      one ever actually uses :-)].  I'm sorry, segment registers do not
      constitute an 'advanced segmented architecture'.  If you want
      position-independent code, supply a PC-relative addressing mode.
      If you want memory management, use a real MMU.  An smart bank switch
      (oops, I mean segment register) is only useful at all when you want
      to use 8080/Z80 style code at any offset in your block of memory.

      I give the 8086 one thing:  It is far better than a Z80, and makes
      it real easy to port CP/M software without thinking to hard.  I
      don't consider this to be useful anymore.

    o Memory speed and resource usage

      This one is a tie as far as I can tell.  Both use a 4-clock memory
      cycle, both have prefetch queues, the bigger ones (286 & 020) both
      have a cache (although the 68020 has a 3-clock memory cycle as I
      understand it (though I may be wrong), and the 286 has a 4-clock
      cycle (from the 286 hardware reference manual crouching near my left
      elbow)).  From a pure bus speed standpoint, it seems to be a tie.


On the whole, I have found it a much less stressful task to write for the
68000.  When using C, the compiler can generate good enough code that I
don't have to resort to assembly language as often, and when I do, it's MUCH
more straightforward.  Programming should not always be an adventure in
processor peculiarities.

				-- Clayton Elwell