Page 72 - 149
P. 72
Переривання заставляє МП тимчасово зупинити виконання поточної
програми і перейти до виконання підпрограми обробки переривань. При
цьому в стеці запамятовується адреса повернення (СS і РІ) і вміст регістра
індикаторів F, а спеціальними командами на початку і в кінці підпрограми
зберігають та відновлюють вміст інших необхідних регістрів.
Зовнішнє переривання. Запит на зовнішнє переривання поступає в МП двома
входами: ІNTR і NМІ. Запит на масковані переривання від ЗвП надходять на
програмований контролер переривань К1810 ВМ59А, який формує сигнал на
вхід INTR=1. Дія МП залежить від стану індикатора IF дозволу переривання.
Якщо IF=0, переривання по входу заборонено (замасковано) і МП переходить
до іншої команди. Коли МП відповість на сигнал ІNTR, підтвердженням
INТА=1 і ІF=1, то він розпізнає запит переривання і обробляє його (в другому
такті INТА2, контролер переривань посилає байт, що характеризує тип
переривань). Станом індикатора ІF програміст може керувати при допомозі
команди SТІ (установка) і СLI (обнуління).
Запит на немасковані переривання по входу NMI використовуються для
переривань роботи МП в аварійних ситуаціях (пропадання живлення,
виявлення помилок пам'яті тощо). Перериваня відбуваються за переднім
(додатнім) фронтом на вході NМІ, при цьому МП формує код типу 2. Стан
індикатора IF не впливає на даний тип переривань.
Внутрішнє переривання характеризується типом переривань, які або передба-
чені або містяться в коді команд.
Переривання за помилкою ділення (тип 0) генерується МП після
виконання команд ділення DIV і IDIV, якщо результат ділення перевищує
формат приймача або при діленні на нуль.
Переривання по переповненню (типу 4) генерується однобайтовою
командою INTО, якщо установлений індикатор ОF.
Покрокове переривання (тип 1) генерується автоматично при ТF=1 після
виконання кожної команди. Стан індикатора ТF можна задати тільки через
стек шляхом накладання відповідної маски на вміст регістра F в стеку.
Переривання, яке визначається користувачем при складанні програм,
здійснюється двобайтовою командою INТ n в якому тип переривання
вказується у другому байті команди. Команда ІNТ n викликає необхідну
підпрограму, як і команда САLL.
Однобайтова команда INТЗ викликає переривання типу 3, яке визначає
переривання контрольної точки. Контрольною точкою може бути будь-яке
місце в програмі, де відбувається переривання і здійснюються деякі спеціальні
дії (індикація вмісту регістрів, памяті і портів при відлагодженні).
73