【お知らせ】プログラミング記事の投稿はQiitaに移行しました。

a.outの分析 (2)

id:n7shi:20100205に引き続いてa.outを分析します。アセンブリ版ではサイズ縮小のためセクションを削りましたが、セクションを確認するためC言語版を分析します。

int m[] = { 0, 1/*EXIT*/, 42, 0, 0, 0, 0, 0, 0 };

void start()
{
	asm("mov eax, 0; mov ecx, 3; int 0x21" :: "b"(m));
}

配列をローカルで定義するとスタックへコピーされて冗長になるため、関数の外に出しました。

続きを読む