The stack is used to store local function variables and context during function calls. All of this information is stored on a stack frame to keep it in memory. First in Last out (FILO), imagine putting pancakes on a plate, you'll need to remove the pancakes in order to reach lower ones. Adding items to the stack is pushing, while removing items is popping. The ESP (Extensible Stack Pointer) is used to keep track of the addess of the end of the stack. The stack grows upward, towards lower memory addresses.