HLL到机器代码

时间:2012-06-27 07:11:46

标签: compiler-construction

如果汇编语言只是机器语言的可读方式,那么为什么要先将HILL转换为汇编然后再转换为机器代码。 HLL不应该直接转换为机器码吗?

2 个答案:

答案 0 :(得分:0)

你在谈论什么平台?

除了名称之外,.NET或Java程序集与汇编语言没有任何共同之处。

虽然汇编语言可能被认为只是一种可读的机器语言方式,但.NET程序集(通过编译C#等高级.NET语言创建)只是CIL(通用中间语言)中的另一个程序,它是也是高级机器无关的语言,虽然不是为人类阅读或修改而设计的。

答案 1 :(得分:0)

在小型离散阶段进行编译比将多个通道组合在一起更简单,更清晰。汇编程序不仅是对机器代码的抽象,它还可以解析标签和文字。

您不希望在编译器后端以及指令选择和寄存器调度中执行此操作,因为它是完全独立的传递。当然,许多编译器后端将包含自己的汇编程序传递(即所有JIT编译器),而不是序列化到文本流并将其传递给单独的汇编程序,但它仍然是一个专用的传递,并且根本没有任何意义。将其与其他代码生成过程融合。