我正在阅读Joshua Engel所著的“Java虚拟机编程”,其中作者提供了一种称为Oolong的“JVM汇编语言”。

据我了解,这是一种被编译成Java字节码的语言,它实际上与原始的Java字节码相似(在那里使用了大量的字节码操作码)。如果是这样,那么为什么将其称为汇编语言?那是因为它是低级语言并且看起来像字节码吗?

另一个问题是关于茉莉。正如Wikipedia所说的那样,它是“一个免费的开放源代码汇编器,可以使用Java虚拟机指令集从类似于人类可读汇编器的语法创建类文件”。 Jasmin文件的语法(也具有.j扩展名)看起来像Oolong的语法。在那使用吗?

最佳答案

Oolong是JVM的汇编语言。

...为什么叫汇编语言?

最好在Wikipedia中查找“汇编语言”的含义。它本质上是一种在“语句”和目标机器的机器指令之间具有直接一对一映射的语言。如果您将JVM视为目标计算机,则OOlong与该描述匹配。 (在Oolong语句和JVM字节码指令之间存在一对一的映射。)

Jasmin文件的语法(也具有.j扩展名)看起来像Oolong的语法。在那使用吗?

我见过一些消息说Oolong的语法“基于Jasmin”,但是我找不到任何独立的文档来详细描述该语法。

如果您有兴趣查看Oolong,那么这个SO问题包含有关从何处下载它的详细信息:

  • where is the source code for Oolong and Gnoloo?


  • 1-我简化了。一些汇编语言支持“宏”,其中单个源语句可以映射到多个目标指令。阅读Wikipedia参考。

    09-11 20:29