рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Обработка прерываний

Обработка прерываний - раздел Информатика, Элементы Системного Программирования На Паскале. Ошибка! Закладка Не ...

Элементы системного программирования на Паскале. Ошибка! Закладка не определена.

Распределение памяти. 1

Специальные адреса памяти. 2

Переменная Absolute. 3

Массивы Mem... 3

Прерывания. 4

Обработка прерываний. 5

Использование прерываний в Паскале. 5

Контрольные вопросы.. 6

Лекция № 26

Доступ к системным ресурсам

Операционная система представляет собой программный комплекс (набор взаимосвязанных программ), который выполняет две основные функции: ­ обеспечение удобного интерфейса (взаимодействия) между пользователем или… ­ эффективное управление ресурсами компьютера, в число которых входят процессор, оперативная память, массив жестких…

Основными элементами системного программирования являются регистры, сегменты и прерывания.

Регистр – это внутреннее запоминающее устройство процессора для временного хранения обрабатываемой или управляющей информации. В Паскале имеется специальный тип Registers, который описывается следующим образом:

 

type Registers = record {Registers record used by Intr and MsDos}

Case Integer of

1: (AL, AH, BL, BH, CL, CH, DL, DH: Byte); end; Сегмент – это область памяти размером до 64 Кбайт, которая начинается по любому адресу, кратному 16. В области памяти,…

Распределение памяти

Рис.1. Логическая структура 1-ого Мбайта оперативной памяти

Специальные адреса памяти

Таблица 1. Некоторые специальные адреса MS-DOS смещение размер Назначение $0010 word список… В таблице 2 приведено описание байта состояния клавиатуры (адрес $0040:$0017).… Таблица 2. Байт состояния клавиатуры Бит событие нажата правая клавиша Shift …

Var

str:string[10];

len: byte absolute str; {len налагается на str, т.е. len будет содержать значение первого байта переменной str, содержащего текущую длину строки}

i:integer;

c:char;

Begin

c:='a';

str:='a';

writeln(str);

writeln('length of string =',len);

For i:=1 to 3 do

Begin

str:=str+succ(c);

writeln(str);

writeln('length of string =',len);

c:=succ(c);

end;

Readln

End.

Результат работы:

a

length of string = 1

ab

length of string = 2

abc

length of string = 3

abcd

length of string = 4

 

Для работы с абсолютными переменными в языке Паскаль имеется ряд стандартных подпрограмм:

Addr(Id) – возвращает адрес расположения первого байта переменной с идентификатором Id. Результат имеет длину два слова и содержит базовый адрес и величину смещения.

Ofs(Id) – возвращает величину смещения в сегменте первого байта указанной переменной, процедуры или функции, определяемой Id. Результат имеет целочисленное значение.

Seg(Id) – возвращает адрес сегмента, содержащего первый байт переменной с идентификатором Id. Результат имеет целочисленный тип.

CSeg– возвращает базовый адрес сегмента кода. Результат имеет целочисленный тип.

DSeg– возвращает базовый адрес сегмента данных. Результат имеет целочисленный тип.

Массивы Mem

В Турбо Паскале имеется пять предварительно объявленных массивов: MEM, MEMW, MEML, PORTи PORTW. Первые три обеспечивают доступ к любому участку оперативной памяти по абсолютному адресу, два других - доступ к портам ввода-вывода.

Компонентами массива MEM являются данные типа BYTE, массива MEMW - типа WORD, массива MEML - типа LONGINT. Обращение к элементам этих массивов, т.е. их индексация, имеет специальный вид: каждый индекс представляет собой абсолютный адрес и состоит из двух выражений типа WORD; первое дает сегментную часть адреса, второе - смещение; выражения разделяются двоеточием. Например:

Меm[$0000:$1000] := 0;

DataMem := MemWfSeg(p):0fs(p)];

MemLong :.= MemL [64 : i*SizeOf (real) ] ;

Как следует из технического описания операционной системы MS-DOS, в памяти по адресу $F000:$FFFE располагается байт-указатель типа компьютера. Следующая программа прочтет этот байт и выведет на экран тип вашего ПК.

Пример

begin

Write (' Тип компьютера: ') ;

case Mem [$FOOO:$FFFE] of

$FF : WriteLn ('PC');

$FE : WriteLn('XT');

$FD : WriteLn('PCjr');

$FC : WriteLn('AT');

$F9 : WriteLn('совместимый с PC')

End;

readln

end.

Компонентами массива PORT являются байты (тип BYTE), а массива PORTW - слова (тип WORD). Индексами этих массивов должно быть выражение типа BYTE, указывающее номер нужного порта. Присвоение значения элементу массива PORT или PORTW приведет к записи в порт, упоминание элемента в выражении - к чтению из порта. Компоненты массивов PORT и PORTW нельзя передавать в качестве параметров процедурам или функциям. Эти идентификаторы не употребляются без индексных выражений.

Пример.

Var z:byte;

Begin

Z:=mem[0000:0001]; {чтение ячейки памяти}

Writeln(z); {вывод считанного значения}

Mem[0000:0001]:=5; {изменение значения ячейки памяти}

Writeln(Mem[0000:0001]) {вывод нового значения}

End.

Когда в память требуется занести или считать по указанному адресу слово (два байта) или двойное слово (четыре байта) используются массивы MemW и MemL соответственно.

Отметим, что для указания базового сегмента и смещения в некоторых случаях удобно использовать стандартные функции Seg и Ofs:

Mem[Seg(<имя_переменной>):Ofs(<имя_переменной>)]:=<значение>.

Прерывания

Прерывания могут быть внешними и внутренними. Внешние прерывания вызываются внешними по отношению к МП событиями и являются непланируемыми… Под системой прерываний понимают совокупность программных и аппаратных… If - флаг прерываний – предназначен для запрещения аппаратных прерываний по входу intr, если if=1, то МП обрабатывает…

Обработка прерываний

1-ый этап должен обеспечить временное прекращение выполнения текущей программы, при этом должна сохраниться возможность продолжения работы программы… 2-ой этап заключается в определении источника прерывания и вызова… · По номеру источника прерывания определяет смещение в таблице векторов прерываний = n*4, где n от 0 до 255 и…

Использование прерываний в Паскале

  Intr (IntNo : byte; var reg : registers), где IntNo – номер прерывания;

Контрольные вопросы

 

  1. Дайте определение основным элементам системного программирования. Приведите их характеристику.
  2. Как происходит распределение памяти. С какого адреса начинается выполнение операций по обслуживанию периферийных устройств?
  3. Опишите возможности переменной Absolute. Формат. Примеры.
  4. Применение массива Mem. Примеры.
  5. Система прерываний. Виды.
  6. Дать описание этапам обработки прерываний.
  7. Формат процедур INTR, MSDOS. Примеры.

 

– Конец работы –

Используемые теги: обработка, прерываний0.053

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Обработка прерываний

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ по технико-экономическому обоснованию дипломных проектов и работ специальности 220200 Автоматизированные системы обработки информации и управления Методические указания для специальности 2202 Автоматизированные системы обработки инфо
Российский химико технологический университет... им Д И Менделеева... Новомосковский институт Издательский центр...

МЕХАНИЧЕСКАЯ КУЛИНАРНАЯ ОБРАБОТКА СЫРЬЯ. ТЕПЛОВАЯ КУЛИНАРНАЯ ОБРАБОТКА ПРИГОТОВЛЕНИЕ И ОТПУСК БЛЮД
У Эскулапа прославленного врача древности были всесильные помощницы дочка Гигиена и кухарка Кулина услаждавшая дни...

Термическая обработка и термомеханическая обработка обсадных труб из стали 36Г2С
По способу производства трубы подразделяют на литые, бесшовные и сварные. Основной объём производства составляют бесшовные и сварные.По назначению трубы… Так, для труб нефтяного сортамента условия эксплуатации весьма разнообразны: интервал рабочих температур от –60 до…

Цель обработки ИС - защищать приложения от воздействия неизбежно возникающих ошибок
Что такое quot исключение quot... Все операции предусмотренные в программе контролируются операционной системой Если ОС не может выполнить ту или иную...

По дисциплине Системы цифровой обработки информации
Севастопольский национальный технический университет...

Стандартные процедуры и функции обработки файлов
Файлы Файловые переменные Ошибка Закладка не определена... Стандартные процедуры и функции обработки файлов... Текстовые файлы...

Алгоритмы обработки символьной информации. 1
Алгоритмы обработки символьной информации... Операция присваивания... Операция сцепления...

Система обработки данных состоит из двух основных частей
Для повышения безопасности воздушного движения требуются системы с большой информативностью высокой степенью автоматизации и надежности Всем этим... Система обработки данных состоит из двух основных частей...

Организации процедур анализа и обработки информации с учетом характера связей между объектами на основе классификации объектов
Информационное обеспечение ИС является средством для решения следующих... однозначного и экономичного представления информации в системе на основе кодирования объектов...

Мероприятия по приведению информации к виду, пригодному для обработки на ЭВМ
На сайте allrefs.net читайте: Мероприятия по приведению информации к виду, пригодному для обработки на ЭВМ...

0.035
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам