I always found that the lack of registers on the original 8 bit PC's 8088, the XT's 8086 and subsequent 80186, 80286, 80386, 80486, etc. infuriatinng.
It takes a lot of clever memory shunting and stacking to overcome the problem.... which leads to slower running software.
By comaprison, the Z80 had more than 3 times the instruction set of the 8088 and twice the registers to play with.
My XT had the Intel 80386 card fitted, which I still have.
Also only the AX / EAX register can contain the result of an ALU operation, port call,etc. where as the 68000 can use the D0 to D7 for the same operations.
I must admit that the dual core and quad core Intel processors are welcome. For those who don't do Assembler or Machine Code I'll explain....
On a normal processor any call to a subroutine results in having to stack the contents of the ALU otherwise it will be lost. Also some other registers,which might be holding binary data essential to your programme will also have to be stacked as calling BIOS (Built In Operating System) routines will corupt certain registers asit will use them.
In a dual core and quad core processor, there is a second ALU (dual core) and multiple ALUs (quad core) which activate and handle subroutines (branch instructions in Machine Code jargon).
On a quad core itis possibleto call a subroutine from a subroutine from a subroutine, which is a serious no no taught in coleges and universities all over the planet.
This is why the quad core is ever so special.... it has four ALU, the normal ALU plus three for handling subroutines, subsubroutines oand subsubsubroutines.