関連サイト
本書の関連ページが用意されています。
内容紹介
0と1のコンピュータ世界 バイナリを遊びながら楽しく学ぼう!
本書はコンピュータの基本:バイナリ世界に親しむまったく新しいタイプの入門書です。数字に関する初歩的なトレーニングを積んだあとはバイナリかるた・アセンブラクロスワード・アセンブラ短歌などコンピュータ世界を楽しむ競技にチャレンジします。
バイナリは0か1かという単なる数値の羅列ですが、不思議な魅力があります。それがデータとしての意味を持ったとき、さまざまな刺激を我々に与えてくれます。またバイナリを読むことは楽しいものですが、そこに遊びを加えて人との繋がりができるならば、楽しみを越えた感動があるかもしれません。「コンピュータ解析に憧れるが最初の一歩が踏み出せない」方、本書を通じて魅惑のバイナリ世界に一歩踏み出してみましょう!
書誌情報
- 著者: 坂井 弘亮, 坂井 丈泰, 愛甲 健二, 竹迫 良範, 松田 和樹
- 発行日: 2014-04-23 (紙書籍版発行日: 2014-04-23)
- 最終更新日: 2014-04-23
- バージョン: 1.0.0
- ページ数: 258ページ(A4PDF版換算)
- 対応フォーマット: PDF
- 出版社: マイナビ出版
対象読者
著者について
坂井 弘亮
アセンブラ短歌家元.C言語を覚えたてのころはX Window Systemで動くフリーソフトウェアなどを書いていたが,そこからシステム・プログラミング,OS,組込みシステム,アセンブラと低レイヤーに降り続け,趣味であらゆるアーキテクチャのアセンブラをフィーリングで読み解くということを行って以来,今ではC言語よりもアセンブラに触れている時間のほうが長い日も.メインの活動は組込みOSの自作だが,某所でアセンブラ短歌の発表をしてからはむしろ「アセンブラ短歌の人」として認識されることが多くなってしまっている.
坂井 丈泰
コンピュータとは子供の頃にPC-8001に触れて以来の付き合い.その昔はアセンブラでアセンブラを書いたり,自作ROMライタでワンチップマイコンを動かしたりしたけれど,今は昔.専門は電子航法で,ふだんはGPSまわりのプログラムをCで書いていることが多い.情報処理試験の全区分を制覇,現在は2周目に挑戦中.
愛甲 健二
C/ASM辺りがメインの技術者.コンピュータセキュリティ関連の会社でソフトウェアエンジニアとして働いており,Windows,x86系CPU,ソフトウェア解析についてはそこそこ詳しい.最近はJavaScript も学んでおり,ブラウザ上でバイナリを扱うゲーム(?)のようなものをいろいろと開発している.
アセンブラ短歌 on JavaScript :http://07c00.com/asmtanka_on_js/
アセンブラテトリス on JavaScript:http://07c00.com/asmtetris_on_js/
バイナリかるた on JavaScript :http://07c00.com/binkaruta_on_js/
竹迫 良範
メモ帳でアセンブラ短歌を書く会.はじめて触ったコンピュータはFMTOWNSの32bit世代.最近は学研の4bitマイコンで遊ぶ.趣味はCPUの命令セットマニュアルを眺めること.印字可能文字で機械語プログラミングしたり,文字と機械語の意味を重ねることが好き.
松田 和樹
本業はどうやら情報セキュリティらしいが,ピュア()なセキュリティ業務をやる機会はあまりない.アセンブラ短歌に興味をもったことがきっかけで,外部発表の機会が増えて忙しくも嬉しい限り.いろんなものに興味を持ちやすく,飽きやすい性格.8bitCPUとレトロゲーム機のメガデモ開発は地道に続けており,これに付随してゲームプログラミングも勉強中.しかし、なかなか形のあるものとして結実しないのは,締め切りを守れない性格と集中力の無さゆえである.ひと山当てて隠居できる日がくるのはいつだろうか….
目次
はじめに
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 アーキテクチャ鑑賞会