«前の日記(2007-01-22) 最新 次の日記(2007-01-26)» 編集

いがいが日記


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の世界へ案内してくれます。

本日のツッコミ(全6件) [ツッコミを入れる]
_ あまの (2007-01-27 16:24)

講義ではナシアリだったような

_ sato-yu (2007-01-27 16:54)

ナシアリの改行アリですね。<br>PE版まだー?

_ いが (2007-01-27 20:44)

おお、失礼しました。ナシアリだったか。<br>ところでPE版ってなんですか?>satoyu先生

_ あまの (2007-01-27 21:19)

PEはWindowsの実行バイナリの形式のことです。

_ sato-yu (2007-01-28 02:19)

です>PE。nasm使って、ちょちょっとやってみてくださいなっと。<br><br>> 私が作ったのはこれでいくと116byte<br>んー、138Bくらいはあった罠。pause()を削っても131Bかな。<br>http://shinh.skr.jp/binary/fsij061115/index.cgi?i=46 <br>のようにコード部分を工夫しないと116Bすらも達成できんのですYO!<br>実は。

_ いが (2007-01-28 19:50)

情報どもです!<br>そか、講義でも少し話がでていましたね。>PE<br>elf golfer への道のりは遠いなぁ。


«前の日記(2007-01-22) 最新 次の日記(2007-01-26)» 編集