数据宽度:int:四个字节 short:两个字节 char:一个字节
    image.png
    上图函数调用过程:参数1,2入栈,注意,入栈顺序是从右向左入栈,之后执行call指令,我们知道,call指令会将下一行指令的地址入栈然后跳转到call内部,call指令中,将ebp的地址入栈,同事升栈,即将ebp指针指向esp位置,然后将栈顶指针esp向上抬升16个高度之后将可能用到的ebx,esi,edi寄存器入栈,为的是函数内部可能要用到而更改其值,以便于调用完之后恢复,之后将ebp-40h的地址赋值给edi,即ebp向上十六个高度的地址给edi,之后给ecx计数寄存器赋值10h即16,让eax寄存器等于cccc,(涉及到断点知识)之后rep即重复,stos,即将eax中的值赋值给dei,从0040d3f9到0040d406的操作即将ebp向上16个高度全部填充cccc,此部分作为缓冲区,调用完成之后连续三个pop即恢复原来的edi,ebi ,ebx寄存器,之后将esp指针下降到ebp位置,其上缓冲区不予已清空,在pop ebp,此时栈中存放的是之前ebp的地址,pop ebp即恢复原来ebp的位置,之后ret,我们注意到call指令将其下一行指令压入栈中,而ret则返回压入的地址的位置,之后将esp位置香江两个高度,回到esp原来位置,达到对栈平衡,函数调用完毕