找不到initsect.cpp的源

问题描述

我正在尝试学习Assembly(MASM x64)并编写了一个简单的代码。

.code
main proc
mov rax,1
mov rcx,2
mov rdx,0
div rcx
ret 0
main endp
end

现在,我开始进行调试,以查看其是否有效(因为没有其他方法可以检查是否有问题),并且在div rcx处,调试器开始将我拖到整个名为exe_common.inl的文件中, file_mode.cpp,回到exe_common.inl,matherr.cpp,再次回到exe_common.inl,utility.cpp,再回到exe_common.inl(这是什么????)。那时,有一块预处理器代码

#ifdef _RTC
_RTC_Initialize();
atexit(_RTC_Terminate);
#endif

和_RTC_Initialize(); (第二行),程序将关闭,并显示消息initsect.cpp。这到底是什么意思??? Stackoverflow显示有关“未找到initsect.cpp”的辉煌结果0,而google也无济于事。 显然,当带有ret的行尝试执行时,总是会发生相同的事情。撤消后我已擦除了0,擦除了主进程和主endp之间的所有内容,并擦除了撤消线。总是一样。无论主endp之前的行试图执行什么,都会发生这种情况。 它甚至通过世界上最简单的代码发生:

.code
main proc
ret 0
main endp
end

我正在使用Microsoft Visual Studio 2019和AMD x64-x86 CPU。

解决方法

无论您是否打算,都已将程序与Visual Studio C ++运行时链接。您逐步执行的代码将执行C ++运行时和C ++程序需要正确运行的启动初始化。最终,一旦完成,它将调用您的main函数,就像您构建了C ++程序一样。

,

罗斯·里奇(Ross Ridge)是正确的,汇编器显然将程序与C运行时链接在一起。他忘了说的是,我需要通过_START设置一个入口点:为避免这种情况,谢谢大家的帮助(讽刺),尤其感谢DFpercush的Youtube(不是讽刺)。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...