Цитата:
Здесь посылается сигнал окончания наиболее приоритетного прерывания (безличный EOI) в оба контроллера, вопрос в том, зачем это делается?
Да не зачем, смотри документацию от Intel там процесс инициализации начинается с ICW1, а не с OCW1<=EOI. А вот почему это дал ваш преподаватель так это надо спрашивать у него, либо у его тараканов. У каждого программиста аппаратуры свои тараканы в голове.
http://ru.osdev.wikia.com/wiki/Программируемый_контроллер_прерыванийМой код инициализации можете взять здесь.
viewtopic.php?f=7&t=661 Цитата:
И ещё вопрос, как работает PIC, если его не инициализировать, у него же должен быть задан какой-то начальный режим работы? Это потом мы его инициализируем так, как нужно нам.
Нет у оригинального PIC не было контакта сброса. Поэтому после подачи питания все его регистры(биты регистра) попадают в неопределённое состояние X.(Либо 1 либо 0).
Но когда контролёр перестал существовать как отдельное устройство и перекочевал в южный мост, то у него появились значения по умолчанию, которое он принимает после сброса. Но в любом случае прежде чем использовать PIC его надо инициировать. Это связан с тем что не все регистры сбрасываются в начальное состояние.
И также обращаю на изменение поведения контролёра. При выборе режима совместимости а) 8080, так и б) 8086/8088. Когда он стал внутри моста то режим совместимости со старым процом убрали. И значение по умолчанию для ICW4 изменилось.