Roy J. Tellason wrote:
I'm also quite comfortable with the z80, and sure
wouldn't mind finding some
way to actually get paid for working with them... :-)
There's nothing wrong with the 8080/Z80 lines. For the era they are in,
their opcodes are reasonable, and not worse than the 6809 or 6502. Not
as clean as they could be, but not so bad either.
When you attempt, however, to build another chip, the 8088 and still
keep compatibility with the 8080, that's where you're starting to make
the wrong turn. Now, the 8086 itself, is also reasonably ok, but then,
you get into weird issues where you can only use some registers for some
operations, but not others.
Then, the next wrong turn was the 386 line. Once you go into 32 bit
mode, the old 8 and 16 bit opcodes no longer make any sense and the
whole thing just gets ugly. Intel should have gone to a new set of
opcodes altogether - a clean 32 bit set of opcodes with enough registers.
To provide an example: SPARC is a 32 bit RISC architecture. Sun could
have really screwed things up when they went to 64 bits. Instead, they
did the right thing. They extended all of the registers to 64 bits, and
added a new 64 bit status register. So your code is backwards
compatible to 32 bit code, however, with a simple switch, it can run in
64 bits without getting all ugly, without things like segment registers
and weirdo addressing modes. It started out cleanly from the start, and
this perhaps helped them move to 64 bits more easily.