関連サイト
本書の関連ページが用意されています。
内容紹介
C言語をはじめとする高級言語が主流の今、その基礎となる機械語やアセンブリ言語がCPUでどう実行されるかを意識することはめったにありませんが、本書ではそういった“低級言語”を実行するエミュレータの制作を通してx86 CPUの仕組みや、その周りで動くメモリ、キーボード、ディスプレイといった部品とCPUの関わりをしっかり学び、エンジニアとしての“深み”を身につけることを目指します。
書誌情報
- 著者: 内田 公太, 上川 大介
- 発行日: 2015-08-28 (紙書籍版発行日: 2015-08-28)
- 最終更新日: 2015-08-28
- バージョン: 1.0.0
- ページ数: 198ページ(PDF版換算)
- 対応フォーマット: PDF
- 出版社: マイナビ出版
対象読者
著者について
内田 公太
小学生の頃にPICマイコンのアセンブリ言語に出会い、プログラマの道に進む。高校時代は『30日でできる!OS自作入門』(川合秀実、2006年)の校正を手伝う。東京工業大学の計算工学専攻を卒業後、現在は某IT 企業でインフラ系のプログラミングに従事する。好きな言語はC++とPython。
上川 大介
ゲーム開発に興味を持つWeb 系のプログラマ。大学生時代にJavaに目覚めWeb系に進むと思われていた。しかし、自作OS開発ブームに浮気したところから道を踏み外しx86エミュレータ開発に興味を持つ。好きな言語はJavaとGLSL。
目次
Chapter 1 C言語とアセンブリ言語
- 1.1 C言語から機械語へ
- 1.2 機械語とアセンブリ言語
- 1.3 機械語に飛び込む
- 1.4 アセンブリ言語を少し詳しく
- 1.5 基本のmov命令
- 1.6 インクリメント専用のinc命令
- 1.7 16進数入門
- 1.8 2の補数入門
Chapter 2 ポインタとアセンブリ言語
- 2.1 レジスタ
- 2.2 メモリ
- 2.3 初めてのエミュレータ
- 2.4 ポインタの復習
- 2.5 ポインタに飛び込む
- 2.6 構造体とポインタ
- 2.7 不完全型とポインタ
- 2.8 関数ポインタ
Chapter 3 CPUがプログラムを実行する仕組み
- 3.1 プログラムの配置
- 3.2 エミュレータのorg対応
- 3.3 プログラムの実行
- 3.4 エミュレータのModR/M対応
- 3.5 無条件分岐命令
- 3.6 call命令とスタック
- 3.7 エミュレータのcall対応
- 3.8 ローカル変数とスタック
- 3.9 フラグレジスタと条件分岐命令
- 3.10 エミュレータの条件分岐命令対応
- 3.11 プログラムの繰り返し
- 3.12 デバイスアクセス
Chapter 4 BIOSの仕組みと実機起動
- 4.1 BIOS
- 4.2 BIOSの実装
- 4.3 割り込み
- 4.4 ブートセクタ
- 4.5 PBRを見てみよう
- 4.6 実機で動かしてみよう
Appendix
- A 開発環境のインストールと構成
- B ASCII コード表