vs2019处理extern方式多模块过程的细节

时间:2021-04-15 12:29:35   收藏:0   阅读:0
第一次写x86高级过程,调试了好久才处理好。
 
在vs2019中,使用extern的方式组建多模块程序,enter和leave指令是多余的。汇编器自动生成了堆栈帧:自动保存并设置了ebp的值,还会帮你生成leave指令。最后,汇编器生成的ret指令是不带参数的。
 
和单模块程序不同,在main过程中,push OFFSET Array给extern外部过程传递堆栈参数的结果不再是.data段的偏移量,例如0或12这样的,而是一个0x00406000的绝对内存地址。这说明,vs2019在调试运行时程序是绝对加载的,它每次都被加载到一个固定的内存位置。
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!