Программирование на JAVA

При возникновении исключения, а также после получения запроса прерыва­ния процессор выполняет операции, перечисленные ниже.

1. Проталкивает в стек процессора, на который указывает регистр ESP, зна­чение регистра текущего сегмента CS (Code Segment) и указателя ко­манды EIP.

2. Если исключение вызвано нестандартной ситуацией при выполнении программы, помещает в стек код, определяющий причину исключения.

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

4. По значению вектора прерывания находит в таблице дескрипторов пре­рываний начальный адрес программы обработки прерывания и загружает его в EIP, после чего продолжает выполнение команд.

5. Обслужив запрос (например, выполнив пересылку входных или выходных данных), программа обработки прерывания возвращает управление прерванной программе, для чего она выполняет команду возврата из прерывания IRET. Эта команда восстанавливает из стека значения регистров EIP и CS и регистра со­стояния процессора, восстанавливая тем самым состояние процессора.


<< назад вперед >>