谁能看懂这个代码?(有些汇编的) ebp和esp都是寄存器。push ebp 保存ebp的值到栈指针esp所指向的地址mov ebp,esp 把esp的值赋给ebp如果push ebp出错即esp指向的地址无写权限,但编译系统生成的代码一般不会出此问题的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有个问题顺便问一下,eax是不是32位的通用寄存器,而ax是不是就是eax的低16位。 没有,我写了个程序在各窗口的标题栏上画了个按钮,点击了VC上的钩子按钮时出现了这个问题(VC出错了) push ebpmov ebp,esp属于一个函数"prolog sequence"中的例行处理,"prolog sequence"中代码主要完成以下几个功能.1) 保护堆栈指针, 正如你列出的. 以便函数退出时,堆栈回复到函数调用者调用前的状态.2) 保护其他一些可能被改变的32位寄存器,如ESI,EDI(?)3) 从堆栈中分配函数的所有局部变量空间4) 初始化局部变量空间为0xcc所以从理论上说, "prolog sequence"中的例行处理不应该出现错误. 如果真的出现(如你所说)则最可能的原因是: 函数的调用和声明规则不统一. 例如stdcall/cdecl.另外, 你可以1) 检查你程序的project setting,看看是否改变了编译时的缺省栈大小2) rebuild all你的程序总而言之, 我觉得在"prolog sequence"中发生错误是非常难以理解的. 正如你提到的,我对stdcall和cdecl的区别一直不太清楚,能列举一下吗? 关于xp如何模仿win7的桌面渐变效果。 如何获取进程占用的句柄数量 excel的com接口查询 能否在vc6编写的win32 dll里,使用OnTimer函数?若能,怎么用? 大家解释一下:这个是不是windows自己的内存泄漏! 一个比较基本的问题,封装底层的网络操作,这样的功能该怎么实现? 知道年月日,如何知道今天星期几? 在VC++.net上使用STL的方法! 如何连接两台没有公网IP的计算机 帮忙下两个PUDN资源 请教了,怎么样存储一个对象,比如CList的对象呀详细点好么,最好是有例程呀。 关于FormView 和 RecordView 问题
mov ebp,esp属于一个函数"prolog sequence"中的例行处理,"prolog sequence"中代码主要完成以下几个功能.
1) 保护堆栈指针, 正如你列出的. 以便函数退出时,堆栈回复到函数调用者调用前的状态.
2) 保护其他一些可能被改变的32位寄存器,如ESI,EDI(?)
3) 从堆栈中分配函数的所有局部变量空间
4) 初始化局部变量空间为0xcc所以从理论上说, "prolog sequence"中的例行处理不应该出现错误. 如果真的出现(如你所说)
则最可能的原因是: 函数的调用和声明规则不统一. 例如stdcall/cdecl.另外, 你可以
1) 检查你程序的project setting,看看是否改变了编译时的缺省栈大小
2) rebuild all你的程序总而言之, 我觉得在"prolog sequence"中发生错误是非常难以理解的.