What effect these two instructions cause in the assembly code generated by gcc for x86 machines:
push %ebp movl %esp, %ebp
It's part of what is known as the function prolog.
It saves the current base pointer that is going to be retrieved when the function ends and sets the new ebp to the beginning of the new frame.