0と1のコンピュータ世界 バイナリで遊ぼう!
マイナビ出版
著者:坂井弘亮、坂井丈泰、愛甲健二、竹迫良範、松田和樹
はじめに
1章 バイナリ・トレーニング
1.1 まずはバイナリに慣れよう
1.1.1 2進数と16進数
1.1.2 16進数に慣れよう
1.1.3 2進数に慣れよう
1.1.4 2進数を指で数える
1.1.5 バイナリエディタ
1.1.6 バイナリエディタを使ってみる
1.1.7 16進電卓
1.1.8 ASCIIコード
1.2 バイナリ筋トレ
1.2.1 バイナリけんけんぱ
1.2.2 バイナリ体操
2章 バイナリかるた
2.1 バイナリかるたとは何か?
2.1.1 かるた札を作ってみた
2.2 バイナリかるたを作ってみよう
2.2.1 かるた生成システム
2.2.2 システムの利用方法
2.2.3 オリジナルかるたを作ってみる
2.2.4 ビットマップの配色
2.3 かるた実践:どのように見るか?
2.3.1 アーカイブファイルを見る
2.3.2 実行ファイルを見る
2.3.3 画像ファイルを見る
2.3.4 パケットデータを見る
2.3.5 その他のデータを見る
2.4 応用例:バイナリカレンダー
2.4.1 日付を16進数で表記する
2.4.2 バイナリカレンダーを作ってみよう
2.4.3 オリジナルのカレンダーを作る
3章 アセンブラ・クロスワード
3.1 クロスワード・パズルを作ろう
3.1.1 システムコール・クロスワード
3.1.2 縦のカギと横のカギを入れる
3.1.3 もっと大きなものを作ってみよう
3.2 アセンブラ・クロスワードの制作に挑戦する
3.2.1 アセンブラ・クロスワード
3.2.2 アセンブラ・クロスワードを作ってみる
3.2.3 入れたい命令をピックアップする
3.2.4 クロスワードの原型を作る
3.2.5 クロスワードの完成形
3.3 バイナリ・クロスワード (坂井丈泰)
3.3.1 16進数でクロスワード・パズルを作る
3.3.2 解答と解説
3.4 バイナリ・ナンプレ (坂井丈泰)
3.4.1 普通のナンプレ
3.4.2 バイナリ・ナンプレ
4章 アセンブラかるた
4.1 16進かるた
4.1.1 かるた競技にしてみてはどうか
4.1.2 順番に追加していく
4.2 アセンブラかるた
4.2.1 かるた札を作ってみる
4.2.2 かるたのルール
4.2.3 アセンブラを覚える
4.2.4 機械語コードの一覧表
4.3 Z80かるた
4.3.1 Z80版のアセンブラかるた原案
5章 アセンブラ短歌
5.1 アセンブラ短歌とは何か?
5.1.1 アセンブラ短歌の普及活動
5.2 アセンブラ短歌の作品
5.2.1 作品「夏休み」
5.2.2 アセンブラに入門してみよう
5.2.3 味わい深さ
5.2.4 現代にアセンブラを学ぶ意義
5.3 SECCONのコンテスト応募作品を鑑賞してみよう
5.3.1 作品その1「虹」
5.3.2 作品その2「6502の憂鬱」
5.3.3 作品その3「黄金律は遠い」
5.3.4 作品その4「ミサカじゃないよ」
5.3.5 作品その5「ワビサビと書こうと思い…」
5.3.6 作品その6「うどんに思いを馳せて」
5.4 アセンブラ俳句 (竹迫良範)
5.4.1 Linux/x86で文字列を出力する方法
5.4.2 NASMでアセンブラ俳句
5.4.3 objdump -dで逆アセンブルして鑑賞
5.4.4 ゼロでも標準出力の謎
5.5 アセンブラ短歌の自動生成 (愛甲健二)
5.5.1 アセンブラ短歌の総数は?
5.5.2 5バイト句の総パターン数を求めよう
5.5.3 7バイト句の総パターン数を求めよう
5.5.4 アセンブラ短歌の総数を求めよう
5.5.5 アセンブラ短歌を詠むプログラムを作ろう
5.5.6 短歌密度のふしぎ
5.5.7 ステップ実行を監視しよう
5.5.8 文字列を出力するプログラムを出力するプログラムを作ろう
6章 アセンブラ・リズム短歌
6.1 シンセサイザで音を出してみよう
6.1.1 『バイナリで遊ぼう』?
6.1.2 ショートコーディングでソフトウェア・シンセサイザもどき
6.1.3 実行環境を構築しよう
6.1.4 まずはやってみよう
6.2 音声信号の簡単なお話
6.2.1 「標本化」「量子化」「符号化」
6.2.2 のこぎり波を鳴らせてみる
6.3 アセンブラ・リズム短歌
6.3.1 のこぎり波のアセンブラ短歌
6.3.2 宇宙短歌
6.4 ウェブから鳴らしてみる
6.4.1 オンラインでの音声再生
7章 文字縛りプログラミング
7.1 記号プログラミング
7.1.1 C言語で記号プログラミング
7.1.2 機械語コードで記号プログラミング
7.1.3 機械語コードをmain[]に埋め込む
7.1.4 charを無くすために
7.1.5 記号化してみる
7.2 表示可能文字での機械語プログラミング
7.2.1 x86以外でやってみよう
7.2.2 PowerPCの開発環境を用意する
7.2.3 表示可能文字で機械語を書く
8章 究極の趣味,バイナリ鑑賞
8.1 バイナリファイルをただ見てみよう
8.1.1 鑑賞に堪え得るバイナリファイルは何か?
8.1.2 ファイルシステムならばどうだろうか
8.2 ZIPファイル鑑賞
8.2.1 ZIPファイルを作成する
8.2.2 ファイルの中身を見てみよう
8.2.3 セントラルディレクトリ
8.2.4 データを破壊してみよう
8.2.5 GZIPではどうなるか
8.3 実行ファイル鑑賞
8.3.1 様々なアーキテクチャの実行ファイル
8.3.2 まずはx86を鑑賞する
8.3.3 x86の64ビット版「x86-64」
8.3.4 MIPS
8.3.5 ARMとThumb
8.3.6 AVR
8.3.7 68000
8.3.8 RISCとCISCとマイコン
8.3.9 アーキテクチャ鑑賞会
おわりに
熱血バイナリアン十訓