Что происходит в x86 архитектуре, когда прерывание происходит?

Я изучаю x86 и Системы реального времени, и у меня есть вопрос, который является:

Который ступает, x86 следует для обработки прерывания?

7
задан Greg Hewgill 16 January 2013 в 02:52
поделиться

2 ответа

Начните здесь с таблицы дескрипторов прерываний . Обычно, когда происходит прерывание, управление потоком переходит к этой таблице, а затем к тому, что находится в этой таблице. Кроме того, я считаю, что все регистры нажимаются, как только происходит прерывание, но я не уверен на 100% в этом, так как прошло много времени с тех пор, как я имел дело с этим.

2
ответ дан 7 December 2019 в 01:17
поделиться

При возникновении прерывания ЦП выполняет следующие действия:

  • Помещает текущий адрес (содержимое указателя инструкции) в стек; также нажмите флаги процессора (но не все другие регистры процессора)
  • Переход к адресу ISR (подпрограммы обслуживания прерывания), который указан в таблице дескрипторов прерываний.

ISR должен сделать следующее:

  • Отправить все регистры, которые он намеревается изменить (или отправить все регистры)
  • Обработать прерывание
  • Повторно разрешить прерывания
  • Удалить все регистры, которые он отправил
  • ] Используйте инструкции IRET, которые извлекают из стека флаги ЦП и значение указателя инструкций (и, таким образом, возвращаются к тому, что выполнялось при возникновении прерывания).
8
ответ дан 7 December 2019 в 01:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: