【问题标题】:How to generate assembly code from the Abstract syntax tree?如何从抽象语法树生成汇编代码?
【发布时间】:2021-06-22 13:32:58
【问题描述】:

我想知道如何从抽象语法树生成汇编代码?

谢谢!

【问题讨论】:

    标签: compiler-construction


    【解决方案1】:

    我不是编译器构造的大师。但如果你是初学者,我想这个答案会有所帮助。

    首先,程序集依赖于平台。您必须决定要为哪个平台生成汇编代码。这个可以参考instruction set architecture。

    完成后,您可以通过两种方式生成汇编代码。

    1. 手动生成程序集
    2. 使用库

    如果您要手动生成程序集,您应该对指令集架构有很好的了解。您必须遍历 AST 并将节点转换为汇编代码。您可以使用 Visitor 或 Listener aka Observer pattern 之类的设计模式来遍历 AST。

    此外,您还可以使用 Asmjit 之类的库来生成机器代码。

    Godbolt 将帮助您获得一些关于汇编代码的知识。

    这里有一些其他的 Stackoverflow 答案可能会对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-21
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      • 2012-03-04
      • 1970-01-01
      • 2012-06-14
      相关资源
      最近更新 更多