Post on 16-Jul-2015
アセンブラ短歌とはアセンブラ短歌とは5・7・5・7・7の機械語5・7・5・7・7の機械語 コードでプログラムをコードでプログラムを 書いてみるという書いてみるという
近未来の文化的趣味近未来の文化的趣味
アセンブラを見るとアセンブラを見るとpush $0pop %eaxpush %eaxinc %eax
push $0x616d6179push %eaxinc %eax
push $8pop %edxpop %ebxinc %eax
push $0x616b6157push %espinc %eax
pop %ecxint $0x80pop %eaxpop %eaxpop %eaxret
上の句上の句下の句下の句
アセンブラを見るとアセンブラを見るとpush $0pop %eaxpush %eaxinc %eax
push $0x616d6179push %eaxinc %eax
push $8pop %edxpop %ebxinc %eax
push $0x616b6157push %espinc %eax
pop %ecxint $0x80pop %eaxpop %eaxpop %eaxret
上の句上の句下の句下の句
各句の末尾に同じ命令が各句の末尾に同じ命令が
push $0pop %eaxpush %eaxinc %eax
push $0x616d6179push %eaxinc %eax
push $8pop %edxpop %ebxinc %eax
push $0x616b6157push %espinc %eax
pop %ecxint $0x80pop %eaxpop %eaxpop %eaxret
push $0pop %eaxpush %eaxinc %eax
push $0x616d6179push %eaxinc %eax
push $8pop %edxpop %ebxinc %eax
push $0x616b6157push %espinc %eax
pop %ecxint $0x80pop %eaxpop %eaxpop %eaxret
EAXの値を流用しての値を流用して レジスタ設定しているレジスタ設定している
push $0pop %eaxpush %eaxinc %eax
push $0x616d6179push %eaxinc %eax
push $8pop %edxpop %ebxinc %eax
push $0x616b6157push %espinc %eax
pop %ecxint $0x80pop %eaxpop %eaxpop %eaxret
push $0pop %eaxpush %eaxinc %eax
push $0x616d6179push %eaxinc %eax
push $8pop %edxpop %ebxinc %eax
push $0x616b6157push %espinc %eax
pop %ecxint $0x80pop %eaxpop %eaxpop %eaxret
命令のリズムもある命令のリズムもある
総評総評 最初にゼロ設定した最初にゼロ設定したEAXがが inc命令で1ずつ増命令で1ずつ増加していく際に,その値を流用して加していく際に,その値を流用して EBXや戻りや戻り値の値のEAXを設定していくさまは,を設定していくさまは, 流れる小川の流れる小川のせせらぎせせらぎ のようです.またニーモニックを見るとのようです.またニーモニックを見ると「「push-pop-push-inc, push-push-inc」」
「「push-pop-pop-inc, push-push-inc」という」というスキップするようなリズムスキップするようなリズム があり,小川のほとりでがあり,小川のほとりで遊ぶ遊ぶ 子供たちの情景子供たちの情景 を思い起こさせ,を思い起こさせ, 「夏休「夏休み」み」 というテーマがよく表現されています.というテーマがよく表現されています.
発刊記念イベント!発刊記念イベント! (1月20日1月20日 (月月 )) 「二〇一四アセンブラ短歌詠みはじめ」「二〇一四アセンブラ短歌詠みはじめ」 竹橋竹橋 パレスサイドビルパレスサイドビル マイナビルームマイナビルーム
以下のアーキで以下のアーキで 原理的に原理的に可能可能なな ことが判明ことが判明
x86(Intel) M32C(三菱三菱 ) MN10300(松下松下 )
RL78(ルネサスルネサス) RX(ルネサスルネサス) Xtensa(テンシリカテンシリカ )
こんな感じかこんな感じかmov.l #1, r1mov.l #10, r3nop
mov.l #0x6c6c6548, [r0]nop
mov.l #0x6c72, 8[r0] mov.l #0x6f57206f, 4[r0]
mov.l r0, r2mov.l #5, r5int #255
上の句上の句
下の句下の句