АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Структура записи в векторе прерываний

Читайте также:
  1. II. СТРУКТУРА КВАЛИФИКАЦИОННОЙ РАБОТЫ
  2. III. СТРУКТУРА И ПОРЯДОК ФОРМИРОВАНИЯ СТУДЕНЧЕСКОГО СОВЕТА
  3. III. Структура Клуба
  4. III. СТРУКТУРА, РУКОВОДЯЩИЕ И КОНТРОЛЬНЫЕ ОРГАНЫ КПРФ
  5. IV. ОРГАНИЗАЦИОННАЯ СТРУКТУРА ПРОФСОЮЗА
  6. IY. ОРГАНИЗАЦИОННАЯ СТРУКТУРА И ОРГАНЫ УПРАВЛЕНИЯ КЛУБА
  7. VI. ОРГАНИЗАЦИОННАЯ СТРУКТУРА ПАРТИИ.
  8. А) структура текстів драм
  9. Активные операции коммерческих банков, их структура.
  10. Аналоговый и цифровой звук. Аппаратное обеспечение для создания записи, копирования звука.
  11. Атомная структура материи
  12. Аудиозаписи выкладывать нет смысла, т.к. на них слышно только мои некоторые реплики. Так же и со знакомством на улице.

 

1-й байт 2-й байт 3-й байт 4-й байт
Смещение Сегмент

Для получения адреса обработчика прерывания № nh необходимо:

1) по номеру прерывания определить адрес первого байта «четвер­ки» в векторе прерываний (он равен п*4);

2) выбрать 4 байта из 0 сегмента основной памяти, начиная с байта 4nh;

3) два последних байта поместить в регистр CS;

4) два первых байта поместить в счетчик команд IP.

После этого начнет выполняться первая команда обработчика пре­рывания № nh.

Таблица векторов прерываний используется не только для хране­ния адресов обработчиков прерываний, но и для указания на места хранения в ОП служебной информации. Для этой цели служат векто­ры прерываний IDh, lEh, IFh, 41h, 43h, 46h, 4Ah. Так, вектор IDh содержит адрес таблицы параметров видеосистемы (а не обработчи­ка прерывания); вектор lEh - таблицы параметров дискет; вектор 1Fh- адрес знакогенератора адаптера CGA и т.д.

Команда INT, кроме определения адреса обработчика прерыва­ний, выполняет следующие действия:

• сохраняет в стеке часть слова состояния процессора:

(SP) < — (SP) - 2

(вершина стека) < - (регистр флагов)

(SP) <— (SP) - 2

(вершина стека) <— (CS)

(SP) <— (SP) - 2

(вершина стека) < — (IP)

• сбрасывает флаги разрешения прерывания и трассировки:

(IF) < — О

(TF) <— О

• заносит адрес точки входа обработчика прерываний в регистры CS.HIP:

(CS) <— (номер прерывания * 4 + 2)

(IP) < — (номер прерывания * 4)

Команда INT относится к парным командам - каждый обработчик прерывания заканчивается командой IRET (возврат из прерывания). По команде IRET (без параметров) выполняются следующие действия:

(IP) < — (вершина стека)

(SP) <— (SP) +2

(CS) <— (вершина стека)

(SP) < — (SP) + 2

(регистр флагов) < — (вершина стека)

(SP) < — (SP) + 2

Каждый обработчик прерываний BIOS и DOS (Windows) может выполнять несколько различных функций. В команде INT никак не определяется, какую именно функцию должен выполнить обработчик прерываний. Поэтому перед обращением к команде INТ в регистры микропроцессора должна быть занесена информация, определяющая, какую функцию необходимо выполнить.

Например, по команде INT I3h могут быть выполнены следую­щие функции:

00h — сброс дисковой системы;

0lh — определение состояния дисковой системы (успешное завершение, некорректная команда, не найдена адресная метка и т.д.)|

02h — чтение секторов в основную память;

03h — запись секторов из основной памяти;

04h — контроль секторов (есть ошибка — нет ошибки);

05h — форматирование дорожки;

06h — для жесткого диска — форматирование дорожки с установкой флагов плохих секторов;

07h — для жесткого диска — форматирование диска, начиная с указанной дорожки;

08h — определение типа и текущих параметров диска и т.д.

Нужно иметь в виду, что одни и те же номера функций могут обозначать разные операции для различных устройств; некоторые функ­ции отсутствуют в ранних версиях операционной системы, а некото­рые — претерпели изменения в последующих версиях.

При выполнении команды INT номер функции должен содержать­ся в регистре АН микропроцессора. Остальные регистры должны! включать необходимые для этой функции параметры. Например, для функции 02h остальные регистры микропроцессора должны содер­жать:

AL — число читаемых секторов;

СН — номер дорожки, на которой расположены читаемые сектора;

CL — номер сектора;

DH — номер головки;

DL — номер дисковода;

ES:BX — адрес буфера для чтения.

В результате выполнения этой функции при возникновении ошиб­ки флаг CF устанавливается в 1; в регистр AL заносится число счи­танных секторов, в регистр АН записывается код состояния, сформи­рованный после окончания операции:

00 — успешное завершение;

01 — некорректная команда;

02 — адресная метка не найдена;

FF — сбой операции опроса (для жесткого диска).

Кроме команд INT и IRET, в IBM PC с прерываниями работают! команды CLI (запрещение маскируемых прерываний) и STI (отмена запрета прерывания).

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)