A Simple Example What happens when a function is called? save general registers to stack calculate the return address in the program and put it on the stack put the function's arguments on stack local arrays and variables reside on stack, too The order depends on your environment, but the idea is always the same