Depends on the processor architecture but on most there is only one stack and it is up to the software to ensure the orderly placement and retrieval of values on it. For example, during an interrupt the hardware will normally push the return address to the stack and the ISR may push additional data as well. Before leaving, the software must ensure the data has been removed so the stack pointer is back as it was when the ISR started before returning. Some processors allow direct manipulation of the stack pointer, some don't. Similarly, some establish a stack in accessible memory and some use a dedicated block of memory for it.
Brian.