1

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

4

2 回答 2

0

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

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

于 2012-06-27T08:51:43.170 回答
0

你说的是什么平台?

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

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

于 2012-06-27T07:16:52.613 回答