我正在读Joshua Engel的“Java Virtual Machine的编程”一书,其中作者提供了“一种用于JVM的汇编语言”,名为Oolong。
据我所知,这是一种被编译成java字节码的语言,它与原始的java字节码非常相似(在那里使用了大量的字节码操作码)。如果是这样,那么为什么它被称为汇编语言?这是因为它是低级语言,看起来像字节码吗?
另一个问题是关于Jasmin的。正如维基百科所说,它是“一个免费的开源汇编器,可以使用Java虚拟机指令集从人类可读的汇编器类语法中创建类文件”。Jasmin文件(也有.j扩展名)的语法看起来像乌龙的语法。它在那里使用吗?
发布于 2013-09-05 07:48:37
它使用堆栈,堆栈框架,并具有与真正的汇编语言相对应的字节码。它也有更高级的指令,可以从内存中检索字段,但不是直接检索字段。你必须使用getfield,putfield,invokespecial等。由于JVM不能在真正的硬件环境中运行(如Unix内核),它不会做任何真正操作系统所做的繁重工作,比如手工处理进程,担心时间片和服务中断,与设备驱动程序通信等等。我不得不说JVM是介于Java和原生操作系统之间的中间件。这正是他们所说的..。一台虚拟机。
发布于 2012-06-21 14:38:43
乌龙茶是中国茶,名字并不重要。请记住,Java语言是由java编译器编译的。Java字节码不是一种汇编语言,但您可以将其视为(JVM)Java虚拟机的汇编语言。
https://stackoverflow.com/questions/11132377
复制相似问题