プログラミング知識の観点から見た目次
- (by K, 2006.02.19)
- OSを作るという目的の目次は本の中にもちろんありますが、ここではアセンブラやC言語などの知識に限定して、目次を作ってみました。
- 忘れちゃったときや、しばらく読んでなくて命令の説明を探したくなったときにどうぞ。
- ここに書かれている以外の命令や文法は使っていないことになるので、逆にいうとこれだけでOSやアプリは作れるということでもあります。
- マークは、[n]:nask、[C]:C言語、[他]:そのほか
目次(0日目+第1週)
- 0-1: [他]ビット、バイト、キロバイト、メガバイト
- 1-2: [他]CPUの仕組み(?)、2進数、16進数
- 1-3: [n]DB、RESB
- 1-4: [n]コメント命令(;)、DW、DD、ドルマーク($)
- 2-2: [n]ORG、JMP、ラベル、MOV、レジスタ紹介、メモリオペランド、ADD、CMP、JE、INT、HLT
- 3-1: [n]JC、キャリーフラグ、セグメントレジスタ
- 3-2: [n]JNC
- 3-3: [n]JBE
- 3-4: [n]JB、EQU
- 3-5: [他]ディスクフォーマットのおおざっぱな解析
- 3-9: [C]関数の書き方、/* */、goto
- 3-10: [n]GLOBAL、RET [C]return、プロトタイプ宣言
- 4-1: [n]Cからの引数受け取り、INSTRSET [C]変数宣言(int)、for、++演算子
- 4-2: [C]&演算子(ビット演算) [他]AND・OR・XOR演算について
- 4-3: [C]ポインタ、変数宣言(char、short)、型キャスト
- 4-5: [C] [ ]演算子
- 4-6: [n]IN、OUT、CLI、STI、EFLAGS、PUSHFD、POPFD [C]変数宣言(配列)、static、signed・unsigned
- 4-7: [C]#define
- 5-2: [C]構造体、構造体のポインタ
- 5-3: [C]->演算子
- 5-4: [C]if、!=演算子
- 5-5: [C]extern
- 5-7: [C]#include、sprintf
- 5-9: [n]プロテクトモードでのセグメント、GDT、IDT [C]|=演算子、/=演算子、|演算子、/演算子、>>演算子 [他]ギガバイト
- 6-4: [n]GDTR、IDTR、LGDT、LIDT
- 6-6: [n]IRETD、EXTERN、PUSH、POP、PUSHAD、POPAD [他]FIFO、FILO
- 7-2: [n]STI-HLT [C]else
- 7-4: [他]FIFOバッファアルゴリズム
- 7-5: [C]&演算子(アドレス)
- 7-6: [C]break
目次(第2週)
- 8-2: [C]else if
- 8-4: [C]+=演算子
- 8-5: [n]NOP、CR0、SUB、IMUL、SHR、JZ、ALIGNB
- 9-2: [C]~演算子、^演算子、^=演算子 [他]キャッシュメモリ
- 9-3: [n]XOR
- 10-1: [C]%演算子 [他]切り捨て・切り上げのアルゴリズム
- 10-2: [C]a->b->c みたいなやつ
- 10-3: [C]&&演算子、||演算子
- 13-5: [他]線形リスト
- 13-6: [他]番兵
目次(第3週)
- 15-1: [n]TSS、far-JMP、LTR、EIP
- 18-6: [C]strcmp
- 19-1: [他]ディスクフォーマットの解析(ディレクトリエントリ)
- 19-2: [C]strncmp
- 19-3: [他]ディスクフォーマットの説明(FAT12)
- 20-3: [n]far-CALL、RETF
- 20-8: [C]¥n、¥t
- 21-4: [n]ローカルラベル
目次(第4週)
- 23-2: [C]rand
- 28-5: [他]全角文字の文字コード(JISコード)
- 28-6: [他]シフトJISの文字コード
- 28-7: [他]日本語EUCの文字コード
目次(おまけの2日+31日目)
- 29-3: [C]puchar、exit、printf、可変長引数、malloc、free
- 30-1: [C]strtol
- 30-5: [n]SHL
|