Stacks are used to implement procedures
Address of instruction to execute after completion of procedure must be stored somewhere.
Procedures can call other procedures to any depth.
Arguments to procedures must be saved somewhere.
BUT - there are not enough registers!
- so such data is ‘spilled’ to main memory.