Системные прерывания
Микропроцессор немаскируемых прерываний (НМП) 80286 и две микросхемы контроллера прерываний 8259A обеспечивают 16 уровней системных прерываний. ниже эти уровни приводятся в порядке уменьшения приоритета.
Замечание: как все прерывания, так и любое из них в отдельности, могут маскироваться (включая НМП микропроцессора).
Уровень | Функция |
Микропроцессор НМП | Контроль чётности или каналов ввода-вывода |
Контроллеры прерываний | ||
№ | Уровень | Функция |
1 | IRQ 0 IRQ 1 IRQ 2 | Выход 0 таймера Клавиатура (выходной буфер полн) Прерывание от CTRL 2 |
2 | IRQ 8 IRQ 9 IRQ 10 IRQ 11 IRQ 12 IRQ 13 IRQ 14 IRQ 15 | Часы реального времени Переадресовка программы к INT OAM (IRQ 2) Резерв Резерв Резерв Сопроцессор Контролер жёсткого диска Резерв |
3 | IRQ 3 IRQ 4 IRQ 5 IRQ 6 IRQ 7 | Последовательный порт 2 Последовательный порт 1 Параллельный порт 2 Контроллер накопитель на ГМД Параллельный порт 1 |
Сопроцессор.
Описание
Математический сопроцессор персонального компьютера IBM PC AT позволяет ему выполнять скоростные арифметические и логарифмические операции, а также тригонометрические функции с высокой точностью.
Сопроцессор работает параллельно с микропроцессором, это сокращает время вычислений, позволяя сопроцессору выполнять математические операции, в то время как микропроцессор занимается выполнением других функций.
Сопроцессор работает с семью типами числовых данных, которые делятся на следующие три класса:
- двоичные целые числа (3 типа);
- десятичные целые числа (1 тип);
- действительные числа (3 типа).
Условия программирования
Сопроцессор предлагает расширенный набор регистров, команд и типов данных для микропроцессора.
Сопроцессор имеет восемь 80-разрядных регистров, которые эквивалентны емкости сорока 16-разрядных регистров в микропроцессоре. В регистрах можно хранить во время вычислений временные и постоянные результаты, что сокращает расход памяти, повышает быстродействие, а также улучшает возможности доступа к шине. Пространство регистров можно использовать как стек или как постоянный набор регистров. При использовании пространства в качестве стека работа ведется только с двумя верхними стековыми элементами. В следующей таблице показано представление больших и малых чисел в каждом типе данных.
Условия аппаратного обеспечения
Математический сопроцессор использует тот же генератор синхроимпульсов, что и микропроцессор. Он работает с частотой, равной одной трети частоты системных синхроимпульсов микропроцессора. Сопроцессор подсоединен так, что он функционирует как устройство ввода-вывода через порт ввода-вывода с адресами 00F8, 00FA и 00FC. Микропроцессор посылает коды операций и операнды в эти порты ввода-вывода, через них он также принимает и записывает в память результаты вычислений. Сигнал занятости сопроцессора сообщает микропроцессору о том, что он исполняет операции. По команде "WAIT" микропроцессор ожидает, пока сопроцессор закончит исполнение.
Сопроцессор выявляет шесть различных исключительных ситуаций, которые могут возникнуть во время исполнения команды. Если маска соответствующего исключения в сопроцессоре не установлена, сопроцессор устанавливает сигнал ошибки, по которому генерируется прерывание 13, и сигнал 'BUSY' фиксируется в установленном состоянии. Сигнал 'BUSY' может быть очищен командой записи 8-разрядного ввода-вывода по адресу F0, при условии что D0-D7 равны нулю.
Код самоконтроля при включении питания в системном ПЗУ разрешает прерывание 13 и устанавливает вектор этого прерывания, указывающий на рабочую программу ПЗУ. Эта программа очищает защелку сигнала 'BUSY' и передает затем управление по адресу, указанному вектором немаскированного прерывания. Это позволяет использовать код, записанный для любого персонального компьютера IBM, в IBM PC AT. Драйвер немаскируемых прерываний должен прочитать состояние сопроцессора, чтобы определить, было ли НМП вызвано сопроцессором. Если нет, то управление передается исходному драйверу НМП.
Сопроцессор предусматривает два режима работы, подобные двум режимам микропроцессора. после сброса при включении питания или при операции записи ввода - вывода в порт с адресом 00F1 сопроцессор находится в режиме реальной адресации. Этот режим совместим с сопроцессором 8087, который используется с другими персональными компьютерами IBM. Сопроцессор может быть переведен в режим защиты с помощью команды SETPM ESC. В режим реальной адресации он может возвратиться, если будет выполнена операция записи ввода-вывода в порт с адресом 00F1, при условии что D0-D7 равны 0.
Базовая система ввода-вывода (BIOS)
Базовая система ввода-вывода (BIOS) находится в ПЗУ на системной плате. Она обеспечивает управление уровнями для основных устройств ввода-вывода в системе. На дополнительных адаптерах могут размещаться дополнительные модули ПЗУ, которые обеспечивают управление уровнями устройства на этом дополнительном адаптере. Рабочие программы BIOS позволяют программисту, работающему на языке ассемблера, выполнять операции ввода-вывода в блоковом (диски или дискеты) или в символьном формате без учета адреса и параметров устройства. BIOS предусматривает такие системные услуги, как определение времени суток и размера памяти.
Целью BIOS является обеспечение операционной связи с системой и освобождение программиста от заботы об аппаратных характеристиках устройств. Интерфейс BIOS отделяет пользователя от аппаратуры, позволяя добавлять к системе новые устройства, сохраняя при этом связь с устройством на уровне BIOS. В этом случае аппаратные изменения и расширения становятся "прозрачными" для пользователя.
Использование BIOS
Доступ к BIOS обеспечивается через программные прерывания микросхемы 80286 в режиме реального времени. Каждая точка входа в BIOS доступна через собственное прерывание. например, для определения объема базового ОЗУ, доступного в системе, содержащей 80286, в режиме реального времени, прерывание INT 12H вызывает рабочую программу BIOSа для определения размера памяти и возвращает полученное значение системе.
Передача параметров
Все параметры, передающиеся в рабочие программы BIOS и обратно, проходят через регистры микросхемы 80286. Вводная часть каждой функции BIOS содержит регистры, используемые при вызове и возврате, например, для определения размера памяти параметры не передаются. Размер памяти в килобайтах возвращается в регистр AX. Если функция BIOS содержит в себе несколько возможных операций, то регистр AH используется на входе, чтобы показать желаемую операцию, например, для установки времени суток требуется следующая программа:
MOV AH,1 установить время суток
MOV CX,HIGH COUNT установить текущее время
MOV DX,LOW COUNT
INT 1AH установить время
для чтения времени суток:
MOV AH,0 считать время суток
INT 1AH считать таймер
Программы BIOS запоминают все регистры, кроме AX и флагов. Другие регистры изменяются по возврату только в том случае, если они возвращают значение вызывающей программе. Конкретное назначение регистра можно определить по вводной части каждой функции BIOS.
Список использованной литературы
1. Э. Ратч «IBM AT руководство для начинающих» М: «Радио и связь» 1993г.
2. В. Э. Фигурнов «IBM PC для пользователя» изд.5. М: «Финансы и статистика» 1995г.
3. Большая часть информации взята из Internet, но по причине ограниченности доступа мне некогда было переписывать адреса сайлов…