gpt4 book ai didi

assembly - 编译器和汇编器在计算机上的什么地方?

转载 作者:行者123 更新时间:2023-12-04 19:01:01 26 4
gpt4 key购买 nike

所以我知道非常基础的知识,即编译器将源代码转换为汇编代码,而汇编程序将汇编代码转换为机器代码。不过,我无法正确使用 google,它们实际上位于何处?

我假设编译器就在硬盘上的某个地方,因为您可以从网上下载编译器并将它们用于各种编程语言。

汇编器是位于硬盘驱动器上、内置于操作系统中,还是位于实际 CPU 中的某个位置?是否可以选择不同的汇编器来使用,或者它们是否预装在硬件中?还是像编译器一样特定的汇编语言取决于汇编代码的来源,还是整个系统只有一个汇编程序?

最佳答案

你把这个复杂化了。编译器采用某种格式的文本并将其转换为另一种格式的文本。例如,C 编译器将 C 转换为汇编。编译器只是一个程序,没有什么特别之处,就像您的 Web 浏览器是一个程序一样,您用于编写程序的文本编辑器只是一个程序,如果您使用命令行/控制台,则它只是一个程序。没有魔法。

汇编程序只是一个接收文本并通常输出某种形式的二进制文件的程序。有许多格式,就像图像和视频有许多二进制格式一样(bmp、jpg、png、gif、tiff、m4v、mpeg 等)。没有魔法,只是一个程序可以像上面列出的任何一个一样工作。

链接器也是如此,它接收二进制文件并通常输出一个二进制文件。

这些程序通常与硬盘驱动器上的所有其他程序一样,或者至少在您已安装并可访问的驱动器上。像 Web 浏览器和文本编辑器等。现在要运行它们,理想情况下您需要“在路径中”,或者如果是某个 IDE 的一部分,那么 IDE 可能不需要它们在相对于自身位置的路径中。同样,经常为您调用汇编器和链接器的编译器可能不需要它可能知道/假定的相对于它们所在位置的路径。但是它们像任何其他程序/文件一样存在于文件系统中,但要执行它们,它们需要能够被找到。根据操作系统和工具链的安装程序,通常会有不同的选择,而不是一个全局规则。

没有理由不能在文件系统上安装尽可能多的不同编译器和汇编器,它们与其他程序一样,因此您必须为它们找到一个位置,并且必须有一种方法来运行它们。没有理由假设任何两个编译器从相同的源代码生成相同的二进制文件,同样没有理由假设任何汇编器都能够汇编任何编译器的输出。这就是术语工具链的由来,一组在链中链接在一起的工具,编译器输出工具链中的汇编器知道如何处理的东西,汇编器输出链接器知道如何处理的东西。您可能在不同的工具链/供应商之间有一些交叉兼容性,但这并不意味着他们必须这样做,这可能是设计原因,也可能是运气不好。

关于assembly - 编译器和汇编器在计算机上的什么地方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37868775/

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