首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码生成

代码生成
EN

Stack Overflow用户
提问于 2012-09-26 20:31:36
回答 2查看 527关注 0票数 2

编译器如何将二进制代码生成到单独的文件中?参考一下GCC的源代码中的哪些文件来处理这将会有很大的帮助。我想知道的是编译器(特别是gcc)是如何从ASM生成机器码的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-04 23:43:01

汇编程序是一个单独的实用程序。你可以在这里找到更多信息:http://en.wikipedia.org/wiki/GNU_Assembler

源代码是binutils包的一部分。你可以在这里找到它:ftp://ftp.gnu.org/gnu/binutils/

票数 6
EN

Stack Overflow用户

发布于 2012-10-05 00:43:39

要回答这个问题,需要书籍,而不仅仅是几行。

extremely版本是:

编译器分为两个部分:

  1. 将特定语言(如C)转换为语法树(表示程序的通用方法)的前端
  2. 和将语法树转换为特定于机器的(X86、ARM等)的后端。代码。

这里涉及到几个步骤:

切换词法分析(将诸如“codes)

  • Syntax”之类的关键字转换为syntax-tree)

  • Code分析(从上一步转换为performance)

  • Code优化(修改语法树以改进performance)

  • Code生成)(从syntax-tree)

  • Linking生成机器码(将多个执行单元组合到一个二进制文件中))

到处搜索可以给你更详细的信息。

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

https://stackoverflow.com/questions/12601784

复制
相关文章

相似问题

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