Cтраница 1
![]() |
Вектора прерываний и ПДП EFCOP. [1] |
Таблица векторов прерываний EFCOP показана ниже. [2]
За таблицей векторов прерываний следует область, используемая для хранения ряда программ и данных MS DOS. Далее располагаются программы-обработчики прерываний. Самая большая область оперативной памяти, как правило, отведена для выполнения программы пользователя. Эта область, обычно, распадается на сегменты кода, данных стека и дополнительный, адресуемые соответствующими сегментными регистрами. [3]
![]() |
Упрощенный алгоритм обработки прерывания. [4] |
Программное прерывание тоже обслуживается через таблицу векторов прерываний, но номер прерывания указывается в составе команды, вызывающей прерывание. [5]
В младших адресах оперативной памяти расположена таблица векторов прерываний, содержащая двести пятьдесят шесть адресов программ-обработчиков прерываний. [6]
Отметим, что в более сложных случаях в таблице векторов прерываний могут находиться не адреса начала программ обработки прерываний, атак называемые дескрипторы ( описатели) прерываний. Но конечным результатом обработки этого дескриптора все равно будет адрес начала программы обработки прерываний. [7]
![]() |
Последовательность инициализации ВН59А. [8] |
Микропроцессор ВМ86 / ВМ88 использует эту информацию для вычисления адреса входа в таблицу векторов прерываний. Кроме того, в режиме ВМ86 функция ADI ( управления адресным интервалом) подавляется. Состояние поля А7 - А5 в ICW1, а также А10 - А8 в ICW2 игнорируется. [9]
Процессор, получив аппаратное прерывание, заканчивает выполнение текущей команды и обращается к памяти в область таблицы векторов прерываний, в ту ее строку, которая определяется номером запрошенного прерывания. Затем процессор читает содержимое этой строки ( код вектора прерывания) и переходит в адрес памяти, задаваемый этим вектором. Начиная с этого адреса в памяти должна располагаться программа обработки прерывания с данным номером. В конце программы обработки прерываний обязательно должна располагаться команда выхода из прерывания, выполнив которую, процессор возвращается к выполнению прерванной основной программы. Параметры процессора на время выполнения программы обработки прерывания сохраняются в стеке. [10]
При каждом включении напряжения питания или нажатии клавиши сброса ПО мМС1204 инициализирует систему прерываний с базой таблицы векторов прерываний. При этом все векторы принимают нулевое значение. Пользователь управляет средствами поддержки режима реального времени, используя вышеуказанные процедуры. [11]
Начальный адрес желательно определять, начиная с ячейки 100 памяти, чтобы не было пересечения с областью памяти, отведенной под таблицу векторов прерываний. [12]
Обслуживание таких переходов осуществляется точно так же, как и аппаратных прерываний. То есть для выполнения данного перехода процессор обращается к таблице векторов прерываний и получает из нее по номеру прерывания адрес памяти, в который ему необходимо перейти. Адрес вызова прерывания и содержимое регистра состояния процессора ( PSW) сохраняются в стеке. [13]
![]() |
Схема одноплатного микроконтроллера мМС1212. [14] |
В составе подсистемы памяти МК мМС1212 ОЗУ используется для хранения данных, ПЗУ-для хранения констант и программного кода. ОЗУ статического типа реализовано на четырех БИС К541РУ2 ( 1Кх4бит) [39] и размещено в области ОООООН - 007FFH 1М - байтового адресного пространства памяти МК. Первая половина ОЗУ резервируется под организацию 256-эле-ментной таблицы векторов прерываний, вторая предназначена для организации системного стека и хранения ряда переменных. Реальный раздел резидентного ОЗУ между таблицей прерываний и оставшейся областью пользователя зависит от конкретного приложения МК. [15]