ESP寻址
    用栈传参时用ESP来找参数地址叫做ESP寻址。
    ESP寻址的缺点

    当使用寄存器传参时,需要把寄存器中的值先压栈备份,因为寄存器的值可能被用到,寻址的计算比较麻烦,所以我们还有一种EBP寻址

    EBP寻址
    EBP寻址的代码比较麻烦,但是参数较多时,性价比很高。
    EBP寻址相当于创建一个新的栈。
    如:
    执行1+2的操作

    02 push 1 (前面数字为指令地址)
    03 push 2
    把数据压栈

    4
    5 2 ESP
    6 1
    7 135 EBP

    04 call 08
    05 add ESP,8
    写加法函数

    因为要创建新的栈,所以先将EBP压栈储存,以便平栈。
    06 push EBP
    然后创建新栈
    07 mov EBP,ESP
    08 sub ESP, 0xC(根据需要)

    0 ESP
    1
    2

    3 7(EBP) EBP
    4 05(call)
    5 2
    6 1
    7 135

    加法
    09 mov eax,Dword ptr ss:[ESP+8]
    10 add eax, Dword ptr ss:ESP+C
    然后平栈
    11 mov ESP,EBP
    12 pop EBP

    1
    2

    3 0(EBP)
    4 05(call) ESP
    5 2
    6 1
    7 135 EBP


    13 ret
    执行完05指令后,堆栈将平衡

    7 135 ESP/EPB