Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
L_SPPO.doc
Скачиваний:
30
Добавлен:
04.11.2018
Размер:
522.24 Кб
Скачать

Формирование физического адреса

Так как внутренние регистры – 16-разрядные (216 = 64 Кбайт), а шина адреса имеет ширину 20 бит (220 = 1Мбайт), то для формирования 20-разрядного физического адреса памяти используются: сегмент адреса и смещение адреса. Физический адрес записывается парой этих значений, разделенных двоеточием, и образуется следующим образом (рис.4):

  • значение сегмента адреса, берущегося из регистра, CS сдвигается на 4 бита влево с заполнением разрядов справа нулями;

  • к образовавшемуся 20-битовому значению прибавляется значение смещения адреса из регистра IP. При возникновении переполнения берется только пять 16-ричных цифр результата.

Например, адрес 40:1Ch соответствует физическому адресу 0041Ch.

Значение регистра CS

00

00

00

00

Регистр CS

15 0

+

Регистр IP

= 15 0

Физический

адрес

19 0

Рис.4. Схема определения физического адреса для микропроцессоров 8086/88

Прерывания

Микропроцессоры Intel 8086/88 поддерживают 256 прерываний. Каждое из них имеет свой номер и ISR. Адрес точки входа в ISR называется вектором прерываний и хранится в специальной таблице, называемой таблицей векторов прерывания (ТВП). Код ISR может располагаться в любом месте памяти. Поэтому вектор прерывания занимает 4 байта:

  • 2 байта отводится на значение сегмента адреса – значение регистра CS;

  • 2 байта – на значение смещения, устанавливаемое в регистре IP.

Вся ТВП занимает 256*4 = 1024 байта и хранится в оперативной памяти, начиная с адреса 0000:0000.

При возникновении прерывания процессор помещает в стек 6 байт:

  • текущее значение регистра CS;

  • текущее значение регистра IP;

  • 2 байта флагов процессора;

  • в CS и IP устанавливаются значения из ТВП, задающие начальный адрес ISR.

Прерыванию «0» соответствует вектор прерывания по адресу 0000:0000.

Прерыванию «1» соответствует вектор прерывания по адресу 0000:0004h.

Прерыванию «2» соответствует вектор прерывания по адресу 0000:00008h.

…………………………………………………………………………………..

В процессе функционирования ПК могут встретиться 4 типа прерываний:

  1. Аппаратные.

Они возникают как результат внешних событий, и их генерирует специальная микросхема ПК i8259A – программируемый контроллер прерываний (PIC). Она рассчитана на 8 входов запросов прерываний (IR – Interrupt Request). Сигналы на ней возбуждают внешние устройства: таймер, клавиатура, дисководы и т.д. Выход этой микросхемы подается на специальный вход процессора INTR. Этот вход является маскируемым: если флаг IF равен 1, то процессор реагирует на прерывания по этой линии, флаг IF сброшен в 0, то – нет;

  1. Немаскируемые прерывания.

Процессор, кроме входа INTR, имеет вход немаскируемых прерываний NMI. Сигнал по этому входу не может быть блокирован программным образом и вызывает прерывание с номером «2». Это прерывание имеет более высокий приоритет, чем по входу INTR и используется для организации реакции процессора на критические ситуации.

  1. Программные прерывания.

Осуществляется по программной инструкции INT(«номер прерывания»).

  1. Исключительные ситуации.

Генерация внутренних прерываний процессором при возникновении необычных условий при выполнении машинных команд, например «деление на нуль», «пошаговое исполнение»..

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]