回 帖 发 新 帖 刷新版面

主题:为什么要保持edi和esp

大家好,我是一个小菜。调用API时是不是每一次都要push edi  push esp 然后pop edi
pop esp呢???????????书上说这样可以保持edi和esp的值不变哦,我想不通,我没动edi和esp又为什么要担心它会变呢,大哥大姐们帮帮我吧`````````[em18]

回复列表 (共1个回复)

沙发

如果你没有修改(包括被调用的过程)都不存在修改 edi 等寄存器的值,就不用保存.

esp 一般是不需要保存(win32 api 的调用规则是 stdcall 即被调用者平衡堆栈, 注意有一个例外的 win32 api 它是 wsprintf)

我来回复

您尚未登录,请登录后再回复。点此登录或注册