在.NET平台中,可以直接编写带有通用中间语言的程序,并使用IL Assembler(ILASM)编译源代码。
例如下面的代码是“Hello World”程序。
.assembly Hello {}
.assembly extern mscorlib {}
.method static void Main()
{
.entrypoint
.maxstack 1
ldstr "Hello, world!"
call void [mscorlib]System.Console::WriteLine(string)
ret
}
是否有可能直接用.NET编写带有Java字节码指令的程序?
答案 0 :(得分:7)
你可以看看Jasmin。来自维基百科,
有些项目为Java汇编程序提供了手动编写Java字节码的功能。汇编代码也可以由机器生成,例如通过针对Java虚拟机的编译器生成。值得注意的Java汇编程序包括:
Jasmin,获取Java类的文本描述,使用Java虚拟机指令集以简单的类似汇编语法编写,并生成Java类文件。
Jamaica,Java虚拟机的宏汇编语言。 Java语法用于类或接口定义。使用字节码指令指定方法体。
注意:我没有亲自使用过任何这些工具。
答案 1 :(得分:6)
你可以使用Jasmin
.class public HelloWorld
.super java/lang/Object
.method public static main([Ljava/lang/String;)V
.limit stack 3
.limit locals 1
getstatic java/lang/System/out Ljava/io/PrintStream;
ldc "Hello World."
invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
return
.end method
使用以下方法编译它:
java -jar jasmin.jar hello.j
您也可以参考this