Chuck Guzis wrote:
I think the hardest machines to program for are
the ones with "not quite
enough" registers. Programming an IBM 1620 is easy--there are no
accumulators, so there isn't much choice. Even a single accumulator
calls
out a certain programming style. But, say 3 or 4 registers gets you
taking
time to think about how to best use them. On the other hand, with the
CDC
Cyber 200, you had 256 64 bit registers, so you could keep just about
everything in registers--no tough thought there. But on the 808x, there
are just few enough and they're orthogonal enough to make you think.
I would say un-orthogonal myself. Other than the 8080,6800 & 6502
I can't think of any other architecture styles for 8 bit cpu's.
Hindsight has proven that they are smallest practical computer systems
with 16k for the OS and 48k for user space programs.
Offhand two index registers, a stack frame pointer, base data
pointer and three accumulators seem to be about right. Add a program
counter and that brings you to 7 registers. More than that you are
moving data around to use 'free' registers.
The 8051 family offers a different approach (CODE + DATA).
Many of the PICs have seriously perverse ideas of what
a processor should look like :-/
And, 8x300 probably sets the standard for a "RISC 8" machine.
I liked the 2650 (?) but it was short-lived.