Elixir のアセンブリコードを出力する
この記事はElixir のアセンブリコードを出力する〜実験室 〜 Lab in ZACKY's Laboratoryからの転載記事です。
Elixir の BEAM アセンブリコードを出力する方法について。
参考文献
やり方
Elixir のバージョン1.6.1で試したところ,次のようにすればBEAMアセンブリコードを出力できた。
$ export ERL_COMPILER_OPTIONS=\'S\'
$ elixirc (出力したいファイル).ex
エラーが出力されるものの,(出力したいファイル).ex.S
というファイルが出来上がっている。
おまけ1: BEAMコードのダンプ
Mac の場合,次のようにする。
$ xxd (出力したいファイル).beam
xxd
を使うと,16進数とASCII codeでダンプしてくれる。
おまけ2: Erlang BEAM Instruction Set
しかしこれには具体的なバイトコードの数値が記載されていない。なので,現在リバースエンジニアリングして解読しているところ。
昔のZ80機械語プログラミングをしていた頃を思い出して,逆にワクワクしている。