Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Мікропроцесор i80286



Загальні відомості. Мікропроцесор i 80286 належить до другого покоління 16-розрядних МІГ. Він виконаний за тех­нологією 1,5 мкм, містить 134 000 транзисторів і працює з тактовою частотою 12,5 МГц. Після вдосконалення архітек­тури швидкодія МП i 80286 у б разів вища, ніж МП i 8086 з тактовою частотою 5 МГц. Розрядність регістрів дорівнює 16. Шина адреси 24-розрядна, що дає змогу адресувати 224 = 16 Мбайт пам'яті. Простір адрес введення-виведення ста­новить 64 Кбайт. Система команд містить усі команди i 8086, кілька нових команд загального призначення та команди ке­рування захистом. Мікропроцесор i 80280 має спеціальні за­соби для роботи у системах з багатьма користувачами та багатозадачиих режимах. Його найістотнішою відмінністю від мікропроцесорів серії i 8086/88 є механізм керування адре­сацією пам'яті, що забезпечує чотирирівневу систему захисту та підтримку віртуальної пам'яті. Спеціальні засоби призначено для підтримки механізму перемикання задач. Мікропро­цесор i 80286 має засоби контролю за переходом через межу сегмента, які працюють у реальному режимі.

Мікропроцесор може працювати у двох режимах:

8080 Real Address Mode, або Real Mode, — режим ре­альної адресації, або реальний режим. У цьому режимі МП i 80286 фактично є високошвидкісним МП i 8086 і адресує 1 Мбайт пам'яті;

Protected Virtual Address Mode, або Protected Mode, — захищений режим віртуальної адресації або просто захищений режим. У цьому режимі МП адресує до 16 Мбайт пам'яті, а за використання механізму сторінкової адресації до 1 Гбайт віртуальної пам'яті кожної задачі.

Перемикання у захищений режим здійснюється швидко — однією командою (із заздалегідь підготовленими таблицями дескрипторів), а в режим реальної адресації — повільно, лише через апаратне скидання процесора. У MS DOS використо­вується реальний режим. Захищений режим використовуєть­ся в операційних системах на зразок XENIX, UNIX, OS/2, NetWare286, MS Windows.

Для процесора i 80286 можливі 256 різних типів перери­вань. Відрізняється від системи переривань МП i 8086 пере­риванням під час виникнення особливих умов під час виконан­ня команд, наприклад за розміщення двобайтового операнда в останній комірці сегмента даних зі зміщенням FFFFH. Таке переривання називають особливим випадком, або винятком. На відміну від переривань після оброблення винятків (крім винятку 9, що стосується співпроцесора) керування передаєть­ся знову тій самій команді (включаючи всі префікси), що зумовила переривання. Після усунення умов, що спричини­ли виняток, відбувається повторне виконання команди.

Організація пам'яті. У реальному режимі адресація пам'яті переважно така сама, як і в МП i 8086. Відмінність полягає у можливості використання додаткового блока пам'яті ємністю 64 Кбайт. Якщо у процесі виконання команди під час обчис­лення адреси комірки пам'яті виникає переповнення у двад­цятий розряд шини адреси A 20, процесор починає працюва­ти з комірками пам'яті, адреси яких знаходяться в діапазоні 100 000 H- 10 FFFFH.

Приклад 3.1. Знайти значення фізичної адреси операнда в реаль­ному режимі під час виконання команди MOV AL, [57]; пересилання у регістр AL вмісту комірки пам'яті з адресою DS.SI, якщо вмістом сегментного регістра DS є число 0 F 802 H, а вмістом регістра SI — 0 В 175 H.

Для обчислення фізичної адреси до значення DS додамо чотири

нулі праворуч:

DS(0000) = 1111 1000 0000 0010 0000В = 0 F 8020 H.

Виконавши операцію додавання отриманої величини з вмістом ре­гістра 57, дістанемо фізичну адресу:

Отже, під час обчислення фізичної адреси отримане одиничне зна­чення розряду А 20 означає, що операнд розташується у другому мега­байті фізичної пам'яті.

Ще однією особливістю реального режиму i 80286 є мож­ливість контролю за переходом за межі сегмента. Під час адресації слова зі зміщенням 0 FFFFH генерується виняток 13 (Segment Overrun Excep­tion). За спроби виконання команди ESC з операндом па­м'яті, що не вміщається у сегмен­ті, генерується виняток 9 — Pro­cessor Extension Segment Over­run Interrupt.

Рис. 3.1. Формат селектора сег­мента

Рис. 3.2. Формування фізичної 24-розрядної адреси у захище­ному режимі

У захищеному режимі також використовується сегментна ад­ресація; кількість сегментів мо­же бути від 1 до 16 Мбайт, дов­жина сегментів задається і може варіювати від 1 до 64 Кбайт, задаються атрибути або права доступу до сегмента (дозвіл за­пису або лише читання, рівні привілеїв тощо). Кожний сегмент характеризується 8-розрядною структурою даних — дескриптором сегмента, що містить інформацію про базову адресу сегмента, його межу та атрибути. Дескриптори розмі­щені у спеціальних таблицях — глобальній дескрипторній таблиці GDT або локальній дескрипторній таблиці LDT, які зберігаються в ОЗП. Незалежно від рівня привілею програ­ма не може звертатися до сегмента доти, доки він не описа­ний у дескрипторній таблиці.

У захищеному режимі вміст сегментних регістрів назива­ють селекторами сегментів. їх використовують для пошуку базової (початкової) адреси сегмента в одній з дескрипторних таблиць. Формат селектора показано на рис. 3.1.

Селектори, що завантажуються у 16-розрядні сегментні регістри CS, DS, SS, ES, мають три поля:

RPL (Requested Privilege Level) (біти 0 і 1) — запро­шений рівень привілеїв сегмента;

ТІ (Table Indicator) (біт 2) — індикатор використання таблиці дескрипторів (якщо ТІ = 1, використовується гло­бальна таблиця, а якщо ТІ = 0, — локальна);

INDEX (біти 3 — 15) — номер дескриптора у таблиці.

Глобальна дескрипторна таблиця єдина. Вона містить дес­криптори для всіх задач, які виконує МП у багатозадачному режимі. Локальних дескрипторних таблиць може бути кілька, причому для кожної задачі можна задати свою локальну дескрипторну таблицю.

Фізичну 24-розрядну адресу операнда знаходять додаван­ням початкової 24-розрядної адреси сегмента з дескрипторної таблиці та адреси-зміщення, яка вказується у команді. Формування фізичної 24-розрядної адреси у захищеному режимі наведено на рис. 3.2.

Приклад 3.2. Знайти значення фізичної адреси комірки пам'яті [DS.SI], якщо базова адреса сегмента даних дорівнює 456 789 H, а вміст регістра SI — 1234 H.

Виконавши операцію додавання 24-розрядної базової адреси з адресою-зміщенням, тобто з вмістом регістра SI, отримаємо фізичну адресу:

Отже, фізична адреса дорівнює 4579 ВВН.

Програмна модель. До програмної моделі МП i 80286 (рис. 3.3) входять 19 програмно-доступних регістрів і 6 недо­ступних (тіньових). Із 19 програмно-доступних регістрів МП i 80286 14 повторюють регістри процесора i 8086 (див. п. 3.5). П'ять нових регістрів такі:

40-розрядний регістр GDTR (Global Descriptor Table Re­gister) — регістр глобальної дескрипторної таблиці. При­значений для задання розміщення глобальної дескрип­торної таблиці в пам'яті. Регістр GDTR безпосередньо містить базову адресу і значення межі таблиці, яке задає її роз­мір. Розмір таблиці більший, ніж значення межі, на оди­ницю;

16-розрядний регістр LDTR (Local Descriptor Table Register) — регістр-селектор локальної дескрипторної таб­лиці. Його вміст вказує, де в глобальній дескрипторній таб­лиці знаходиться інформація про початкову адресу, межу і права доступу до локальної таблиці. Ця інформація перепи­сується у тіньовий програмно-недоступний регістр;

40-розрядний регістр IDTR (Interrupt Descriptor Table Register) — регістр дескрипторної таблиці переривань. Зав­дяки цьому регістру в МП i 80286 з'явилася можливість роз­міщувати таблицю векторів переривань у довільному місці ОЗП, а не з нульової адреси, як у МП і 8086. Регістр IDTR за структурою аналогічний регістру GDTR;

16-розрядний регістр задачі TR (Task Register) — регістр-селектор сегмента стану поточної задачі TSS (Task State Segment). Такі сегменти асоціюються з кожною задачею. їхнє призначення — збереження контексту задачі під час переми­кання задач;

Рис. 3.3. Програмна модель МП i80286

16-розрядний регістр стану машини MSW (Machine State Word), що керує режимом процесора і містить такі біти (рис. 3.4):

РЕ (Protection Enable) — дозвіл захисту. Встановлення цього прапорця переводить процесор у захищений режим. Повернення до реального режиму можливе лише за сигна­лом RESET.

MP (Monitor Processor Extension) — наявність співпроцесора. Якщо арифметичний співпроцесор i 80287 з'єднаний з процесором i 80286, то за ініціалізації операційна система має встановити цей біт у етап логічної одиниці. Тоді під час виконання команд WAIT та ESC і значення TS = 1 мікро­процесор генеруватиме виняток 7.

Рис. 3.4. Регістр стану машини MSW

EM (Processor Extension Emulated) — емуляція співпроцесора. Встановлення цього прапорця викликає виняток 7 після виконання команд арифметичного співпроцесора.

TS (Task Switch) — перемикання задач. Зі встановлен­ням прапорця наступна команда, яка належить до співпроце­сора, викличе виняток 7.

Тіньові регістри відіграють роль надоперативної пам'яті, їхнє призначення — підвищення швидкодії роботи МП (на рис. 3.3 тіньові регістри показано штриховою лінією).

Крім того, у програмній моделі, на відміну від МП i 8086, додано нові біти у регістрі прапорців і змінено використання сегментних регістрів у захищеному режимі. У регістрі прапорців біт 14 визначений як NT (Nested Task Flag — прапо­рець певної задачі), а біти 13—12 — як IOPL (Input/Output Privilege Level — двобітове поле рівня привілеїв введення-виведення). Ці прапорці діють лише в захищеному режимі. Прапорець NT встановлюється у стан логічної одиниці під час перемикання задач за допомогою команди CALL. Після виконання команди І RET перевіряється стан прапорця NT і якщо NT = 1, здійснюється перемикання, якщо ні, то вико­нується звичайне повернення з переривання. Поле IOPL вказує рівень привілею поточної задачі, за якого дозволяєть­ся виконання певних операцій.

Сегментні регістри CS, SS, ES і DS визначають початкові адреси сегментів. У реальному режимі 20-розрядна початко­ва адреса сегмента визначається як вміст 16-розрядиого сегментного регістра, доповненого праворуч чотирма нульовими бітами. У захищеному режимі початкова 24-розрядна базова адреса сегмента знаходиться у дескрипторній таблиці в ОЗП, а вміст сегментних регістрів є селекторами, які вказують на тип таблиці та номер запису в ній (див. рис. 3.1).

Під час завантаження нового значення селектора дескрип­тори зчитуються з ОЗП і запам'ятовуються у внутрішніх програмно-недоступних або тіньових регістрах процесора. Це дає змогу підвищити швидкодію процесора, оскільки значен­ня базових адрес сегментів змінюються порівняно рідко.

Регістри GDTR, LDTR, IDTR задають розташування дескрипторних таблиць у пам'яті (рис. 3.5). На рис. 3.5 пока­зано, що глобальна дескриптор на таблиця містить N + 1 дескрипторів, локальна — К + 1, дескрипторна таблиця перери­вань — М + 1. Початкова адреса глобальної дескрипторної таблиці визначається бітами 39—16 регістра GDTR та об­числюється додаванням значень початкової адреси і межі таблиці (біти 15 — 0). Аналогічно початкова і кінцева адре­си таблиці переривань визначаються вмістом регістра IDTR. Для адресації дескрипторів локальної таблиці використо­вують вміст регістра LDTR, який є селектором. Він вка­зує на номер дескриптора у глобальній дескрипторній таб­лиці. Цей дескриптор завантажується у тіньовий регістр (на рис. 3.5 зображено штриховою лінією). Перша та остання адреси локальної дескрипторної таблиці визначаються вмістом цього регістра.

Приклад 3.3. Знайти значення, яке треба завантажити у регістр GDTR, щоб задати у пам'яті глобальну дескрипторну таблицю з 21 дескриптора і з початковою адресою 000100 H.

Біти 39—16 регістра GDTR задають початкову 24-розрядну адресу, отже, мають дорівнювати 000100 H. Кожний запис у таблиці займає

Рис. 3.5. Розміщення дескрипторних таблиць у пам'яті

8 байт, тому, адреса 21 дескриптора визначається як 000100 H + 20 • 8 = 0001А0 H. У бітах 15-0 регістра GDTR треба розмістити число 0 A 0 H, після чого вміст регістра GDTR становить

0001000 AH.

Зазначимо, що команди завантаження регістрів таблиць GDTR, LDTR, IDTR, LGDT, LLDT, LIDT є привілейованими і виконуються у програ­мах з вищим рівнем пріоритету.

Адресний простір портів введення-виведення. Адресний простір портів МП i 80286 такий самий, як і для МП i 8086, тобто становить 64 • 2 одно- або 32 • 2 двобайтових портів. Додаткові рядкові команди REP INSB/INSW, REP OUTSB/OUTSW (табл. 3.1) забезпечують блокове оброб­лення зі швидкістю, що перевищує аналогічні операції в ре­жимі ПДП. У захищеному режимі команди є привілейова­ними, тобто вони можуть виконуватися лише з певним рівнем привілею, що визначається полем IOPL регістра прапорців. Інакше викликається виняток 13 — порушення захисту.

Система команд. До системи команд МП i 80286 входять усі команди МП i 8086 і ряд додаткових (див. табл. 3.1). У табл. 3.1 використано ті самі позначення, що й у табл. 2.11.

Приклад 3.4. Написати програму переведення МП у захищений режим адресації.

Для переведення МП у захищений режим адресації треба встанови­ти біт РЕ — молодший біт регістра MSW. Однак перед установленням цього біта треба задати початкові значення регістрів таблиць GDTR, LDTR, IDTR значення елементів дескрипторних таблиць в ОЗП. За­звичай таблиці переписують із ПЗП в ОЗП. Зазначимо, що таблиці мають знаходитися в ОЗП, оскільки під час виконання програми їхній вміст може модифікуватися.

Програма переведення МП має вигляд:

SMSW ВХ Збереження MSW у ВХ
OR ВХ, 0001 Н Установлення молодшого біта у стан логічної одиниці
LMSW ВХ Завантаження MSW
JMP M 1 Скидання черги команд
M 1   Початок роботи у захищеному режимі

Короткий перехід JMP M 1 на наступну команду потрібний для скидання черги команд. У МП i80286 існує випереджальна вибірка команд. Якщо МП виконав команду LMSW, яка перевела його у захи­щений режим, а в черзі команд залишилися команди, які мали виконуватися у реальному режимі, то після переведення процесора у захище­ний режим команди реального режиму будуть декодовані неправильно.

Таблиця 3.1 Додаткові команди МП i 80286

Мнемокод Опис
PUSH immed Команди роботи зі стеком Переміщення безпосередніх даних immed у стек
PUSH A Переміщення у стек вмісту регістрів АХ, ВХ, СХ, DX, SI, DI, BP, SP
РОРА Переміщення даних зі стеку в регістри АХ, ВХ, СХ, DX, SI, DI, BP, SP
IMUL reg 16 ,r/m Арифметичні команди Множення вмісту reg 16 на вміст r/m (16 біт)
IMUL reg 16, r/m, immed Множення вмісту r/m на 16-бітовий безпосе­редній операнд і переміщення результату в reg16
[REP] INSB ([REP] INSW) Рядкові команди Введення байта (слова) у комірку пам'яті ES: [DI] із порту з адресою DX з автоінкрементуванням (DF = 0) або автодекрементуванням (DF = 1) адреси. У разі використання префікса REP операція повторюється СХ разів
[REP] OUTSВ ([REP] OUTSW) Виведення байта (слова) з комірки пам'яті DS: [ S 1] у порт з адресою DX з автоінкрементуванням (DF = 0) або автодекрементуванням (DF = 1) адреси. У разі використання префікса REP операція повторюється СХ разів
BOUND reg16, lmts Команди переривань Перевірка меж масиву — якщо знакове число у reg 16 не знаходиться в заданих межах, вико­нується І NT 5. Межі задаються у двох суміжних словах пам'яті за адресою Imts.
ENTER frmsiz, frms Команди підтримки процедур Підготовка блока параметрів процедур (frmsiz — кількість байт для змінних процедури, frms — рівень укладення процедур)
LEAVE Відміна чинності ENTER (відновлює значення вмісту регістрів SP і ВР)
CLTS Команди керування станом МП Скидання прапорця перемикання задач
SEG Префікс заміни сегмента
LGDT src Команди керування захистом Завантаження регістра GDTR з пам'яті (6 байт)*
SCDT dest Збереження вмісту регістра GDTR у пам'яті (6 байт)*
LIDT src Завантаження регістра IDTR з пам'яті (6 байт)*
SIDT dest Збереження вмісту регістра IDTR у пам'яті (6 байт)*
LLDT src Завантаження регістра LDTR з регістра або па­м'яті reg /тет 16
SLDT dest Збереження вмісту регістра LDTR у reg / тет 16
LMSW src Завантаження регістра MSW з регістра або па­м'яті reg / тет 16
SMSW dest Збереження регістра MSW у reg / тет 16
LTR src Завантаження регістра задачі з reg / тет 16
STR dest Збереження вмісту регістра задачі в reg / тет 16
LAR dest, src Завантаження старшого байта dest байтом прав доступу дескриптора src
LSL dest, src Завантаження dest межею сегмента, дескриптор якого заданий src
ARPL reg/тетіб, гедіб Вирівнювання RPL у селекторі до найбільшого числа з поточного рівня і заданого операндом
VERR seg Верифікація читання: встановлення прапорця ZF у стан логічної одиниці (ZF = 1), для дозволу читання у сегменті seg
VERW seg Верифікація запису: встановлення ZF = 1 для дозволу запису в сегмент seg

*Команди LGDT, LIDT завантажують у 40-розрядні регістри GDTR, IDTR п'ять байтів, але під час виконання команди передаються шість байтів: перші п'ять з них пересилаються у регістри, а шостий (з най­більшою адресою) ігнорується. Однак для сумісності з майбутніми розробками МП він повинен мати нульове значення. Команди SGDT, SIDT передають вміст регістрів GDTR, IDTR у пам'ять, при цьому передаються шість байтів: у п'яти знаходиться вміст регістра, а шос­тий — невизначений.

Таблиця 3.2. Переривання і винятки МП i 80286

Номер пе­реривання     Адреса повернення Функції
Реальний режим Захищений режим
  Перший байт команди Помилка ділення — виникає, якщо частка занад­то велика або дільник дорівнює нулю
  Наступна команда Переривання покрокової роботи
  Немає Немасковане переривання
  Наступна команда Контрольна зупинка {ІNT 3)
  Тe саме Особливий випадок переповнення (INTO)
  Перший байт команди Особливий випадок виходу з діапазону — вини­кає за виконання команди BOUND
  Те саме Неприпустимий код операції — виникає, якщо зу­стрічається недійсний код операції або команда завдовжки понад 10 байт
  - «- Співпроцесор не­доступний Співпроцесор недоступний або відбулося перемикання задач
  - «-   Подвійна відмова — ситуа­ція, коли МП виявляє два не­залежних винятки у процесі відпрацювання однієї коман­ди. Якщо під час його об­слуговування станеться ви­няток, то МП вимкнеться (цикл Shutdown). У цьому стані процесор припиняє свої дії і виводиться з нього сигналами скидання або не-маскованого переривання
  Невизначена Порушення межі сегмента співпроцесором — ви­никає, якщо операнд співпроцесора не поміщаєть­ся у сегмент, наприклад, 16-розрядний операнд має зміщення 0 FFFFH
  Перший байт команди Неприпустимий сегмент стану задачі
  Тe саме Сегмента немає
  - «- Порушення межі сегмента стеку Порушення межі сегмента стеку або стеку немає
  - «- Порушення межі сег­мента даних або ко­ду — виникає, як­що операнд або код операції у сегмент не поміщається Порушення захисту — вини­кає у таких випадках: за ви­ходу за межі таблиці деск­рипторів; з порушенням при­вілеїв; після завантаження недійсного дескриптора або типу сегмента; за спроби за­пису в сегмент коду або сег­мент даних, призначених лише для читання, під час читання лише з виконувано­го сегмента кодів; за спроби виконати привілейовані команди, дозволені лише для певних рівнів CPL і IOPL
    Зарезервовано
  — «—
  Наступна команда ESC або WAIT Особливий випадок співпроцесора — виникає в МП i 80286 за будь-якого немаскованого особли­вого випадку в співпроцесорі
  Зарезервовано
    ¼
  Зарезервовано
         

Цикли шини. Мікропроцесор i 80286 має шинний інтер­фейс з 6-байтовою чергою команд, що забезпечує конвеєрну адресацію (Pipelined Addressing). Це забезпечує вибірку кодів команд або даних із пам'яті з випередженням, що дає змогу почати фазу ідентифікації або адресації нового циклу, не дочекавшись закінчення попереднього. Розрізняють шість типів циклів шини:

• ЧИТАННЯ ПАМ'ЯТІ;

• ЗАПИС У ПАМ'ЯТЬ;

• ЧИТАННЯ ПОРТУ;

• ЗАПИС У ПОРТ;

• ПІДТВЕРДЖЕННЯ ПЕРЕРИВАННЯ;

• СТОП-ЗУПИНКА.

Зазначимо, що слово з непарною адресою передається за два цикли шини, а з парною — за один. На рис. 3.6 показано цикли шини ЧИТАННЯ і ЗАПИС слова у комірку пам'яті з парною адресою. Зчитування слова з ОЗП здійснюється що­найменше за чотири періоди тактових імпульсів CLK або за два стани процесора (без урахування сигналу готовності READY). Кожний стан МП триває два такти CLK. Під час першого стану, позначеного через ТS, процесор виставляє на шину адреси значення адреси комірки пам'яті, з якої буде зчитуватися слово. Завдяки конвеєрній адресації адреса ко­мірки виставляється з деяким випередженням, однак вона не зберігається на шині адреси впродовж циклу. Для сумісності

Рис. 3.6. Цикли шини ЧИТАННЯ і ЗАПИС слова у комірку пам'яті з парною адресою

з шиною ISA сигнали шини адреси запам'ятовуються у регістрах-фіксаторах за стробом ALE. Керуючі сигнали читання пам'яті і адресний строб ALE формуються системним контролером 82288 на початку другого стану TC. Сигнали керування та адреси обробляються схемою керування пам'ят­тю, внаслідок чого, починаючи з середини другого стану TC, на шині даних з'являється слово з ОЗП, і процесор зчитує його із шини даних. Тривалість циклу ЧИТАННЯ з парною адресою становить тривалість двох станів.

Під час зчитування слова з непарною адресою в першому циклі переноситься байт за старшою половиною шини даних D 15 — D 8, а в другому — передається другий байт за молод­шою половиною D 7 —D 0. Цикл шини ЗАПИС У ПАМ'ЯТЬ з парною адресою також дорівнює тривалості двох станів. У пер­шій половині циклу ТS виставляється адреса і дані, в другій — відбувається запис в ОЗП.

Виконання циклів шини ЧИТАННЯ ПОРТУ та ЗАПИС У ПОРТ аналогічне розглянутим вище циклам ЧИТАННЯ ПАМ'ЯТІ та ЗАПИС У ПАМ'ЯТЬ, однак у цьому випадку на шину A 15— A 0 виставляється адреса порту і замість сигналів читання або запису пам'яті генеруються сигнали — для читання портів введения-виведення, або для запи­су в порти введення-виведення.

Цикл шини ПІДТВЕРДЖЕННЯ ПЕРЕРИВАННЯ (рис. 3.7) виконується у разі виникнення апаратного переривання (на­явності активного рівня на виводі INTR). Цикл складається з двох процесорних циклів, поділених трьома тактами очіку­вання Tw.

Рис. 3.7. Цикл шини ПІДТВЕРДЖЕННЯ ПЕРЕРИВАННЯ

Кожний процесорний цикл складається з трьох станів — TS, ТC, ТC- Це потрібно для того, щоб продовжити дію сиг­налу І NT А, що посилається на контролер переривань 8259 A. Перший цикл дозволяє ведучому контролеру визначити, який з ведених контролерів викликав переривання. У другому циклі МІГ зчитує із шини даних вектор переривання, що ви­користовується для знаходження адреси у таблиці векторів переривань. Цикл шипи СТОП-ЗУПИНКА {Halt/Shutdown) виникає або під час виконання команди HLT, або під час оброблення особливого випадку 8 (табл. 3.2) у захищеному режимі.

Типи переривань. Переривання і винятки в реальному і захищеному режимах наведено у табл. 3.2.

Кожному номеру переривання відповідає елемент у таб­лиці IDT дескрипторів переривань, яка містить вектори пере­ривань. Після скидання МП, а також під час роботи МП у реальному режимі, таблиця векторів IDT розміщується, по­чинаючи з нульової адреси, однак командою завантаження регістра JDTR можна змінити її місцезнаходження у межах першого мегабайта і зменшити розмір таблиці.

Приклад 3.5. Визначити, чи виникне переривання у процесі роботи МП у реальному режимі під час виконання команди

MOV AX,[ 0 FFFFH].

Під час виконання цієї команди в акумулятор АХ пересилається слово з сегмента даних, причому молодший байт слова має зміщення 0 FFFFH, а старший — 0000 Н. Цей випадок є порушенням межі сег­мента і виникає переривання 13.





Дата публикования: 2014-12-11; Прочитано: 1068 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.014 с)...