【发布时间】: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