唐良ID:tangl_99
429954次访问,排名109好友0人,关注者2
tangl_99的文章
原创 182 篇
翻译 0 篇
转载 36 篇
评论 627 篇
最近评论
g:y
bbb:d
- -#:sshd自带sftp-server的软件
汗啊……脚本里有软件……
- -#:sshd自带sftp-server的软件
汗啊……脚本里有软件……
印刷公司:不错 , 看看!
文章分类
收藏
    相册
    链接
    高等数学复习公式
    我的简历
    英文简历
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 Java bytecode assembler : jasmin收藏

    新一篇: 我所在的大学 | 旧一篇: 计算机网络的课程设计作业之Sniffer和IP攻击

       如果要自己来写Java的编译器,我是指出编译出来的目标程序文件是Java的class执行文件.那么这里有个很好的工具: jasmin. 这个工具是一个Java的汇编编译器.能够将类式汇编的bytecode指令,翻译成最终的Java的class文件.

      jasmin本身也是Java来写.不过和其它很多Java bytecode Assembler比起来,感觉它的优势是最大的,最广泛使用的.

      Jasmin也是一个有名的开源项目,它的主页是: http://jasmin.sourceforge.net

      这里我贴一下jasmin里面的一个例子程序HelloWorld.j的编译过程.

      ; --- Copyright Jonathan Meyer 1996. All rights reserved. -----------------
    ; File:      jasmin/examples/HelloWorld.j
    ; Author:    Jonathan Meyer, 10 July 1996
    ; Purpose:   Prints out "Hello World!"
    ; -------------------------------------------------------------------------


    .class public examples/HelloWorld
    .super java/lang/Object

    ;
    ; standard initializer
    .method public <init>()V
       aload_0
     
       invokenonvirtual java/lang/Object/<init>()V
       return
    .end method

    .method public static main([Ljava/lang/String;)V
       .limit stack 2

       ; push System.out onto the stack
       getstatic java/lang/System/out Ljava/io/PrintStream;

       ; push a string onto the stack
       ldc "Hello World!"

       ; call the PrintStream.println() method.
       invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V

       ; done
       return
    .end method

     然后使用java -jar jasmin.jar examples\HelloWorld.j 命令,就可以编译得到HelloWorld.class这个Java文件了.

      是不是很爽啊?

      有了这个工具,大家就可以不用深入研究Java class文件结构了,而可以直接写Java编译器.甚至是其它编译器,然后最后可以生成Java class文件.


    发表于 @ 2005年06月10日 11:41:00|评论(loading...)|编辑

    新一篇: 我所在的大学 | 旧一篇: 计算机网络的课程设计作业之Sniffer和IP攻击

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © tangl_99