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.
Cheers,
Chuck