2007-01-25 [長年日記]
_ Hello World Hacks
さとゆさんのELF講座(Hello world Hacksともいう)を受講した。
ELFヘッダ、プログラムヘッダをはきだすCコードを書いて、
Hello, world!(アリアリ)を表示させるバイナリを作るというもの。
ようするに小さな小さなコンパイラを自作してみようというものだ。
#Cコード→コンパイル→実行→結果をファイルにリダイレクト
#→そのファイルを実行→hello world!が表示される
仕組みを教えてもらい、
テンプレートに沿って値を埋めて、
ちょっとしたインラインアセンブラを書いて、、、
とかなり楽しい作業続発。
Hello, world!が表示されたときは感動!
初めてBASIC(インタプリタ)でコードを書いたとき、
初めてC(コンパイラ)でコードを書いたとき、
などなどプログラマには感動を覚えるいくつかの通過点があると思うのですが、
これもその1つになりました。
参考文献はもちろんBinaryHacks。
「25.glibcを使わずにHelloWorldを書く」などなど。
また、shinhさんのelf golfスライドも参考になると思います。
私が作ったのはこれでいくと116byte ですが、
それをさらにダイエットして58byteの世界へ案内してくれます。
4873112885
ELF GOLF 紳士のスポーツ
講義ではナシアリだったような
ナシアリの改行アリですね。<br>PE版まだー?
おお、失礼しました。ナシアリだったか。<br>ところでPE版ってなんですか?>satoyu先生
PEはWindowsの実行バイナリの形式のことです。
です>PE。nasm使って、ちょちょっとやってみてくださいなっと。<br><br>> 私が作ったのはこれでいくと116byte<br>んー、138Bくらいはあった罠。pause()を削っても131Bかな。<br>http://shinh.skr.jp/binary/fsij061115/index.cgi?i=46 <br>のようにコード部分を工夫しないと116Bすらも達成できんのですYO!<br>実は。
情報どもです!<br>そか、講義でも少し話がでていましたね。>PE<br>elf golfer への道のりは遠いなぁ。