【问题标题】:Compilers: How do I generate and assemble my assembly code [closed]编译器:如何生成和汇编我的汇编代码 [关闭]
【发布时间】:2013-11-14 18:53:35
【问题描述】:

如果我编写了一个将我的代码转换为三地址代码的编译器,我该如何决定是将三地址代码转换为 MIPS 还是 ARM 汇编代码。完成后,如何调用汇编程序从该代码创建程序?

可能的解决方案: Seva Alekseyev 指出 GNU 有一个命令 as 将汇编汇编代码。我假设我需要选择任何我想要的汇编器,然后弄清楚如何使用我编写编译器的编程语言来调用汇编器。听起来汇编器不一定是选择的,但通常是特定于机器的你的代码将被编译。这让我更清楚了一些事情。

【问题讨论】:

  • 是否您生成 MIPS 代码、ARM 代码或两者兼而有之,或者为其他架构生成代码,这只是您希望代码在什么计算机上运行的问题。没有人可以为你做这个决定。您的意思是问如何 生成此代码(正如标题所暗示的那样)?这仍然相当广泛,可能是重复的,但至少它作为一个问题是有意义的......
  • gcc 系列编译器和汇编器可以在其源代码中进行研究,并作为命令行程序来了解该主题。
  • Assembler 通常是一个命令行程序,它获取源(在汇编中)并输出目标文件和/或可执行文件。在具有基于 GCC 的工具链的系统上,它通常称为 as
  • Seva:是的,但一般的三地址代码就像虚拟 CPU 的汇编程序。您仍然需要从虚拟 CPU 到真实 CPU 的转换,这更多的是编译器任务(寄存器分配和所有),而不是汇编器。

标签: assembly compiler-construction operating-system


【解决方案1】:

我没有这方面的任何经验,但作为猜测,我认为您需要将您的 3 地址代码与一些程序集相匹配。

您可以在 Visual Studio 上编写 c 代码并将其调试为汇编模式,您可以看到指令如何映射到汇编指令(或它们的集合)。

【讨论】:

    猜你喜欢
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 2017-08-27
    • 2017-08-17
    相关资源
    最近更新 更多