程序起始点
寄存器情况
找到函数入口,按f2让cpu执行到这里
寄存器情况
按f8单步执行函数,查看EBP和ESP寄存器
push 2,push 1 参数入栈
call :1.改变EIP的值;2.把下一个语句的地址入栈(与jmp的区别)
后面的地址=当前地址(40116C)+当前指令长度(当前是长度5字节)
执行函数体
遇到call按f7,然后遇到jmp按回车键转到函数体
通过sub开辟的空间
CCCCCC表示int 3 中断,防止缓冲区溢出
这是该函数的主要功能, 即把2+1相加。EBP+8的地址的是1,EBP+C地址存的是2.
回到调用前的状态
总结
也可以把参数传到寄存器里,想法设法保存这些值即可,如把返回值(即计算好的值)传到内存保存起来。