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

25 Ноя 2022 в 19:53
209 +1
0
Ответы
1

Для того чтобы узнать, откуда было возбуждено прерывание, обычно используются специальные регистры процессора, которые хранят информацию о причине возникновения прерывания. В случае с аппаратными прерываниями (как, например, прерывание таймера), можно использовать регистр флагов или специальные регистры PIC (Programmable Interrupt Controller) для определения источника прерывания.

Если вы разрабатываете собственную операционную систему, вам, возможно, придется настроить контроллер прерываний и обработчики прерываний для того, чтобы использовать информацию о причине прерывания. В зависимости от вашего процессора и архитектуры системы, можно посмотреть документацию по процессору или контроллеру прерываний для того, чтобы понять, какие регистры содержат информацию о прерываниях.

Также, обычно в момент возникновения прерывания текущее состояние процессора (регистры и флаги) автоматически сохраняются в стеке, поэтому в обработчике прерывания можно обратиться к этому сохраненному состоянию для дальнейшей обработки и сохранения.

16 Апр в 17:05
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 90 211 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир