一次函数调用的完整栈帧过程

示例:caller 调用 add(x, y)
push 80          ; 第 2 个参数 y
push 125         ; 第 1 个参数 x
call add
add:
  push ebp
  mov ebp, esp
  sub esp, 12
  mov eax, [ebp+8]
  add eax, [ebp+12]
  mov [ebp-4], eax
  mov esp, ebp
  pop ebp
  ret
mov [sum], eax
eip
esp
ebp
eax
[ebp+8]
[ebp+12]
栈内容与 ebp/esp 位置