Описание процессора i8086 для программиста

Прерывание по трассировке


Прерывания по трассировке происходят после выполнения каждой инструкции, когда в регистре флагов установлен флажок трассировки TF. В этом случае, завершив выполнение инструкции, микропроцессор передаёт управление обработчик прерывания по вектору 1. В стеке сохраняется адрес следующей инструкции.

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

в восстановленном содержимом регистра флагов флажок TF окажется установлен, то новое прерывание по трассировке произойдёт не сразу после выполнения инструкции IRET, а по завершении команды, на которую инструкцией IRET будет возвращено управление. В процессорах других ЭВМ, не обеспечивающих подобной задержки прерывания по трассировке, обычно используются две инструкции возврата из прерывания – одна для “обычного” возврата, другая – для возврата с задержкой прерывания по трассировке. Например, в 16-разрядных мини-ЭВМ семейства PDP-11 фирмы DEC (советский аналог – ЭВМ типа СМ-3, СМ-4, СМ-1420 и т.п.) имеются инструкции возврата из прерывания RTI

и RTT, отличающиеся друг от друга именно реакцией на флажок трассировки.



Содержание раздела