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

第一次写x86高级过程,调试了好久才处理好。   在vs2019中,使用extern的方式组建多模块程序,enter和leave指令是多余的。汇编器自动生成了堆栈帧:自动保存并设置了ebp的值,还会帮你生成leave指令。最后,汇编器生成的ret指令是不带参数的。   和单模块程序不同,在main过程中,push OFFSET Array给extern外部过程传递堆栈参数的结果不再是.data段的偏移量,例如0或12这样的,而是一个0x00406000的绝对内存地址。这说明,vs2019在调试运行时程序是绝对加载的,它每次都被加载到一个固定的内存位置。
上一篇:centos安装zabbix集群监控(亲测无坑版)


下一篇:day01_cin、cout、函数重载、extern C、默认参数