
- •1. 6. Основы программной инициализации и изменения режимов работы pic
- •1. 7. Основные функции и назначения основных битов приказов инициализации
- •1. 8. Слова рабочих приказов
- •§ 3. Организация прерываний в реальном и защищенном режимах в старших моделях семейства Intel 80x86, Pentium
- •3.1. Аппаратные средства системы прерываний Intel 80x86
- •3.2. Реальный режим и его основные особенности
- •3.3. Основные отличия r-режима старших моделей Intel 80x86 от Intel 8086
- •3.4. Особенности организации прерываний в реальном режиме
- •3.4.1. Программные средства системы прерываний реального режима
- •3.4.2. Идеология организации прерываний в процессорах Intel 80х86
- •3.4.3. Этапы обработки прерываний в реальном режиме процессоров Intel 80х86
- •3.4.4. Основные отличия обработки прерываний в r-режиме по сравнению с базовой моделью Intel 8086
- •3.4. Организация прерываний в защищенном режиме
- •3.4.1 Основные положения
- •3.5. Расширенная классификация прерываний в защищенном режиме
- •3.6. Дескрипторная таблица прерываний и ее элементы
- •Шлюз ловушки
- •Шлюз прерывания
- •Шлюз задач
- •Код ошибки
- •3.7. Обобщенная схема обработки прерывания в защищенном режиме
- •§ 4. Система прерываний пэвм ibm pc
- •4.1. Основные сведения
- •4.2. Действия микропроцессора при возникновении прерывания в ibm pc
- •4.3. Обработка прерывания в реальном режиме и в защищенном режиме
3.3. Основные отличия r-режима старших моделей Intel 80x86 от Intel 8086
Возможность использования расширенной системы команд.
2. Возможность использования расширенного набора регистров. Допускается использование регистров, отсутствующих в базовой модели Intel 8086, в частности: дополнительных сегментных регистров (FS и GS), регистров системных адресов GDTR и IDTR (но не LDTR и TR), регистров отладки (DR0-DR7), управляющего регистра CR).
3. Возможность использования 32-разрядных операндов. По умолчанию в R-режиме используются 8- и 16-разрядные операнды. Возможность использования 32-разрядных операндов обеспечивается наличием специального префикса OS – Operand Size перед командой.
4. Возможность использования 32-разрядных адресов обеспечивается за счет префикса AS – Address Size перед командой. Однако, при выходе адреса за пределы стандартного сегмента генерируется прерывание стандартного типа 13 «нарушение общей защиты, выход за пределы сегмента».
5. Возможность использования физических адресов, превышающих 1 Mбайт. Максимальное значение физического адреса, формируемое в R-режиме при максимальных значениях 16-разрядных компонент равно:
seg*16 F F F F 0
offset + 0 F F F F
(1 0 F F E F)16 = (1114095)10
Так как разрядность шины адреса – 32 или даже 36 бит, то в R-режиме возможна адресация за пределами 1 Mi байта памяти.
В процессоре Intel 8086 используется 20-разрядная шина адреса, в связи с чем при суммировании подобных компонент производится так называемое «заворачивание» адреса, поэтому для данного примера на шину адреса будет выставлен адрес (0FFEF)16.
3.4. Особенности организации прерываний в реальном режиме
3.4.1. Программные средства системы прерываний реального режима
К программным средствам системы прерываний реального режима относятся:
1) таблица векторов прерываний. Она занимает первый килобайт ОП (адреса 00000h-003FFh), содержит адреса (векторы - «векторы», т.к. два значения для указания адреса) обработчиков прерываний и состоит из 256 (0..255) элементов по 4 байта каждый:
- 2 байта – новое значение для регистра IP;
- 2 байта – новое значение для регистра CS.
Расположение таблицы векторов прерываний в процессорах i80286 и старше определяется значением регистра IDTR. Таблица векторов прерываний инициализируется при запуске системы, но в принципе может быть изменена и перемещена.
Каждый вектор имеет свой номер и называется номером прерывания.
2) два флага в регистре флагов flags/eflags:
– IF (Interrupt Flag) – флаг прерывания. Предназначен для маскирования (запрещения) аппаратных прерываний. Если IF = 1, микропроцессор обрабатывает внешние прерывания, если = 0, то игнорирует;
– TF(Trace Flag) – флаг трассировки. Если он = 1, то микропроцессор переходит в режим покомандной работы. В этом режиме в микропроцессоре генерируется внутреннее прерывание с номером 1;
3) машинные команды микропроцессора: int, into (прерывание по переполнению), iret, cli, sti