Помощь в написании студенческих работ
Антистрессовый сервис

Реализация методики обмена данными между между электронно-вычислительной машиной и внешним устройством с прерыванием программы в автоматизированных системах на основе электронно-вычислительных машин семейства IBM (в среде Borland Pascal)

РефератПомощь в написанииУзнать стоимостьмоей работы

Сохранение и восстановление регистров ЦП в программе обслуживания прерываний выполняется с помощью указания специального заголовка процедуры обслуживания прерываний. Все оперативные программы обслуживания прерываний оформляются как процедуры и должны иметь в заголовке ключевое слово Interrupt: Фоновая программа оформляется как главная программа, оперативная — как процедура без параметров… Читать ещё >

Реализация методики обмена данными между между электронно-вычислительной машиной и внешним устройством с прерыванием программы в автоматизированных системах на основе электронно-вычислительных машин семейства IBM (в среде Borland Pascal) (реферат, курсовая, диплом, контрольная)

Фоновая программа оформляется как главная программа, оперативная — как процедура без параметров. Переменные для совместного использования фоновой и оперативной программами должны быть объявлены глобальными до объявления оперативной программы.

Установка вектора прерываний на программу обслуживания ВУ (т.е. запись вектора прерываний по определенному адресу) выполняется с помощью стандартной процедуры Turbo Pascal из модуля DOS (WINDOS):

Procedure SetlntVec (IntNo: byte; IntProcAddr: Pointer);

где IntNo — номер типа прерывания = АВП = 4 * IntNo; IntProcAddr — вектор прерывания, содержит начальный адрес программы обработки прерывания; тип Pointer — указатель — переменная, которая в качестве своего значения содержит адрес байта в памяти, и этот адрес должен быть адресом первой команды оперативной программы. Указатель — совокупность двух слов, трактуемых как сегмент и смещение.

При установке нового вектора прерываний старый вектор будет утерян, если его предварительно не сохранить. Сохранение старого вектора прерывания в некоторой переменной выполняется процедурой из того же модуля DOS (WINDOS):

Procedure GetIntVec (IntNo: byte; Var О Id IntProcAddr: pointer);

Сохранение и восстановление регистров ЦП в программе обслуживания прерываний выполняется с помощью указания специального заголовка процедуры обслуживания прерываний. Все оперативные программы обслуживания прерываний оформляются как процедуры и должны иметь в заголовке ключевое слово Interrupt:

Procedure IntXXX; Intemipt;

Ключевое слово Intemipt приводит к генерации машинных команд, обеспечивающих сохранение в стеке всех регистров ЦП при входе в процедуру IntXXX и извлечение их из стека при ее завершении. Заканчивается такая процедура командой IRET — возврат из прерывания, а не обычной командой возврата из подпрограммы RET, что позволяет ЦП восстановить содержимое СчК и РСП.

Установку/сброс флага разрешения прерываний в регистре Flags центрального процессора можно выполнить с помощью вставки ассемблерного текста в программу:

asm STI end; {IF=1, прерывания разрешены.} asm CLI end; {IF=0, прерывания запрещены.}.

Показать весь текст
Заполнить форму текущей работой