『作りながら学ぶOSカーネル』 Chapter 04を読んでのつぶやき
ソース4-5
dw 0x00eb, 0x00eb
ウェイトだろうけど必要なのだろうか。
同じチップに対して連続アクセスする際に必要になるケースはあるけれど、ポートは別れているし。でもチップセットなので同じチップになるのかな。でも、本当の8259ではないしと悩む。
ソース4-6
isr_ignore: (中略) pushfd mov al, 0x20 out 0x20, al
EOIの通知だけれど、実際のハード割り込みでなければ通知しないほうが正しいでしょう。それにスレーブPICだとスレーブ側にも通知が必要で
INT 0x00-0x1F | EOIなし |
INT 0x20-0x27 | マスタPICにEOI |
INT 0x28-0x2F | マスタPICとスレーブPICにEOI |
INT 0x30-0xFF | EOIなし |
になるはず。
p133
isr_zero_divideハンドラでiretしないでjmp $でその場で無限ループに入るからです。
これは正しいけれど、除算エラーはフォルトなので同じ命令に戻るはず。よってIRETしても再度フォルトが発生するんじゃないだろうか。