J
James Kanze
[ ... ]Of the early machines, the Burroughs machines were stack based:
they didn't have registers, just top of stack. Other than such
special cases, however, I think that the PDP-11 was the first
machine which had a hardware stack (via auto-increment and
auto-decrement instructions).
Interesting, for two reasons. The first is that pre-1970, the
few stack based machines seemed to be very much oriented to
executing Algol. (Burroughs was the first, and the only one
which had any commercial success. If you can count Burroughs as
a commercial success---although if I'm not mistaken, Unisys only
dropped the architecture in the last four or five years.) And
secondly, while the PDP-11 may have been the first general
purpose machine with a hardware stack (and one notes the lack of
any of its major competitors, like DG or Prime), it actually
didn't precede the Intel 8008 by any significant amount of time.
(But would the 8008 count: it had a stack, but I think it could
only be used for return addresses---and was limited to 8
entries.)
There are also cases where I don't know whether to count them or
not. The TI 9900 kept its "registers" in main memory, and one
form of the call instruction remapped them, putting a pointer to
the previous set in one of the registers. Which certainly acts
like a stack, even if there was no push or pop.