自作エミュレータで学ぶx86アーキテクチャ-コンピュータが動く仕組みを徹底理解!
- 作者: 内田公太,上川大介
- 出版社/メーカー: マイナビ
- 発売日: 2015/08/28
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
追記: 共著のuchanさんによる詳しい紹介があります
出版のお知らせ 『自作エミュレータで学ぶx86アーキテクチャ』
この本の中でC言語でx86エミュレータを作っていくわけですが、目次見たいな何かを前のエントリで書いてなかったので書いておきます。というか共著の方のTwitterの発言ですが。ちなみにこの本ではOSを実行とかそういう話はでてこないのであしからず...GDTとかA20とかセグメントとかページングの話はでてこないで、単純にx86バイナリを実行していく形を取っています。C言語で書いたプログラムをエミュレータで実行していくわけですが、これもアプリケーションというよりはRawバイナリと言う感じで、エミュレータ専用のアプリみたいなものとなります。以下、目次やら内容的な何か
1章では、皆さんが知ってるであろうC言語が、実際にCPUで実行されるときにどのような機械語になるか、バイナリを逆アセンブルしたりしながら学びます。16進数とか2の補数もここで学びます。
— 雲中の蛇使い (@uchan_nos) 2015, 8月 11
2章では、C言語の中でもポインタに絞って機械語やアセンブリ言語との関連を見ていきます。通常の変数とポインタ変数は、アセンブリの世界ではほとんど同じなんだということを学びます。関数ポインタが出てくるのもこの章です。
— 雲中の蛇使い (@uchan_nos) 2015, 8月 11
3章が中核となる章で、CPUが命令を実行する過程やModR/M、フラグレジスタの話をします。分岐命令とスタックフレームも説明します。leave命令をエミュレータに実装し終わるとC言語で書いたプログラムを動かせるようになります。
— 雲中の蛇使い (@uchan_nos) 2015, 8月 11
4章では、BIOSやブートセクタの説明をして、実機起動に向けて知識を付けます。最後に本物のUSBメモリにブートセクタを書き込んで起動してみます。
— 雲中の蛇使い (@uchan_nos) 2015, 8月 11
電子書籍的な噂
そのうちPDF版が出るので、電子が良い人はそちらをお待ちください。 https://t.co/5P5F6V9lEi
— 雲中の蛇使い (@uchan_nos) 2015, 8月 11