x86默认指的是32为如果为64位可以叫x64或x86-64
此时caller栈帧中有add函数调用的参数信息
注意x86系统中默认以4字节位栈的操作单位
初始状态
第一条指令执行后
第二条指令执行后
第三条指令执行后
第四条指令执行后
第五条指令执行后
call没执行之前
call执行后
push指令执行后
mov指令执行后
第一条指令执行后
相当于恢复之前使用call之后的状态
跳转之前都是上一个函数的栈帧
如果当前函数不会调用下一个函数,那么该当前函数的栈帧的大小不需要是16字节对齐的
执行前两天指令后
执行sub指令后
再执行两天mov指令
执行两个mov指令
mov指令不支持两个操作数同时来自主存
再执行两个mov指令
执行call指令后
执行push 和mov指令后
执行两条mov指令
执行add指令后
执行完leave指令
执行完ret指令
执行完mov指令后
再执行下一条mov指令
如果调用者有其他也使用的寄存器要被被调用者使用时
此时可以将调用者使用的寄存器压栈保存