The Z80 and the 8051
To see the differences in concept between a microprocessor and a microcontroller, in the following table we will examine the pin configurations, architecture, and instruction sets for a 1980s-era 8-bit microprocessor, the Zilog Z80, and a microcontroller, the 8-bit Intel 8051:
Note that the point here is not to show that one design is "better" than the other,- the two designs are intended to be used for different purposes and in different ways. For example, the Z80 has a very rich instruction set. The penalty that is paid for this abundance is the number of multi-byte instructions needed, some 71% of the total number. Each byte of a multi-byte instruction must be fetched from program memory, and each fetch takes time; this results in longer program byte counts and slower execution time versus single-byte instructions. The 8051 has a 62% multi-byte instruction content; the 8051 program is more compact and will run faster to accomplish similar tasks.
The disadvantage of using a lean instruction .set as in the 8051 is increased programmer effort (expense) to write code,- this disadvantage can be overcome when writing large programs by the use of high-level languages such as BASIC and C, both of which are popular with 8051 system developers. The price paid for reducing programmer time (there is always a price) is the size of the program generated.