95
アセンブラ短歌 アセンブラ短歌 坂井弘亮 坂井弘亮 (KOZOSプロジェクト プロジェクト ) TwitterID:kozossakai

アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

アセンブラ短歌アセンブラ短歌

坂井弘亮坂井弘亮(KOZOSプロジェクトプロジェクト )TwitterID:kozossakai

Page 2: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

まず最初にまず最初に紹介紹介

Page 3: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

SoftwareDesign誌誌 懐かしの連載懐かしの連載 「全国津々浦々!「全国津々浦々! 勉強会勉強会&イベントイベント 探訪記」探訪記」

Page 4: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

電子書籍に電子書籍になります!なります!

Page 5: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

電子書籍に電子書籍になります!なります!

した!した!

Page 6: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

達人出版会達人出版会

Page 7: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

OSC東京もOSC東京も 収録されてます!収録されてます! (2011年春・秋2011年春・秋 )

Page 8: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

さて本題さて本題

Page 9: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

SECCONSECCON20132013SECCONSECCON20132013SECCONSECCON20132013SECCONSECCON20132013

Page 10: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

SECCONとは何かSECCONとは何か

セキュリティ競技のセキュリティ競技のコンテストですコンテストです

Page 11: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

昨年は昨年はCTFというという 競技大会が競技大会が メインでしたがメインでしたが

Page 12: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

今年のSECCONでは今年のSECCONでは 様々な様々なコンテストコンテストがが 行われるらしい行われるらしい

Page 13: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

10月の長野大会では10月の長野大会では アセンブラ短歌のアセンブラ短歌の コンテストとコンテストと品評会品評会がが 行われました行われました

Page 14: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

アセンブラ短歌?アセンブラ短歌?

Page 15: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

アセンブラ短歌とはアセンブラ短歌とは5・7・5・7・7の機械語5・7・5・7・7の機械語 コードでプログラムをコードでプログラムを 書いてみるという書いてみるという

近未来の文化的趣味近未来の文化的趣味

Page 16: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

こんな感じですこんな感じです

Page 17: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

68 72 6c 64 2168 6f 20 57 6f 90 9068 48 65 6c 6c89 e5 6a 0c 55 6a 0250 90 6a 04 58 cd 80

Page 18: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

札に詠むと札に詠むとこんな感じこんな感じ

Page 19: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc
Page 20: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

実行結果実行結果

Page 21: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

Hello World!

Page 22: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

ちなみにちなみに他の言語では他の言語では

Page 23: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

「XX短歌」は「XX短歌」は 他の言語では他の言語では 難難しいしい

Page 24: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

スクリプト言語ではスクリプト言語では これが邪魔これが邪魔

Page 25: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

#!/bin/sh(9文字9文字)

Page 26: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

C言語ではC言語では これが邪魔これが邪魔

Page 27: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

#include <stdio.h>

(18文字18文字)

Page 28: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

アセンブラはアセンブラは もっとももっとも短歌短歌に向いたに向いた 高級(な)言語です高級(な)言語です

Page 29: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

ところでところで

Page 30: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

SECCON 長野大会の長野大会の 品評会で品評会で 披露されたもの披露されたもの

Page 31: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

アセンブラ短歌アセンブラ短歌作品の作品の

Page 32: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

掛軸掛軸

Page 33: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc
Page 34: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

拡大すると拡大すると

Page 35: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

タイトル「新潟」タイトル「新潟」

Page 36: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

ちなみにちなみに

Page 37: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

アセンブラ短歌もアセンブラ短歌も 近日中に近日中に

書籍化されます!書籍化されます! (オンデマンドオンデマンド&電子電子)

Page 38: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

31バイトでつくるバイトでつくる アセンブラプログラミングアセンブラプログラミング アセンブラ短歌の世界アセンブラ短歌の世界

Page 39: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

そんなそんな アセンブラ短歌アセンブラ短歌 ですがですが

Page 40: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

いちおういちおう セキュリティ教育のセキュリティ教育の 目的があります目的があります

(詳しくは詳しくはHP参照参照)http://kozos.jp/asm-tanka/

Page 41: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

ではでは

Page 42: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

一首一首 鑑賞して鑑賞して みましょうみましょう

Page 43: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

タイトルタイトル 「夏休み」「夏休み」詠み人:私詠み人:私

Page 44: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc
Page 45: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

鑑賞ポイント鑑賞ポイント

Page 46: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

アセンブラを見るとアセンブラを見るとpush $0pop %eaxpush %eaxinc %eax

push $0x616d6179push %eaxinc %eax

push $8pop %edxpop %ebxinc %eax

push $0x616b6157push %espinc %eax

pop %ecxint $0x80pop %eaxpop %eaxpop %eaxret

上の句上の句下の句下の句

Page 47: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

アセンブラを見るとアセンブラを見るとpush $0pop %eaxpush %eaxinc %eax

push $0x616d6179push %eaxinc %eax

push $8pop %edxpop %ebxinc %eax

push $0x616b6157push %espinc %eax

pop %ecxint $0x80pop %eaxpop %eaxpop %eaxret

上の句上の句下の句下の句

各句の末尾に同じ命令が各句の末尾に同じ命令が

Page 48: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

つまりつまり

Page 49: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

韻をふんでいる韻をふんでいる わけですわけです

Page 50: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc
Page 51: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

0x40でで韻をふむ韻をふむ

Page 52: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

他にも他にも

Page 53: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

push $0pop %eaxpush %eaxinc %eax

push $0x616d6179push %eaxinc %eax

push $8pop %edxpop %ebxinc %eax

push $0x616b6157push %espinc %eax

pop %ecxint $0x80pop %eaxpop %eaxpop %eaxret

Page 54: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

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の値を流用しての値を流用して レジスタ設定しているレジスタ設定している

Page 55: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

まるでまるで

Page 56: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

流れる小川の流れる小川のせせらぎのようせせらぎのよう

Page 57: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

命令に注目命令に注目するとすると

Page 58: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

push $0pop %eaxpush %eaxinc %eax

push $0x616d6179push %eaxinc %eax

push $8pop %edxpop %ebxinc %eax

push $0x616b6157push %espinc %eax

pop %ecxint $0x80pop %eaxpop %eaxpop %eaxret

Page 59: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

push $0pop %eaxpush %eaxinc %eax

push $0x616d6179push %eaxinc %eax

push $8pop %edxpop %ebxinc %eax

push $0x616b6157push %espinc %eax

pop %ecxint $0x80pop %eaxpop %eaxpop %eaxret

命令のリズムもある命令のリズムもある

Page 60: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

総評総評 最初にゼロ設定した最初にゼロ設定したEAXがが inc命令で1ずつ増命令で1ずつ増加していく際に,その値を流用して加していく際に,その値を流用して EBXや戻りや戻り値の値のEAXを設定していくさまは,を設定していくさまは, 流れる小川の流れる小川のせせらぎせせらぎ のようです.またニーモニックを見るとのようです.またニーモニックを見ると「「push-pop-push-inc, push-push-inc」」

「「push-pop-pop-inc, push-push-inc」という」というスキップするようなリズムスキップするようなリズム があり,小川のほとりでがあり,小川のほとりで遊ぶ遊ぶ 子供たちの情景子供たちの情景 を思い起こさせ,を思い起こさせ, 「夏休「夏休み」み」 というテーマがよく表現されています.というテーマがよく表現されています.

Page 61: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

総評総評 最初にゼロ設定した最初にゼロ設定したEAXがが inc命令で1ずつ増命令で1ずつ増加していく際に,その値を流用して加していく際に,その値を流用して EBXや戻りや戻り値の値のEAXを設定していくさまは,を設定していくさまは, 流れる小川の流れる小川のせせらぎせせらぎ のようです.またニーモニックを見るとのようです.またニーモニックを見ると「「push-pop-push-inc, push-push-inc」」

「「push-pop-pop-inc, push-push-inc」という」というスキップするようなリズムスキップするようなリズム があり,小川のほとりでがあり,小川のほとりで遊ぶ遊ぶ 子供たちの情景子供たちの情景 を思い起こさせ,を思い起こさせ, 「夏休「夏休み」み」 というテーマがよく表現されています.というテーマがよく表現されています.

Page 62: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

総評総評 最初にゼロ設定した最初にゼロ設定したEAXがが inc命令で1ずつ増命令で1ずつ増加していく際に,その値を流用して加していく際に,その値を流用して EBXや戻りや戻り値の値のEAXを設定していくさまは,を設定していくさまは, 流れる小川の流れる小川のせせらぎせせらぎ のようです.またニーモニックを見るとのようです.またニーモニックを見ると「「push-pop-push-inc, push-push-inc」」

「「push-pop-pop-inc, push-push-inc」という」というスキップするようなリズムスキップするようなリズム があり,小川のほとりでがあり,小川のほとりで遊ぶ遊ぶ 子供たちの情景子供たちの情景 を思い起こさせ,を思い起こさせ, 「夏休「夏休み」み」 というテーマがよく表現されています.というテーマがよく表現されています.

Page 63: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

総評総評 最初にゼロ設定した最初にゼロ設定したEAXがが inc命令で1ずつ増命令で1ずつ増加していく際に,その値を流用して加していく際に,その値を流用して EBXや戻りや戻り値の値のEAXを設定していくさまは,を設定していくさまは, 流れる小川の流れる小川のせせらぎせせらぎ のようです.またニーモニックを見るとのようです.またニーモニックを見ると「「push-pop-push-inc, push-push-inc」」

「「push-pop-pop-inc, push-push-inc」という」というスキップするようなリズムスキップするようなリズム があり,小川のほとりでがあり,小川のほとりで遊ぶ遊ぶ 子供たちの情景子供たちの情景 を思い起こさせ,を思い起こさせ, 「夏休「夏休み」み」 というテーマがよく表現されています.というテーマがよく表現されています.

Page 64: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

総評総評 最初にゼロ設定した最初にゼロ設定したEAXがが inc命令で1ずつ増命令で1ずつ増加していく際に,その値を流用して加していく際に,その値を流用して EBXや戻りや戻り値の値のEAXを設定していくさまは,を設定していくさまは, 流れる小川の流れる小川のせせらぎせせらぎ のようです.またニーモニックを見るとのようです.またニーモニックを見ると「「push-pop-push-inc, push-push-inc」」

「「push-pop-pop-inc, push-push-inc」という」というスキップするようなリズムスキップするようなリズム があり,小川のほとりでがあり,小川のほとりで遊ぶ遊ぶ 子供たちの情景子供たちの情景 を思い起こさせ,を思い起こさせ, 「夏休「夏休み」み」 というテーマがよく表現されています.というテーマがよく表現されています.

Page 65: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

ここからがここからが今日の本題今日の本題

Page 66: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

ふだんは趣味でふだんは趣味で こんなことをこんなことを やっていますやっています

Page 67: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

GCCが対応しているGCCが対応している CPUアーキテクチャのCPUアーキテクチャの

アセンブラをアセンブラを 片っ端片っ端から出力させてから出力させて 片っ端片っ端から読んでみるから読んでみる

Page 68: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

この技術をこの技術を アセンブラ短歌にアセンブラ短歌に 活活かしたいかしたい

Page 69: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

アセンブラ短歌にアセンブラ短歌に もっとも向いたもっとも向いた アーキテクチャはアーキテクチャは

何か?何か?

Page 70: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

RISC系プロセッサRISC系プロセッサ → 4バイト固定長命令4バイト固定長命令 可変長命令でも可変長命令でも

→ 偶数バイト命令が多偶数バイト命令が多原理的に不可能原理的に不可能

Page 71: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

以下のアーキで以下のアーキで 原理的に可能な原理的に可能な ことが判明ことが判明

x86(Intel) M32C(三菱三菱 ) MN10300(松下松下 )

RL78(ルネサスルネサス) RX(ルネサスルネサス) Xtensa(テンシリカテンシリカ )

Page 72: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

やってみたやってみた

Page 73: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

まず、RXまず、RX

Page 74: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

こんな感じかこんな感じか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

上の句上の句

下の句下の句

Page 75: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

機械語コードは機械語コードはこんな感じこんな感じ

Page 76: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc
Page 77: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

実行結果は実行結果は

Page 78: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

Hello Worl

(10文字10文字)

Page 79: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

次、RL78次、RL78

Page 80: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

こんな感じこんな感じmov 0xfff10, #72mov a, #108

mov 0xfff10, #101mov 0xfff10, amov 0xfff10, a

mov 0xfff10, #111mov a, #32

mov 0xfff10, amov 0xfff10, #87mov a, #111

mov 0xfff10, amov 0xfff10, #114nopnop上の句上の句

下の句下の句

Page 81: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

こんなこんな かんじかんじ

Page 82: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

実行結果は実行結果は

Page 83: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

Hello Wor

(9文字9文字)

Page 84: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

他のは他のはこんな感じこんな感じ

Page 85: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

MN10300

M32CHello Wo

Hello!

(8文字8文字)

(6文字6文字)

Page 86: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

i386/FreeBSD

x86/LinuxHello World!

Hello World!!

(12文字文字 )

(13文字文字 )

Page 87: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

比較してみる比較してみる

Page 88: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

比較の前に比較の前に

Page 89: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

定量化の定量化のためにはためには単位が必要単位が必要

Page 90: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

単位を制定する単位を制定するBPT (Byte per Tanka)

...アセンブラ短歌のアセンブラ短歌の やりやすさの指標やりやすさの指標

Page 91: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

たとえばRXではたとえばRXではhello Worlで10文字なのでで10文字なので 10BPT10BPT

Page 92: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

集計すると集計すると

Page 93: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

M32C 6BPTMN10300 8BPTRL78 9BPTRX 10BPTi386/FreeBSD12BPTx86/Linux 13BPT

Page 94: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

x86は非常には非常に短歌に向いている短歌に向いていることが判明ことが判明

(あとあとLinuxもも)

Page 95: アセンブラ短歌 - kozoskozos.jp/documents/LT_asm_tanka_osc2013tokyofall.pdf · アセンブラを見ると push $0 pop %eax push %eax inc %eax push $0x616d6179 push %eax inc

どうもありがとうどうもありがとうございましたございました