CALL instruction do nothing except push IP into the stack (doesn’t like function call in C).
More specific, there’re 2 kinds of CALL:
1. Near call: if it’s a near call, the assembly does those two things:
1) push EIP into the stack,
2) set EIP to the address of beginning of your function.
2. Far call: if it’s a far call, the assembly does the following FOUR things:
1) push CS into the stack (save old code segment),
2) push EIP into the stack,
3) set CS to the new code segment which your function addressed,
4) set EIP to the beginning address of your function.
BTW, the RET instruction does the reverse operations.
