- •5 Задача 44
- •1. Відкрита архітектура пеом
- •2. Функціональна схема базової моделі мікропроцесора. Схеми напівсуматора і суматора. Дії над двійковими та двійково-десятковими числами.
- •Додавання
- •Віднімання
- •3. Логічна структура мікропроцесора
- •Сегментные регистры
- •Регистры общего назначения
- •Флаги состояния
- •Флаг направления
- •Системные флаги
- •Регистр управления
- •4. Адресація пам’яті
- •Сегментная адресация памяти
- •Параграфы
- •Понятия команды и формата команды
- •5. Сторінкова організ оп пам’яті. Таблиці, дескриптори
- •Понятие о страничной модели памяти
- •6. Структура таблиц idt. Дескриптор шлюза.
- •Дескриптор шлюза
- •7. Формування фізичної адреси з логічної адреси для сегментної та сторінкової схем організації пам’яті Страничная организация
- •8. Принципи роботи vmm
- •Обзор Администратора виртуальной памяти (vmm)
- •9. Використання регістрів загального призначення
- •10. Організація стеку. Адресація стекової пам’яті
- •11. Архітектура регістру ознак (flags)
- •12. Апаратно-програмні засоби певм.
- •13. Механізм переривань
- •14. Апаратні переривання, їх призначення. Архітектура мікросхеми 8859. Обробка апаратних переривань.
- •15. Контролер apic
- •16. Принцип роботи сопроцесора
- •17. Загальні поняття про канали та порти
- •18. Мікросхема паралельного інтерфейсу
- •19. Структура cmos-memory
- •20. Архітектура мікросхеми таймера
- •1 Задача
- •2 Задача
- •Програма може бути якась така:
- •5 Задача
- •6 Задача
6. Структура таблиц idt. Дескриптор шлюза.
Таблица векторов прерываний (англ. Interrupt Descriptor Table, IDT) используется в x86 архитектуре и служит для определения корректного ответа на прерывания и исключения. В микропроцессорах 8086/80186 таблица векторов прерываний расположена в первом килобайте памяти начиная с адреса 0000:0000 и содержит 256 векторов прерываний в формате сегмент:смещение. В IDT используются следующие типы прерываний: аппаратные прерывания, программные прерывания и прерывания, зарезервированные процессором, называемые исключениями (первые 32) на случай возникновения некоторых событий (деление на ноль, ошибка трассировки, переполнение). В реальном режиме элементом IDT является 32-битный FAR адрес обработчика прерывания.
INT_NUM |
Short Description PM
|
0x00 |
Division by zero (Деление на ноль) |
0x01 |
Debugger (Отладка) |
0x02 |
Non-maskable interrupt (Немаскируемые прерывания) |
0x03 |
Breakpoint (Точка останова) |
0x04 |
Overflow (Переполнение) |
0x05 |
Bounds (Ограничение) |
0x06 |
Invalid Opcode (Не существующий код операции) |
0x07 |
Coprocessor not available (Сопроцессор не доступен) |
0x08 |
Double fault (Двойная ошибка) |
0x09 |
Coprocessor Segment Overrun (Переполнение сегмента сопроцессора) |
0x0A |
Invalid Task State Segment (Не существующий сегмент состояния задачи) |
0x0B |
Segment not present (Сегмент не существует) |
0x0C |
Stack Fault (Ошибка стека) |
0x0D |
General protection fault (Нарушение защиты общего характера) |
0x0E |
Page fault (Ошибка страницы) |
0x0F |
reserved (зарезервировано) |
0x10 |
Math Fault (Математическая ошибка) |
0x11 |
Alignment Check (Проверка выравнивания) |
0x12 |
Machine Check (Проверка машины) |
0x13 |
SIMD Floating-Point Exception (SIMD исключения с плавающей точкой) |
Дескриптор шлюза
Дескриптор
шлюза
— служебная структура
данных,
служащая для различных переходов.
Используется только в защищённом
режиме.
В реальном
режиме
некоторым аналогом может служить дальний
адрес. Длина дескриптора стандартна и
равна восьми байтам.
Смещение (англ. Offset, жёлтые поля) — смещение процедуры в сегменте кода;
Селектор (англ. Selector, оранжевое поле) — селектор сегмента процедуры, на который происходит переход. Может быть сегментом кода или TSS;
Количество параметров (англ. Words count, голубое поле, биты 32-36) — количество слов (16-разрядный стек) или двойных слов (32-разрядный стек), копируемых из стека вызывающей программы в стек вызываемой процедуры. Актуально только при смене уровня привилегий; используется только в шлюзах вызова (Call Gate)
Тип/права доступа (голубые поля, биты 40-47) — права доступа к шлюзу и его тип (см.Дескриптор сегмента — типы системных сегментов).
Ссылки:
http://ru.wikipedia.org/wiki/Дескриптор_шлюза
http://ru.wikipedia.org/wiki/Таблица_векторов_прерываний
http://en.wikipedia.org/wiki/Interrupt_descriptor_table
http://wiki.osdev.org/Interrupt_Descriptor_Table
