0

在我的一个类示例中,一个接收 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 寄存器的基本定义

4

0 回答 0