Організація пам’яті однокристального 16-розрядного МП
- Організація пам'яті 16-розрядних мікропроцесорів
- Програмна модель 16-розрядних мікропроцесорів
- Адресація портів введення-виведення 16-розрядних мікропроцесорів
- Типи адресації операндів 16-розрядних мікропроцесорів
- Цикли шини процесора 16-розрядних мікропроцесорів
- Типи переривань 16-розрядних мікропроцесорів
- Приклади роботи 16-розрядних мікропроцесорів
6. Типи переривань 16-розрядних мікропроцесорів
Процесор i8086 може обробляти до 256 типів переривань. Кожному перериванню відповідає свій вектор — подвійне слово, що містить адресу CS: IP підпрограми, що викликається. Під вектори переривань у загальному просторі адрес пам'яті відводиться 1 Кбайт, починаючи з нульової адреси (рис. 7).
Рисунок 7 - Карта векторів переривань
Під час переходу на підпрограму обробки переривань INT п (п — тип переривання) процесор переміщує у стек вміст регістрів IP, CS, регістр прапорців F і скидає прапорець дозволу переривання IF; обчислює адресу 4 х п і перше слово за цією адресою переміщує у IP, друге — у CS. Послідовність цих дій еквівалентна командам:
PUSHF |
Запам'ятовування у стеку прапорців |
CALL FAR i_proc_4n |
Далекий виклик підпрограми обробки переривання |
Скидання прапорця переривання IF не дозволяє перервати виконання підпрограми обробки переривання до її завершення або виконання команди дозволу STI. Останньою командою підпрограми обробки переривання є команда ІRET. За цією командою процесор вибирає зі стеку адресу повернення (адресу команди, наступної за командою ІNT) і вміст регістра прапорців.
Рисунок 8 - Типи переривань
Типи переривань показано на рисунку 8. Переривання поділяють на зовнішні апаратні та внутрішні. Запити IRQ і зовнішніх апаратних переривань надходять до системи переривань або на вивід немаскованого переривання NMI МП. Система переривання формує сигнал INTR маскованого переривання МП. Зазначимо, що масковане переривання відрізняється від немаскованого тим, що перше може бути заборонено програмно — командою скидання прапорця дозволу переривань IF. У цьому разі під час надходження запитів переривання вони будуть ігноруватися. Внутрішні переривання процесора поділяють на програмні та апаратні. Джерелами внутрішніх програмних переривань (рис. 10) є помилка ділення (тип 0), покроковий режим (тип 1) і команда INTO (тип 4).
Внутрішні програмні переривання І NT п та INT З виконуються за командами переривання і дозволяють викликати підпрограми обробки переривань (наприклад, сервісні підпрограми BIOS і DOS) без застосування дальніх викликів. На відміну від ІNTп, переривання ІNT3 є однобайтовою командою і зазвичай використовується для передавання керування підпрограмі-налагоджувачу. Слід зазначити, що виконання програмних переривань не залежить від прапорця дозволу переривань IF. Внутрішні апаратні переривання процесора виникають у таких випадках:
• під час ділення на нуль (тип 0);
• за встановленого прапорця трасування (тип 1). У цьому разі переривання відбувається після виконання кожної команди;
• після команди INTO (тип 4), якщо встановлений прапорець переповнення OF.
Апаратні переривання виникають у разі активного рівня сигналів на контактах MU-NMI (немасковане переривання — тип 2) і INTR (масковані, переривання типи 5 — 255). Масковані переривання виконуються за встановленого прапорця IF. Під час переходу до підпрограми обробки апаратного переривання процесор формує два цикли підтвердження переривання один за одним, в яких генерується сигнал . За другим імпульсом контролер переривань передає по шині даних номер вектора переривання п. Далі дії процесора аналогічні виконанню програмного переривання. Обробка поточного переривання може бути перервана немаскованим перериванням або іншим маскованим перериванням вищого пріоритету тоді, якщо підпрограма-обробник встановить прапорець дозволу переривання IF. Немасковане переривання виконується незалежно від стану прапорця IF.