首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >汇编器和编译器的连接?

汇编器和编译器的连接?
EN

Stack Overflow用户
提问于 2018-06-03 18:41:10
回答 2查看 204关注 0票数 0

我正在阅读关于对象代码的文章(我不是在问什么是对象代码),当我遇到以下问题时,我感到困惑:

*阅读汇编程序时:

是一种汇编语言程序,它通过将操作和寻址方式的助记符和语法的组合转换为等价的数字形式来创建目标代码

在阅读关于object code本身的文章时:

在计算中,目标代码或目标模块是编译器的乘积。

但是,在研究编译器的组件时,我读过的文章都没有真正将汇编器作为编译器的一部分,比如

那么,如果汇编程序“不是编译器的一部分”,那么目标代码怎么可能是“编译器的产品”呢?

EN

回答 2

Stack Overflow用户

发布于 2018-06-03 19:23:30

以下任一项:

  1. 编译器直接生成目标代码,没有任何汇编阶段,或者
  2. 它生成汇编程序,然后执行汇编程序,在这种情况下,汇编程序在逻辑上确实是编译器的一部分。

无论哪种情况,当编译器退出时,您所拥有的都是目标代码,为链接器做好了准备。

注意你的图片也没有显示链接器,但是没有它你不会得到一个目标程序。

票数 3
EN

Stack Overflow用户

发布于 2018-06-04 18:51:05

“汇编源代码”(pre-object code gen)等同于编译器(在您的图表中)生成的中间代码或中间表示(IR)。然后,它通过遍历来优化和生成目标机器ABI原生的目标代码。

IR是否用于生成目标代码或其他IR (例如解释器可使用的IR)取决于编译器的设计和意图。

在图中看不到“assembler”这个词,就是试图将图的语义解析成语法糖。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50665482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档