- •Тема 1.1: Класифікація мікропроцесорів. Архітектура процесорів Intel 8086.
- •1.4. Структура вбудованого мікроконтролеру
- •1.5. Системна шина
- •Тема 2.2: Арифметичні операції над числами. Логічні операції над числами та строками. Умовні та безумовні переходи.
- •2.2.1 Додавання цілих чисел. Синтаксис команд
- •2.2.2 Віднімання цілих чисел. Синтаксис команд
- •2.2.3 Множення цілих чисел. Синтаксис команд.
- •2.2.4 Ділення цілих чисел. Синтаксис команд
- •2.2.5 Арифметичний зсув вліво і вправо. Синтаксис команд
- •2.2.6 Безумовний перехід та порівняння. Синтаксис команд.
- •2.3.3. Команди організації циклів. Синтаксис команд
- •3.1.2. Сегментні регістри. Состав шинного інтерфейсу.
- •3.1.3. Індексні регістри. Регістр флагів.
- •3.1.4. Функції алу. Призначення адресних входів алу
- •Тема 3.2: Система команд мікропроцесору i8080. Організація пам’яті та портів вводу/виводу.
- •Тема 5.1: Система команд i8086. Система переривів. Адресація пам’яті. Директиви передачі керування.
- •5.1.2. Команди перериву за переповненням. Синтаксис команд.
- •5.1.3. Повернення з переривів та підпрограм.
- •5.1.4. Сегментна організація пам’яті.
- •5.1.5. Фізична адреса байту в пам’яті.
- •5.1.6. Формування логічного адресу.
- •Тема 5.2: Сопроцесор і арифметичне розширення процесору. Синхронізація програми та керування таймером.
- •5.2.1. Функції та призначення сопроцесору.
- •5.2.4. Синхронізація сигналів таймеру.
- •Тема 5.3: Програмування вводу/виводу даних на зовнішні пристрої. Обмін даними в локальних мережах.
- •5.3.1. Функції інтерфейсу вводу/виводу.
- •5.3.2. Керування обміном даними. Програмний обмін.
- •5.3.3. Керування обміном даними. Обмін за переривом.
- •Тема 6.1: Архітектура мікроконтролеру i8086. Організація пам’яті і регістрів. Прямий доступ до пам’яті.
- •6.1.1. Організація пам’яті. Адресний простір.
- •6.1.2. Структура процесору i8086. Виконавчий модуль.
- •6.1.3. Структура процесору i8086. Шиний інтерфейс
- •6.1.4. Структура процесору i8086. Керування і таймінг.
- •6.1.5. Контролер динамічної пам'яті. Схема модуля.
- •Тема 6.2: Організація портів вводу/виводу. Інтерфейси зовнішніх пристроїв для взаємодії з технологічним обладнанням.
- •Тема 6.3: Тактовий генератор. Таймери. Лічильники. Внутрішня та зовнішня пам’ять. Шини адресу та даних.
- •6.3.1. Мікросхема тактового генератору.
- •6.3.2. Структурна схема програмованого таймеру.
- •6.3.3. Режими роботи програмованого таймеру.
- •6.3.4. Нарощування об’єму пам’яті.
- •Тема 6.4: Система переривів. Контролер переривів. Організація механізму переривів. Перериви таймеру.
- •6.4.1. Контролер переривів. Джерело переривів.
- •6.4.2. Запроси переривів. Типи векторів переривів.
- •6.4.3. Адреси функцій переривів. Приклад визову перериву.
- •Тема 7.1: Засоби організації обміну із зовнішніми приладами. Схема виводів. Програмовані виводи.
- •7.1.1. Схема виводів мікропроцесору i8086.
- •7.1.2. Адресація 8-бітного пристрою.
5.1.3. Повернення з переривів та підпрограм.
Возврат из прерывания осуществляется по команде IRET, которая ставится в конце обработчика прерывания.
^ Операция прерывания осуществляется в следующем порядке: 1) содержимое регистров Flags, CS и IP процессора (старое ССП) помещается в стек; 2) сбрасываются (обновляются) биты IF и TF регистра флагов (IF=0 - маскирует внешние прерывания по входу INTR, TF=0 - запрещает трассировку, т. е. шаговый режим);
3) определяется причина (номер N) прерывания с наивысшим в данный момент времени приоритетом (арбитраж);
4) по номеру N из таблицы извлекается вектор прерываний (из ячеек памяти с адресами 4N и 4N+2) и загружается в регистры CS, IP (новое значение ССП). Тем самым передается управление подпрограмме обработки прерывания.
Возврат из обработчика прерывания осуществляется командой IRET, по которой из стека в обратном порядке выталкиваются три слова (старое ССП) и загружаются в регистры IP, CS, Flags соответственно.
Возврат из подпрограммы осуществляется по команде IRET. При выталкивании из стека старого значения регистра флагов учитываются условия:
поле IOPL восстанавливается только при условии CPL=0,
флаг маски IF изменяется только при условии CPL≤IOPL.
5.1.4. Сегментна організація пам’яті.
Сегментная организация виртуальной памяти состоит в том, что программа разбивается на логические элементы (например, блоки, процедуры) ─ так называемые сегменты разной длины, которые размещаются в памяти как до определенной степени самостоятельная единица. Логически обращение к элементам программы будет представляться как указание имени сегмента и смещения относительно начала этого сегмента. Физическое имя сегмента (его порядковый номер) будет соответствовать некоторому адресу, с которого этот сегмент начинается при его размещении в памяти, и смещение должно прибавляться к этому базовому адресу. Таким образом, адрес для этого способа состоит из двух полей: номер сегмента и смещение относительно сегмента. Каждый сегмент, размещаемый в памяти, имеет соответствующую информационную структуру, называемую дескриптором сегмента:
Старшее двойное слово дескриптора
31 23 19 15 11 7 0
База сегмента (биты 31-24) |
G |
D |
0 |
0 |
Биты 19-16 поля Limit |
P |
DPL |
S |
Type |
A |
База сегмента (биты 23-16) | ||
Базовый адрес сегмента (биты 15-0) |
Байт прав доступа |
| |||||||||||
Limit-размер (предел) сегмента (биты 15-0) |
31 15 0
Первое (младшее) двойное слово дескриптора
Рис.1. Дескриптор сегмента
При переключении микропроцессора в защищенный режим он начинает совершенно другим образом, чем в реальном режиме, вычислять физические адреса команд и операндов. Прежде всего, содержимое сегментных регистров интерпретируется иначе: считается, что там содержится не адрес начала сегмента, а номер соответствующего сегмента. Каждый сегментный регистр (в этом случае его называют селектор сегмента) разбивается на три поля:
поле индекса ─ старшие 13 битов (3-15). Определяют номер сегмента:
поле индикатора таблицы сегмента ─ бит с номером 2. Определяет часть виртуального адресного пространства.
поле уровня привилегий ─ биты 0 и 1. Указывает запрашиваемый уровень привилегий.