C
CBFalconer
Aardvark J. Bandersnatch said:That has always puzzled me. Why in the heck did the micro designers
take that route?
It started with the 8008, which had 7 8 bit registers designated a,
b, c, d, e, h, l. h and l were manipulated only as 8 bits each,
but the combination could be used to address up to a glorious 16k
of external memory. Note that hl pair, introducing register
specialization. Addressing was via a 3 bit field, which could
specify the 7 registers and the indirect via hl address, known as
m. 1/4 of the instructions simply moved data from one register to
another. Arithmetic was done with the a register (accumulator)
implied, which is also a register specialization.
The architecture was continued, for marketing and familiarity
reasons, into the 8080, which added a flags register (8 bit), an sp
register (16 bit) for stack, and instructions to combine the bc,
de, and hl registers into 16 bits and do arithmetic with them.
This was a real computer with 16 bits and an 8 bit path to external
memory. The whole personal computer explosion was really based on
this chip. Now the sp register joined the hl register as
specialized. A set of 16 bit arithmetic instructions was added
using the hl register as the 16 bit accumulator. The 6502 was
competition, and the Z80 was an enhancement (the z80 added more
specialized registers). Other chips had little influence.
The next step was the 8086 (and its 8 bit bussing clone, the
8088). Again, the register architecture was continued, with added
specialized registers and usages. The bc pair became the counting
register for string operations. The si and di indexing registers
(special purpose) were added. The bp (base register for stack
scopes) was added, all specialized. Also the various segment
registers. The adaptations kept the actual code size short yet
greatly expanded the addressing capabilities.
Other major steps were to the 80286 (not really significant) and
the 80386, which is the architectural base of most PC class
machines today.