gpt4 book ai didi

compilation - .exe是仅由纯机器代码制成的吗?

转载 作者:行者123 更新时间:2023-12-04 10:17:59 24 4
gpt4 key购买 nike

编译任何高级编程语言时,它将被编译为目标代码,然后链接程序将目标代码链接在一起以创建可执行文件。

  • 因为目标代码基本上是机器代码,所以这意味着.exe是纯机器代码,对吗?
  • 如果为真,是否可以知道.exe是使用哪个机器代码将(.exe)机器代码转换为汇编语言,然后转换为高级语言(源代码)的呢?
  • 最佳答案

    要回答您的第一个问题,不。可执行文件通常不包含纯机器代码,但还包含各种元数据,以帮助操作系统查找程序的依赖项(假定程序使用外部库),并且还包含嵌入其中的各种静态数据。

    通常,可执行文件由各个部分组成(尽管请记住,“可执行文件”取决于平台和操作系统),这些部分被指定用于包含元数据,静态数据和可执行代码。

    要回答第二个问题,是的,可以将可执行文件转换为程序集(至少一部分可执行文件将包含纯机器代码,该代码具有与相关汇编语言的1:1映射),但是可以将其转换为更高级别的语言。不太可能(尽管智能应用程序可能会带来一些猜测)。通常,您会找到能够进入EXE并显示当前正在执行的行和文件的调试器-这仅是因为可执行文件本身中的其他元数据会在其中将特定指令偏移量映射到特定文件/行中,这才有可能代码。

    在Linux系统上,通常可以使用readelfobjdump工具检查其中一些元数据。等价物可能适用于其他平台

    关于compilation - .exe是仅由纯机器代码制成的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24973973/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com