一旦 exe 加载到内存中,该 exe 文件中的内容是直接由处理器执行还是由操作系统执行?我的意思是,exe中存在的二进制文件是否被操作系统再次简化以供机器级使用?
问问题
122 次
2 回答
0
对于 C++ 程序,编译器在可执行映像中生成数据和代码的组合。操作系统加载程序安排将其放入程序地址空间中的特定内存地址,然后要求 CPU 在已知的“入口点”调用代码(每个动态加载的库 (.so / .dll) 可能都有这样的指针)以及 . 的入口点main()
。编译器生成的可执行代码将针对可能运行代码的 CPU 模型。
如果试图在另一个 CPU 架构上执行代码,它通常会失败,尽管操作系统可以做任何它喜欢的事情,包括检测为另一个 CPU 编译的可执行文件并放置某种模拟或重新编译层。不过,这将是非常重要的。
于 2013-06-26T07:21:43.510 回答
0
.exe 文件包含可由处理器直接执行的操作码。
于 2013-06-26T07:20:52.520 回答