Как узнать, откуда прерывание? я пишу 16битную ОС с мультизадачностью, реализовывал так: когда возбуждается обработчик прерывания 0х08 (irq 0), то нужно сохранить состояние машины в специальное место в памяти, и загрузить состояние следующего процесса, и так далее каждое прерывание таймера. проблема заключается в том, что я не знаю, как получить состояние машины в момент прерывания, чтобы его сохранить.
Для того чтобы узнать, откуда было возбуждено прерывание, обычно используются специальные регистры процессора, которые хранят информацию о причине возникновения прерывания. В случае с аппаратными прерываниями (как, например, прерывание таймера), можно использовать регистр флагов или специальные регистры PIC (Programmable Interrupt Controller) для определения источника прерывания.
Если вы разрабатываете собственную операционную систему, вам, возможно, придется настроить контроллер прерываний и обработчики прерываний для того, чтобы использовать информацию о причине прерывания. В зависимости от вашего процессора и архитектуры системы, можно посмотреть документацию по процессору или контроллеру прерываний для того, чтобы понять, какие регистры содержат информацию о прерываниях.
Также, обычно в момент возникновения прерывания текущее состояние процессора (регистры и флаги) автоматически сохраняются в стеке, поэтому в обработчике прерывания можно обратиться к этому сохраненному состоянию для дальнейшей обработки и сохранения.
Для того чтобы узнать, откуда было возбуждено прерывание, обычно используются специальные регистры процессора, которые хранят информацию о причине возникновения прерывания. В случае с аппаратными прерываниями (как, например, прерывание таймера), можно использовать регистр флагов или специальные регистры PIC (Programmable Interrupt Controller) для определения источника прерывания.
Если вы разрабатываете собственную операционную систему, вам, возможно, придется настроить контроллер прерываний и обработчики прерываний для того, чтобы использовать информацию о причине прерывания. В зависимости от вашего процессора и архитектуры системы, можно посмотреть документацию по процессору или контроллеру прерываний для того, чтобы понять, какие регистры содержат информацию о прерываниях.
Также, обычно в момент возникновения прерывания текущее состояние процессора (регистры и флаги) автоматически сохраняются в стеке, поэтому в обработчике прерывания можно обратиться к этому сохраненному состоянию для дальнейшей обработки и сохранения.