【问题标题】:How do I compile JVM assembly code into bytecode?如何将 JVM 汇编代码编译成字节码?
【发布时间】:2012-05-26 03:05:30
【问题描述】:

如果我运行 javap -c ASM.class > ASM.java 来获取汇编代码,我将如何将其重新编译回 JVM 字节码?

【问题讨论】:

  • 首先尝试不要将.java 用于汇编java,因为它会造成混淆。我用.jasm
  • @ColeJohnson 谢谢。我不知道那个文件扩展名。
  • 作为开发人员,您可以随意标记文件。没有标准。我只是选择了 jasm 来区分 .asm 并选择了 j 因为它就像 nasm、masm 等。(???ASeMbler)

标签: java assembly jvm bytecode java-bytecode-asm


【解决方案1】:

Jasmin 是 Java 字节码的汇编器。不过不知道能不能应付javap的输出。


更新

Jasmin 文档中提到了 javap 输出:

Sun 确实提供了一个 javap 程序,它可以在类文件中打印汇编代码。但是,javap 输出不适合用作汇编程序格式。它被设计为供人阅读,而不是由汇编程序解析,因此它有许多遗漏和缺点。

基于此,我想说几乎没有机会找到将javap 输出作为输入的汇编程序。

【讨论】:

    【解决方案2】:

    你可以尝试通过ASM来做,可以在运行时生成类或修改类

    【讨论】:

    • 这不能回答问题,IMO。
    • ASM 只允许你在运行时修改 java 字节码,而不是把汇编代码转换成字节码,但是用 ASM 编写程序来读取汇编并生成字节码并不是不可行的.
    猜你喜欢
    • 2014-03-05
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 2021-07-25
    • 1970-01-01
    • 2022-12-20
    相关资源
    最近更新 更多