懂(反汇编)的朋友们来看看解决方法
懂(反汇编)的朋友们来看看Assembly codeother codemain PROCothercallGen*1main ENDPGen PROCother*2
懂(反汇编)的朋友们来看看
Assembly code;other codemain PROC ;other call Gen ;*1main ENDPGen PROC ;other ;*2 retGen ENDP
*是这样一段代码:
Assembly codepush edx mov edx,OFFSET flag call WriteString pop edx
*这段代码用到了别人提供的过程,就是显示一句话,我用这个来判断程序在哪里遇到了错误而挂掉。
可是,在*2处,还能正常显示,可是就只是ret回到主函数一下后,就不能在*1处正常显示了。(也就是程序挂了)
整个程序没有用堆栈传递参数,(有嵌套调用过程),参数传递都是用寄存器的。
???
[解决办法]你把C语言程序贴出来看看
[解决办法]你贴出来的代码里没看到什么问题,猜测是在Gen里改到了栈中的内容,结果返回地址被破坏了。
[解决办法]把代码发给我吧,我帮你看看。