Особенности архитектуры универсальных микропроцессоров. Механов В.Б. - 54 стр.

UptoLike

Составители: 

54
мента таблицы составляет 4 байта, МП вычисляет адрес (смеще-
ние) требуемого элемента путем умножения типа прерывания на
4.
После установления нового содержимого регистров IP и CS
микропроцессор выбирает код операции первой команды под-
программы и затем выполняет обычные действия по заполнению
очереди команд, выполнению команд и обмену данными.
Когда осуществляется переход на подпрограмму обслужи-
вания прерывания, содержимое регистра F вместе с содержи-
мым регистров CS и IP запоминается в стеке, флаг IF, а также
флаг TF сбрасываются. Тем самым автоматически запрещаются
внешние прерывания по входу INT, что нужно, например, для
защиты начального участка подпрограммы, в течение которого
осуществляется включение в стек внутренних регистров МП.
Затем подпрограмма может разрешить внешние прерывания ко-
мандой STI. Кроме того, она может быть прервана запросом на
входе NMI и внутренними прерываниями. Необходимо следить,
чтобы в подпрограмме не возникало прерывание того типа,
который она обслуживает. Например, попытка деления на нуль
в процедуре прерывания из-за ошибки деления приведет к бес-
конечным вызовам этой процедуры.
В конце подпрограммы восстанавливают содержимое ре-
гистров МП, которые были включены в стек в начале подпро-
граммы с целью сохранения данных, относящихся к прерванной
программе. Этот участок подпрограммы следует защитить с по-
мощью команды CLI от прерываний по входу INTR. Подпро-
грамма обработки прерывания должна заканчиваться командой
возврата из прерывания IRET, которой предшествует команда
разрешения прерываний STI. Перед выполнением команды IRET
стек должен быть в том состоянии, в котором он был сразу по-
сле вызова подпрограммы. Тогда эта команда извлекает три
верхних слова из стека в регистры IP, CS и F, что обеспечивает
возврат к команде, которая выполнялась бы в случае отсутствия
прерывания.
мента таблицы составляет 4 байта, МП вычисляет адрес (смеще-
ние) требуемого элемента путем умножения типа прерывания на
4.
     После установления нового содержимого регистров IP и CS
микропроцессор выбирает код операции первой команды под-
программы и затем выполняет обычные действия по заполнению
очереди команд, выполнению команд и обмену данными.
     Когда осуществляется переход на подпрограмму обслужи-
вания прерывания, содержимое регистра F вместе с содержи-
мым регистров CS и IP запоминается в стеке, флаг IF, а также
флаг TF сбрасываются. Тем самым автоматически запрещаются
внешние прерывания по входу INT, что нужно, например, для
защиты начального участка подпрограммы, в течение которого
осуществляется включение в стек внутренних регистров МП.
Затем подпрограмма может разрешить внешние прерывания ко-
мандой STI. Кроме того, она может быть прервана запросом на
входе NMI и внутренними прерываниями. Необходимо следить,
чтобы в подпрограмме не возникало прерывание того типа,
который она обслуживает. Например, попытка деления на нуль
в процедуре прерывания из-за ошибки деления приведет к бес-
конечным вызовам этой процедуры.
     В конце подпрограммы восстанавливают содержимое ре-
гистров МП, которые были включены в стек в начале подпро-
граммы с целью сохранения данных, относящихся к прерванной
программе. Этот участок подпрограммы следует защитить с по-
мощью команды CLI от прерываний по входу INTR. Подпро-
грамма обработки прерывания должна заканчиваться командой
возврата из прерывания IRET, которой предшествует команда
разрешения прерываний STI. Перед выполнением команды IRET
стек должен быть в том состоянии, в котором он был сразу по-
сле вызова подпрограммы. Тогда эта команда извлекает три
верхних слова из стека в регистры IP, CS и F, что обеспечивает
возврат к команде, которая выполнялась бы в случае отсутствия
прерывания.




                             54