6a 00 58 50 40 68 79 61 6d 61 50 40 6a 08 5a 5b 40 68 57 61 6b 61 54 40 59 cd 80 58 58 58 c3
.section .text .global main .type main, @function main: /*2*/ push $0 /*1*/ pop %eax /*1*/ push %eax /*1*/ inc %eax /*5*/ push $('y'|'a'<<8|'m'<<16|'a'<<24) /*1*/ push %eax /*1*/ inc %eax /*2*/ push $8 /*1*/ pop %edx /*1*/ pop %ebx /*1*/ inc %eax /*5*/ push $('W'|'a'<<8|'k'<<16|'a'<<24) /*1*/ push %esp /*1*/ inc %eax /*1*/ pop %ecx /*2*/ int $0x80 /*1*/ pop %eax /*1*/ pop %eax /*1*/ pop %eax /*1*/ ret(プログラム説明)
実行すると「Wakayama」と出力されます. writeシステムコール番号の「4」という値を生成するのに4つのinc命令を使って おり,さらにそれらを各句の末尾に配置することで,各句の末尾で韻をふんでいます.
(鑑賞点)
最初にゼロ設定したEAXがinc命令で1ずつ増加していく際に,その値を流用して EBXや戻り値のEAXを設定していくさまは,流れる小川のせせらぎのようです. またニーモニックを見ると 「push-pop-push-inc, push-push-inc」「push-pop-pop-inc, push-push-inc」 というスキップするようなリズムがあり,小川のほとりで遊ぶ子供たちの 情景が浮かんできます.このため「夏休み」というタイトルにしました.
最後に同じpopが連続していることはいつまでも続くかのような余韻が感じられ, しかしいつかは(retで)終わってしまうというはかなさもあり, 「夏休み」というテーマがよく表現されています.
各句が40というバイトコードで終了することで韻を踏んでいることも小気味よく, 命令調整のための安易なnopが無いことも爽やかに感じられます.
e8 00 00 00 00 59 6a 1f 5a 6a 01 5b 51 55 49 4e 45 6a 04 58 29 c1 cd 80 31 db 31 c0 40 cd 80
.section .text .global main .type main, @function main: /*5*/ call 1f /*1*/1: pop %ecx /*2*/ push $31 /*1*/ pop %edx /*2*/ push $1 /*1*/ pop %ebx /*1 Q*/ push %ecx /*1 U*/ push %ebp /*1 I*/ dec %ecx /*1 N*/ dec %esi /*1 E*/ inc %ebp /*2*/ push $4 /*1*/ pop %eax /*2*/ sub %eax, %ecx /*2*/ int $0x80 /*2*/ xor %ebx, %ebx /*2*/ xor %eax, %eax /*1*/ inc %eax /*2*/ int $0x80(プログラム説明)
アセンブラ短歌によるQuine(自分自身を出力するプログラム)です. 実行すると自分自身のダンプを出力します. さらに3句目に「QUINE」という5文字にマッピングされている5命令が 埋め込まれてあるため,Quineによって「QUINE」と出力されます.
(鑑賞点)
Quineにより「QUINE」と出力させていることは,内面をさらけ出した上で 「私を見ろ!」「私は私だ!」と言っているような強い自我と誇りの高さ, 情熱を感じさせ,タイトルの「我思う」にふさわしい作品になっています. 言いたいことを言った後はretでなくexitシステムコールで終わっていることも 過去を振り返らない意志の強さが感じられていさぎ良く, 一本筋の通っている作品と言うことができるでしょう.