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

アセンブラ短歌(TechLION vol.15 ライトニングトーク)

Jul 24, 2015

Download

Technology

kozossakai
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

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

Page 2: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

Page 3: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

Page 4: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

Page 5: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

した!した!

Page 6: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

達人出版会達人出版会

Page 7: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

TechLIONもも 収録されてます!収録されてます!

(vol.1〜〜4)

Page 8: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

高橋さん高橋さんありがとうありがとうございますございます(深謝深謝)

Page 9: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

あともうひとつあともうひとつ

Page 10: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

バイナリカレンダーバイナリカレンダー持ってきてます持ってきてます

Page 11: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

こんなのこんなのですです

Page 12: アセンブラ短歌(TechLION vol.15 ライトニングトーク)
Page 13: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

ほしいかたにはほしいかたには あげますあげます

お声がけくださいお声がけください

Page 14: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

さて本題さて本題

Page 15: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

SECCONSECCON20132013SECCONSECCON20132013SECCONSECCON20132013SECCONSECCON20132013

Page 16: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

SECCONとは何かSECCONとは何か

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

Page 17: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

Page 18: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

Page 19: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

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

Page 20: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

Page 21: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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 22: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

Page 23: アセンブラ短歌(TechLION vol.15 ライトニングトーク)
Page 24: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

実行結果実行結果

Page 25: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

Hello World!

Page 26: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

ところでところで

Page 27: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

Page 28: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

Page 29: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

掛軸掛軸

Page 30: アセンブラ短歌(TechLION vol.15 ライトニングトーク)
Page 31: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

拡大すると拡大すると

Page 32: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

Page 33: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

ちなみにちなみに

Page 34: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

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

Page 35: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

Page 36: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

マイナビマイナビ すげえすげえ

Page 37: アセンブラ短歌(TechLION vol.15 ライトニングトーク)
Page 38: アセンブラ短歌(TechLION vol.15 ライトニングトーク)
Page 39: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

すでに予約開始すでに予約開始していますしています

(オンデマンドなのでオンデマンドなので書店には並びません書店には並びません)

Page 40: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

ではでは 書籍中から書籍中から

Page 41: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

Page 42: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

タイトルタイトル 「我思う」「我思う」詠み人:私詠み人:私

Page 43: アセンブラ短歌(TechLION vol.15 ライトニングトーク)
Page 44: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

Page 45: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

実は実はQuineにに なってますなってます

Page 46: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

Quineとはとは自分自身を出力する自分自身を出力するプログラムのことですプログラムのことです

Page 47: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

つまりつまり

Page 48: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

これを実行するとこれを実行すると

Page 49: アセンブラ短歌(TechLION vol.15 ライトニングトーク)
Page 50: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

これが出力されますこれが出力されます

Page 51: アセンブラ短歌(TechLION vol.15 ライトニングトーク)
Page 52: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

さらにさらに機械語コードに機械語コードに注目!注目!

Page 53: アセンブラ短歌(TechLION vol.15 ライトニングトーク)
Page 54: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

"QUINE"のの5文字が5文字が埋め込んで埋め込んでありますあります

Page 55: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

つまりつまり

Page 56: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

Quineによりにより「「QUINE」と」と出力される!出力される!

Page 57: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

総評総評 Quineにより「により「QUINE」と出力させていることは,」と出力させていることは,内面内面 をさらけ出した上で「私を見ろ!」「私は私をさらけ出した上で「私を見ろ!」「私は私だ!」と言っているようなだ!」と言っているような 強い自我強い自我とと 誇りの高誇りの高ささ,, 情熱情熱を感じさせ,を感じさせ, タイトルの「我思う」にふさタイトルの「我思う」にふさわしい作品になっています.わしい作品になっています. 言いたいことを言っ言いたいことを言った後はた後はretでなくでなくexitシステムコールでシステムコールで 終わってい終わっていることも過去を振り返らないることも過去を振り返らない 意志の強さ意志の強さ が感じが感じられていさぎ良く,られていさぎ良く, 一本筋一本筋 の通っている作品との通っている作品と

言うことができるでしょう.言うことができるでしょう.

Page 58: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

総評総評 Quineにより「により「QUINE」と出力させていることは,」と出力させていることは,内面内面 をさらけ出した上で「私を見ろ!」「私は私をさらけ出した上で「私を見ろ!」「私は私だ!」と言っているようなだ!」と言っているような 強い自我強い自我とと 誇りの高誇りの高ささ,, 情熱情熱を感じさせ,を感じさせ, タイトルの「我思う」にふさタイトルの「我思う」にふさわしい作品になっています.わしい作品になっています. 言いたいことを言っ言いたいことを言った後はた後はretでなくでなくexitシステムコールでシステムコールで 終わってい終わっていることも過去を振り返らないることも過去を振り返らない 意志の強さ意志の強さ が感じが感じられていさぎ良く,られていさぎ良く, 一本筋一本筋 の通っている作品との通っている作品と

言うことができるでしょう.言うことができるでしょう.

Page 59: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

総評総評 Quineにより「により「QUINE」と出力させていることは,」と出力させていることは,内面内面 をさらけ出した上で「私を見ろ!」「私は私をさらけ出した上で「私を見ろ!」「私は私だ!」と言っているようなだ!」と言っているような 強い自我強い自我とと 誇りの高誇りの高ささ,, 情熱情熱を感じさせ,を感じさせ, タイトルの「我思う」にふさタイトルの「我思う」にふさわしい作品になっています.わしい作品になっています. 言いたいことを言っ言いたいことを言った後はた後はretでなくでなくexitシステムコールでシステムコールで 終わってい終わっていることも過去を振り返らないることも過去を振り返らない 意志の強さ意志の強さ が感じが感じられていさぎ良く,られていさぎ良く, 一本筋一本筋 の通っている作品との通っている作品と

言うことができるでしょう.言うことができるでしょう.

Page 60: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

総評総評 Quineにより「により「QUINE」と出力させていることは,」と出力させていることは,内面内面 をさらけ出した上で「私を見ろ!」「私は私をさらけ出した上で「私を見ろ!」「私は私だ!」と言っているようなだ!」と言っているような 強い自我強い自我とと 誇りの高誇りの高ささ,, 情熱情熱を感じさせ,を感じさせ, タイトルの「我思う」にふさタイトルの「我思う」にふさわしい作品になっています.わしい作品になっています. 言いたいことを言っ言いたいことを言った後はた後はretでなくでなくexitシステムコールでシステムコールで 終わってい終わっていることも過去を振り返らないることも過去を振り返らない 意志の強さ意志の強さ が感じが感じられていさぎ良く,られていさぎ良く, 一本筋一本筋 の通っている作品との通っている作品と

言うことができるでしょう.言うことができるでしょう.

Page 61: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

総評総評 Quineにより「により「QUINE」と出力させていることは,」と出力させていることは,内面内面 をさらけ出した上で「私を見ろ!」「私は私をさらけ出した上で「私を見ろ!」「私は私だ!」と言っているようなだ!」と言っているような 強い自我強い自我とと 誇りの高誇りの高ささ,, 情熱情熱を感じさせ,を感じさせ, タイトルの「我思う」にふさタイトルの「我思う」にふさわしい作品になっています.わしい作品になっています. 言いたいことを言っ言いたいことを言った後はた後はretでなくでなくexitシステムコールでシステムコールで 終わってい終わっていることも過去を振り返らないることも過去を振り返らない 意志の強さ意志の強さ が感じが感じられていさぎ良く,られていさぎ良く, 一本筋一本筋 の通っている作品との通っている作品と

言うことができるでしょう.言うことができるでしょう.

Page 62: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

総評総評 Quineにより「により「QUINE」と出力させていることは,」と出力させていることは,内面内面 をさらけ出した上で「私を見ろ!」「私は私をさらけ出した上で「私を見ろ!」「私は私だ!」と言っているようなだ!」と言っているような 強い自我強い自我とと 誇りの高誇りの高ささ,, 情熱情熱を感じさせ,を感じさせ, タイトルの「我思う」にふさタイトルの「我思う」にふさわしい作品になっています.わしい作品になっています. 言いたいことを言っ言いたいことを言った後はた後はretでなくでなくexitシステムコールでシステムコールで 終わってい終わっていることも過去を振り返らないることも過去を振り返らない 意志の強さ意志の強さ が感じが感じられていさぎ良く,られていさぎ良く, 一本筋一本筋 の通っている作品との通っている作品と

言うことができるでしょう.言うことができるでしょう.

Page 63: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

総評総評 Quineにより「により「QUINE」と出力させていることは,」と出力させていることは,内面内面 をさらけ出した上で「私を見ろ!」「私は私をさらけ出した上で「私を見ろ!」「私は私だ!」と言っているようなだ!」と言っているような 強い自我強い自我とと 誇りの高誇りの高ささ,, 情熱情熱を感じさせ,を感じさせ, タイトルの「我思う」にふさタイトルの「我思う」にふさわしい作品になっています.わしい作品になっています. 言いたいことを言っ言いたいことを言った後はた後はretでなくでなくexitシステムコールでシステムコールで 終わってい終わっていることも過去を振り返らないることも過去を振り返らない 意志の強さ意志の強さ が感じが感じられていさぎ良く,られていさぎ良く, 一本筋一本筋 の通っている作品との通っている作品と

言うことができるでしょう.言うことができるでしょう.

Page 64: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

Page 65: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

何か?何か?

Page 66: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

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

Page 67: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

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

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

Page 68: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

やってみたやってみた

Page 69: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

まず、RXまず、RX

Page 70: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

こんな感じかこんな感じか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 71: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

Page 72: アセンブラ短歌(TechLION vol.15 ライトニングトーク)
Page 73: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

実行結果は実行結果は

Page 74: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

Hello Worl

(10文字10文字)

Page 75: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

次、RL78次、RL78

Page 76: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

Hello Wor

(9文字9文字)

Page 77: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

Page 78: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

MN10300

M32CHello Wo

Hello!

(8文字8文字)

(6文字6文字)

Page 79: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

i386/FreeBSD

x86/LinuxHello World!

Hello World!!

(12文字文字 )

(13文字文字 )

Page 80: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

Page 81: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

比較の前に比較の前に

Page 82: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

Page 83: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

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

Page 84: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

Page 85: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

集計すると集計すると

Page 86: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

Page 87: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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

(あとあとLinuxもも)

Page 88: アセンブラ短歌(TechLION vol.15 ライトニングトーク)

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