在我的一个类示例中,一个接收 int 参数整数的函数开始如下:
recursive_sum:
push ebp
mov ebp, esp ;set EBP=ESP
pusha ;save all registers(probably overkill)
mov ebx, [ebp+8] ;ebx=integer(parameter #1)
但在另一个类示例中,一个接收 int 参数num的函数开始如下:
f:
enter 8,0 ;num in [ebp+8] ,local var x, sum in [ebp-4],[ebp-8]
push ebx
push ecx
push edx
mov eax, [ebp+8] ;eax=num
在什么情况下需要mov ebp, esp
指令?请用C、java或举例说明。而且我不是在寻找 ESP 寄存器的基本定义