C function uses call stack(stack frame) to push/pop registers before/after function call. If ebp is the frame pointer that's used to visit all variables on stack, then seems esp is redundant?
Then why in prolog/epilog of a function call, we operate both esp and ebp? If I use only one register to do this job, any inconvenient places?
Thanks.