The idea is to combine these two principles together.
If we use zero-address instructions in a CPU, this implies having a stack memory. However, the idea of Von Neumann architecture is to store both data and instructions in the same place.
This means that PC is replaced with ESP, the stack pointer, which points to the top of the stack. The instruction that is to be executed is the one on the top of the stack, always. It is decoded, removed from the stack, and then executed. This means that we have to mix both data and instructions between each other, and we have to introduce some sort of additional flag or bit to each cell to differentiate between a "data" memory block and an "instruction".
Is that architecture possible or the ideas contradict each other?
-
$\begingroup$ At the very least, you would have to allow having more than one stack, otherwise the capabilities of the machine (at least abstractly, ignoring memory limitations etc.) drop from being Turing complete to a DPDA. $\endgroup$Emil Jeřábek– Emil Jeřábek2025年11月11日 10:28:03 +00:00Commented Nov 11 at 10:28