|
82:Re: 割り込み処理 hideyosi 10/16 15:45 ふむ!? Kタンのhttp://community.osdev.info/index.php?(PIC)8259Aをジックリと読んでみた。 ・・・むずかしくてわかりません・・・(T∀T) しかし、そんなぼくらのために(ヲレだけかも)「ものぐさ」というセクションがあった。 ようするにはこういうことらしい。 ●割り込みは、CPUの機能だが、その割り込みの発生・CPUへの発注・関所を行うLSIがあるらしい。 ●このLSIは、キーボードなどから信号が来ると、割り込み信号を作って、CPUに「おい!割り込みがきたぞー!」と知らせ、CPUでは割り込みが発生する。 ●CPU(アセンブラのプログラム部)では、割り込み時に必要な処理は行う。で、その処理が終わったら、IRETで戻ってくる。(つまり、CPUとしては、割り込みは終了している) ●問題は、さっきのLSI。この時点では、まだ、「割り込みがキタゾー!」のまんま。つまり、次の割り込みは待たされている ●つまり、このLSIにも、「CPUとしては、割り込み処理はもう終わったよ。次の割り込みを受け付けていいよ。たのむね」と、教えてあげなくてはいけないらしい。 そのためのコードが、これらしい。 AL = 割り込み番号 + 0x60; OUT(0x20, AL); |