昆明网站做的好的公司哪家好,中国核工业第五建设有限公司简介,谷歌seo建站,网络营销推广的要点及注意事项该楼层疑似违规已被系统折叠 隐藏此楼查看此楼首先你的main函数调用printN#xff0c;作为调用者他会做这么几件事1.将参数10压栈#xff1b;2.将Return Address压栈#xff0c;即第19行的地址#xff1b;3.跳转到函数体#xff1b;在函数体中#xff0c;作为被调用者他会…该楼层疑似违规已被系统折叠 隐藏此楼查看此楼首先你的main函数调用printN作为调用者他会做这么几件事1.将参数10压栈2.将Return Address压栈即第19行的地址3.跳转到函数体在函数体中作为被调用者他会做这么几件事......初始化操作......if N ! 0将N-1压栈将Return Address压栈即第6行的地址然后跳转到函数体打印N的值;else......恢复操作.....函数返回当N0时栈帧类似下面的情况------------------------saved ebp(下方栈帧的ebp地址)------------------------return address------------------------N0------------------------saved ebp (下方栈帧的ebp地址)------------------------return address (EBP4)------------------------N1 (EBP8)------------------------.....------------------------saved ebp------------------------return address------------------------N9------------------------saved ebp (main函数栈帧的ebp地址)------------------------return address------------------------N10------------------------....------------------------当N0时并且if执行完成后会1.恢复esp(销毁局部变量)弹出ebp(ebp为下面栈帧的地址)2.跳转到返回地址然后执行返回地址1处的代码打印出N1(因为ebp已经恢复参数就是EBP8这个位置的元素 )...依次类推...最后返回main函数的栈帧继续执行