Assembly Language Tanka (AVTOKYO2013.5 English version)

76
Assembly Language Tanka SAKAI Hiroaki (KOZOS Project) TwitterID:kozossakai

Transcript of Assembly Language Tanka (AVTOKYO2013.5 English version)

Page 1: Assembly Language Tanka (AVTOKYO2013.5 English version)

AssemblyLanguage Tanka

SAKAI Hiroaki(KOZOS Project)TwitterID:kozossakai

Page 2: Assembly Language Tanka (AVTOKYO2013.5 English version)

AssemblyLanguageTanka?

Page 3: Assembly Language Tanka (AVTOKYO2013.5 English version)

What's assemblylanguage tanka?

Write program in 5+7+5+7+7 machine codes.

It's cool and exciting!

Page 4: Assembly Language Tanka (AVTOKYO2013.5 English version)

Example

Page 5: Assembly Language Tanka (AVTOKYO2013.5 English version)

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 6: Assembly Language Tanka (AVTOKYO2013.5 English version)

Write on Japanese

Tanka card.

Page 7: Assembly Language Tanka (AVTOKYO2013.5 English version)
Page 8: Assembly Language Tanka (AVTOKYO2013.5 English version)

Result

Page 9: Assembly Language Tanka (AVTOKYO2013.5 English version)

Hello World!

Page 10: Assembly Language Tanka (AVTOKYO2013.5 English version)

in otherlanguages,

Page 11: Assembly Language Tanka (AVTOKYO2013.5 English version)

Tanka is impossible in other programming

languages.

Page 12: Assembly Language Tanka (AVTOKYO2013.5 English version)

For example,Shell script

Page 13: Assembly Language Tanka (AVTOKYO2013.5 English version)

#!/bin/sh(9 letters!)

Page 14: Assembly Language Tanka (AVTOKYO2013.5 English version)

For example,Language C

Page 15: Assembly Language Tanka (AVTOKYO2013.5 English version)

#include <stdio.h>

(18 letters!)

Page 16: Assembly Language Tanka (AVTOKYO2013.5 English version)

XSS Tanka?

Page 17: Assembly Language Tanka (AVTOKYO2013.5 English version)

XSS tanka has no tankism

Page 18: Assembly Language Tanka (AVTOKYO2013.5 English version)

Assembly is most tankable

language

Page 19: Assembly Language Tanka (AVTOKYO2013.5 English version)

in SECCONNagano,

Page 20: Assembly Language Tanka (AVTOKYO2013.5 English version)

What's displayed?

Page 21: Assembly Language Tanka (AVTOKYO2013.5 English version)

Assemblylanguagetanka's

Page 22: Assembly Language Tanka (AVTOKYO2013.5 English version)

hangingscroll!

Page 23: Assembly Language Tanka (AVTOKYO2013.5 English version)
Page 24: Assembly Language Tanka (AVTOKYO2013.5 English version)

See well.

Page 25: Assembly Language Tanka (AVTOKYO2013.5 English version)

Title: Niigata

Page 26: Assembly Language Tanka (AVTOKYO2013.5 English version)

So,

Page 27: Assembly Language Tanka (AVTOKYO2013.5 English version)

Let's tanking!

Page 28: Assembly Language Tanka (AVTOKYO2013.5 English version)

Title: Summer vacationTankist: Me

Page 29: Assembly Language Tanka (AVTOKYO2013.5 English version)
Page 30: Assembly Language Tanka (AVTOKYO2013.5 English version)

Check points

Page 31: Assembly Language Tanka (AVTOKYO2013.5 English version)

See assemblypush $0pop %eaxpush %eaxinc %eax

push $0x616d6179push %eaxinc %eax

push $8pop %edxpop %ebxinc %eax

push $0x616b6157push %espinc %eax

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

Uppersection Lower

section

Page 32: Assembly Language Tanka (AVTOKYO2013.5 English version)

See assemblypush $0pop %eaxpush %eaxinc %eax

push $0x616d6179push %eaxinc %eax

push $8pop %edxpop %ebxinc %eax

push $0x616b6157push %espinc %eax

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

Uppersection Lower

section

Same instructionin last position.

Page 33: Assembly Language Tanka (AVTOKYO2013.5 English version)

That is,

Page 34: Assembly Language Tanka (AVTOKYO2013.5 English version)

Stepped onthe rhyme.

Page 35: Assembly Language Tanka (AVTOKYO2013.5 English version)
Page 36: Assembly Language Tanka (AVTOKYO2013.5 English version)

Stepped on the rhyme

by 0x40

Page 37: Assembly Language Tanka (AVTOKYO2013.5 English version)

Otherpoints

Page 38: Assembly Language Tanka (AVTOKYO2013.5 English version)

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 39: Assembly Language Tanka (AVTOKYO2013.5 English version)

push $0pop %eaxpush %eaxinc %eax

push $0x616d6179push %eaxinc %eax

push $8pop %edxpop %ebxinc %eax

push $0x616b6157push %espinc %eax

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

Set up registers by value of EAX.

Page 40: Assembly Language Tanka (AVTOKYO2013.5 English version)

That is,

Page 41: Assembly Language Tanka (AVTOKYO2013.5 English version)

Like a flowof a brook.

Page 42: Assembly Language Tanka (AVTOKYO2013.5 English version)

See instructions

Page 43: Assembly Language Tanka (AVTOKYO2013.5 English version)

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 44: Assembly Language Tanka (AVTOKYO2013.5 English version)

push $0pop %eaxpush %eaxinc %eax

push $0x616d6179push %eaxinc %eax

push $8pop %edxpop %ebxinc %eax

push $0x616b6157push %espinc %eax

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

Mnemonic has a rhythm, "push-pop-inc".

Page 45: Assembly Language Tanka (AVTOKYO2013.5 English version)

Comments While EAX first set as zero increases every sectionby the inc instruction, the value of EAX was divertedand other parameters are set. This seems to be the

flow of a brook. There is a rhythm which is skipped ina mnemonic like "push-pop-push-inc, push-push-inc"and "push-pop-pop-inc, push-push-inc". The sight ofthe children who play the side of a brook is made toconsider. The theme the "summer vacation" is often

expressed.

Page 46: Assembly Language Tanka (AVTOKYO2013.5 English version)

Muchtankassion!

Page 47: Assembly Language Tanka (AVTOKYO2013.5 English version)

Information

Page 48: Assembly Language Tanka (AVTOKYO2013.5 English version)

Book of assembly

language tanka!

Page 49: Assembly Language Tanka (AVTOKYO2013.5 English version)

Assembly programming in 31 bytes

World of assemblylanguage tanka

Page 50: Assembly Language Tanka (AVTOKYO2013.5 English version)
Page 51: Assembly Language Tanka (AVTOKYO2013.5 English version)

Tankists:Sakai Hiroaki

Aiko Kenji Matsuda Kazuki Sakai Takeyasu

Takesako Yoshinori

Page 52: Assembly Language Tanka (AVTOKYO2013.5 English version)

Now on sale!

Page 53: Assembly Language Tanka (AVTOKYO2013.5 English version)

Event for book! (January 20) "2014 Let's try assembly language tanka!"

at Mynavi Room

Page 54: Assembly Language Tanka (AVTOKYO2013.5 English version)

Today'smain

subject!

Page 55: Assembly Language Tanka (AVTOKYO2013.5 English version)

What is the most tankaful architecture?

Page 56: Assembly Language Tanka (AVTOKYO2013.5 English version)

RISC architecture: Instruction is fixed in 4 bytes.

If flexible instruction, most architecture has

machine code of even length.

Untankable!

Page 57: Assembly Language Tanka (AVTOKYO2013.5 English version)

Tankablearchitectures

x86(Intel) M32C(Mitsubishi) MN10300(Panasonic)

RL78(Renesas) RX(Renesas) Xtensa(Tensilica)

Page 58: Assembly Language Tanka (AVTOKYO2013.5 English version)

Results

Page 59: Assembly Language Tanka (AVTOKYO2013.5 English version)

RX(Renesas Electronics)

Page 60: Assembly Language Tanka (AVTOKYO2013.5 English version)

Assemblymov.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

Uppersection

Lowersection

Page 61: Assembly Language Tanka (AVTOKYO2013.5 English version)

Execution

Page 62: Assembly Language Tanka (AVTOKYO2013.5 English version)

Hello Worl

(10 letters)

Page 63: Assembly Language Tanka (AVTOKYO2013.5 English version)

RL78(Renesas Electronics)

Page 64: Assembly Language Tanka (AVTOKYO2013.5 English version)

Hello Wor

(9 letters)

Page 65: Assembly Language Tanka (AVTOKYO2013.5 English version)

Others

Page 66: Assembly Language Tanka (AVTOKYO2013.5 English version)

MN10300

M32CHello Wo

Hello!

(8 letters)

(6 letters)

Page 67: Assembly Language Tanka (AVTOKYO2013.5 English version)

i386/FreeBSD

x86/LinuxHello World!

Hello World!!

(12 letters)

(13 letters)

Page 68: Assembly Language Tanka (AVTOKYO2013.5 English version)

Let'scompare.

Page 69: Assembly Language Tanka (AVTOKYO2013.5 English version)

Beforecomparison

Page 70: Assembly Language Tanka (AVTOKYO2013.5 English version)

For quantification, a unit is needed.

Page 71: Assembly Language Tanka (AVTOKYO2013.5 English version)

Define a unitBPT (Byte per Tanka)

How tankafulfor tanking.

Page 72: Assembly Language Tanka (AVTOKYO2013.5 English version)

Example on RXhello Worl

10 letters: 10BPT

Page 73: Assembly Language Tanka (AVTOKYO2013.5 English version)

Aggregation

Page 74: Assembly Language Tanka (AVTOKYO2013.5 English version)

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

Page 75: Assembly Language Tanka (AVTOKYO2013.5 English version)

x86 is very tankaful

architecture! (and, Linux too)

Page 76: Assembly Language Tanka (AVTOKYO2013.5 English version)

Thank youfor my tanking!