Difference between revisions of "Stack"

From CDOT Wiki
Jump to: navigation, search
(Created page with 'Category:Computer Architecture A ''stack'' is an array where values are added (pushed) or removed (pulled) to/from the end of the array only. Most CPU designs incorporate one…')
 
Line 3: Line 3:
  
 
Hardware stacks are implemented through the use of a [[Register#Stack Pointer|stack pointer]] register, which is used for indirect read/writes, with the stack pointer automatically incremented or decremented on each access. On some architectures, the stack grows downward in memory; in others, it grows upward.
 
Hardware stacks are implemented through the use of a [[Register#Stack Pointer|stack pointer]] register, which is used for indirect read/writes, with the stack pointer automatically incremented or decremented on each access. On some architectures, the stack grows downward in memory; in others, it grows upward.
 +
 +
In a few historical cases (e.g., old Intel 4004 and 8008 processors) the stack was implemented in registers internal to the CPU rather than in general address space.

Revision as of 21:33, 26 November 2016

A stack is an array where values are added (pushed) or removed (pulled) to/from the end of the array only. Most CPU designs incorporate one or more hardware-managed stacks which are used to store and restore state information during subroutine calls, exceptions, and interrupts.

Hardware stacks are implemented through the use of a stack pointer register, which is used for indirect read/writes, with the stack pointer automatically incremented or decremented on each access. On some architectures, the stack grows downward in memory; in others, it grows upward.

In a few historical cases (e.g., old Intel 4004 and 8008 processors) the stack was implemented in registers internal to the CPU rather than in general address space.