memorandumsスマートフォン用の表示で見るmemorandums日々の作業ログです。見るずいぶん前に出版された本(訳本は1998年)ですが読んでいます。学生さんにアセンブラを勉強してもらうのも面白いなと思ったのがきっかけ。思っていたところでした。Javaを勉強しているなら、bytecodeを勉強してみるのもありなんじゃないかな?と思ったわけです。読み始めたばかりですが、ツール類の準備に手間取りました。いないとは思いますが、同じような人がいた場合に(というか自分用の)メモを残しておきたいと思います。ちなみに問題だったのはmacの場合です。windowsの場合は問題ありませんので。以下、読む必要はありません。.javaファイルをjavacでコンパイルして.classファイルを生成します。この本(の冒頭)では、この.classファイルをD-Javaというツールを使って逆アセンブルします。アセンブルコードを修正して、jasminというアセンブラで再び.classファイルを生成します。この操作を繰り返しながら、bytecodeを理解していきます。いう流れだと思います(まだ全部読んでいないので)で、D-javaとjasminの入手先は以下になります。使用マシンがwindowsであればこれで問題なしです。jasmin-2.3.zipしかし、D-java.zipはexeファイルのみで、ソースファイルのリンクが切れているため、macなど他の環境ではD-javaを利用することができません。予備知識がなかったこともあり、ここからが結構時間がかかりました。逆アセンブラがあってもjasmin形式でアセンブルコードを出力しないなどの問題がありました。結局、辿り着いたのがJasperというものでした。jasmin形式で逆アセンブルしてくれます。ちなみにjasminはjar形式のためwindowsでもmacでも問題なく動作します。Jasper■補足ちなみに、eclipseプラグインのASMは優れものだと思います。Javaのコードに対応したbytecodeをリアルタイム(セーブ時)に表示してくれます。いうコードを書いたら。いうbytecodeが生成される。いうことが一目瞭然でわかります。バイトコードを修正して反映することができればこのプラグインだけで事が足りるのですが、そこまでは対応していないようです。»プロフィールid:ke_takahashiソフトウェア開発、工作、面白ガジェットに興味があります。(1)はてなブログをはじめよう!ke_takahashiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。