とりあえず8章までまとめておきます。
- 最初はNASMのバージョンを間違えてはまりました。
詳しくはこちらをどうぞ。
- 著書が指定しているバージョンよりもBochs 2.4.1のほうが便利です。
詳しくはこちらをどうぞ。
- Bochsデバッガでブレークポイントを設定できます。ステップ実行するとより理解が深まります。
詳しくはこちらをどうぞ。
- 誤植(と思われる部分)が多いですね(本当に誤植かどうかは出版社に確認してください)。
- pp.16(ハッチング部分の1行目)
0x7c0:0xf → 0x7c0:0x5
- pp.63 (1行目、4行目)
48バイト → 48ビット
- pp.119 (1行目)
mov byte [es:edi] 0x0 → mov byte [es:edi] 0x6
- pp.179(図6-6 右)
ESP → EIP
- pp.195 (2番目のハッチング部分直後の段落「現在のESPには、… はずです。」)
最初のハッチング部分で
lea esp, [PM-256]
と明らかにESPを変更している。ESPがPM_Startであるはずがない。
- pp.211(isr_128_soft_intのコードで2箇所不足)
pushad
↓
pushad
push eax ;; 追加
mov GS, ax
↓
mov GS, ax
pop eax ;; 追加
理由:
pp.219の3行目で、すぐにPOP命令を用いてEAXを復元します。と言っている。
- pp.227 (図の右部分)
論理アドレス → 物理アドレス
- pp.16(ハッチング部分の1行目)
- 8章サンプルコードデバッグ中