编译器和汇编器在计算机上的什么位置?

奥斯丁

因此,我知道非常基本的知识,即编译器将源代码转换为汇编代码,而汇编器将汇编代码转换为机器代码。我一直无法正确搜索到的是Google的实际位置?

我假设编译器仅位于硬盘驱动器上的某个位置,因为您可以从网络上下载编译器并将其用于各种编程语言。

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

老旧的计时器

您太复杂了。编译器采用某种格式的文本,然后通常将其转换为另一种格式的文本。举例来说,C编译器将C转换为汇编程序。编译器只是一个程序,没有什么特别的,就像您的Web浏览器是一个程序,用于编写程序的文本编辑器只是一个程序,如果使用命令行/控制台,则仅是一个程序。没魔术

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

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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

新计算机上DDE中的Java编译器错误,在旧计算机上可以正常工作

汇编器与编译器之间的区别

为什么在有了编译器时甚至需要汇编器?

如何告诉超级计算机上的C ++编译器我的R包需要C ++ 0x?

在64位Windows 7计算机上将GCC用作MATLAB 2014a的默认MEX编译器

预处理器,汇编器和链接器是否是编译器的一部分?

尽管可以使用在线编译器很好地编译C ++函数,但无法在我的计算机上编译C ++函数

OCR计算机科学GCSE是否对编译器和解释器错误?

使用C和汇编器计算整数的符号

如何在编译器中包含汇编器

在本地计算机上克隆JUnit 5之后,在执行“汇编”任务时编译时间错误

为什么“ pip install”似乎会更改某些计算机上的解释器行?

通过网络访问计算机上的驱动器时,为什么使用“ $”

为什么在单核/处理器计算机上内存重新排序不是问题?

硬盘驱动器和分区未显示在此计算机上的“文件”下

在Windows计算机上安装Git服务器

在Windows计算机上备份HFS +驱动器

在本地计算机上使用拼写检查器?

在新计算机上安装旧计算机的硬盘驱动器?

从路由器的计算机目录连接到交换机上的计算机

汇编器SegFail

为什么我的编译器创建重复的汇编函数

类型声明中的 TypeScript 计算机属性名称,不一致的编译器错误

在64位ubuntu上编译32位汇编器

将GNU汇编器编译到Windows

在我的本地计算机上,Screen可以带来什么,而终端模拟器或nohup / disown无法做到?

如果要使用Chef安装软件,应该在服务器计算机上做什么

如果小程序在浏览器的JRE中运行,为什么在计算机上需要JRE?

为什么不能在汽车播放器中播放mp3 CD,而在计算机上播放?