The first decision to be taken in ISA design is the type of internal storage in the CPU. The three major choice are: a stack and accumulator architectures. Let us study how a stack organization works.
A stack is a storage device that stores information in a last-in-first-out(LIFO) fashion. Only two type of operations are possible in a stack, namely push and pop operations. Push places data onto the top of the stack, while pop removes the topmost program and in some cases the operating can be used explicitly for execution of a program and in some cases the operating system implements its implicitly, such as in subroutine calls and interrupts, as discussed earlier. Some computers reserve a separate memory for stack operations. However, most computers utilize main memory for representing stacks. For accessing data stored in stack, we need a stack pointer(Sp) register. The SP register is initially loaded with the address of the top of the stack. Each instruction pops its source operands off the stack and pushes its result on the stack. In memory, the stack is actually upside down.