Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Системное программирование Лекции 1.doc
Скачиваний:
210
Добавлен:
26.05.2015
Размер:
1.19 Mб
Скачать

1.1.3. Интерпретация

Вариант интерпретации подразумевает прямое исполнение исходного модуля.

Интерпретация ‒ реализация смысла некоторого синтаксически законченного текста, представленного на конкретном языке.

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

Примеры интерпретаторов: языки процедур (sell, REXX), JVM.

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

  • Макрообработка и трансляция

  • Редактирование связей

  • Отладка

Типовое применение кросс-систем ‒ для тех случаев, когда целевая вычислительная среда просто не имеет ресурсов, необходимых для подготовки программ, например, встроенные системы.

Программные средства, обеспечивающие отладку программы на целевой системе можно также рассматривать как частный случай кросс-системы.

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

Неотъемлемой частью персональных ЭВМ является ПЗУ, в котором записана Базовая Система Ввода-Вывода (BIOS ‒ Basic Input Output System). Дополнительная часть BIOS располагается на внешней памяти и переписывается в ОЗУ в процессе загрузки. BIOS содержит программы обслуживания периферийного оборудования и таблицы данных и составляет следующий уровень доступа к системным возможностям.

Прерывание (англ. interrupt) ‒ сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается, и управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код.

Доступ к средствам BIOS обеспечивается программными прерываниями. Из 256 возможных в ПЭВМ прерываний прерывания с номерами от 0 до F (здесь и далее все номера прерываний шестнадцатеричные) - аппаратные. Прерывания с номерами от 10 до 1F могут генерироваться только программным путем при помощи команды микропроцессора INT и приводят к выполнению той или иной программы из состава BIOS. Перед обращением к BIOS программист должен занести в определенные регистры входные параметры для программы BIOS, выходные параметры BIOS также возвращает через регистры. Выполняемые функции, а также входные и выходные регистры определены отдельно для каждого прерывания BIOS.

Диапазон программных прерываний от 20 до 3F зарезервирован для обращений к операционной системе MS DOS (в дальнейшем - просто DOS). Программы DOS для доступа к аппаратным средствам используют средства BIOS и обеспечивают более высокий по сравнению с BIOS уровень интеграции функций. Наиболее часто используемое прерывание при обращениях к DOS - 21.

Рисунок 2 ‒ Уровни программного доступа к средствам ПЭВМ

Рассмотрим, как распределяется адресное пространство памяти. Как известно, адресное пространство микропроцессора 8086 имеет размер 1 Мбайт. Это адресное пространство распределяется таким образом, как показано на рис.3(младшие адреса - внизу).

Рисунок 3 ‒ Распределение адресного пространства ПЭВМ (все адреса шестнадцатеричные).

Адреса c 0000:0000 по 0000:03FF (1 Кбайт) занимает таблица векторов прерываний. Отметим, что векторы могут содержать адреса программ-обработчиков, адреса таблиц данных или быть свободными. По спецификациям DOS вектора с номерами от 0x60 по 0x67 свободны и могут заниматься программами пользователей. Однако если пользователю необходимо использовать собственное прерывание, ему нельзя выбрать любой вектор из указанного диапазона без проверки. В этот момент в памяти ПЭВМ могут находиться какие-то резидентные программы (например, драйверы-русификаторы), которые могут использовать эти же вектора. Свободные векторы (а они могут найтись и вне специфицированной области) найти легко: эти векторы содержат нулевые адреса или константу NULL Турбо-Си.

Адреса с 0040:0000 по 0040:00FF (256 байт) называются областью памяти BIOS. В некоторых описаниях эти адреса называются областью памяти ROM BIOS. Приставка ROM (Read Only Memory, т.е. ПЗУ) говорит не о том, что эта память защищена от чтения, а о том, что данные в этой области используются программами, находящимися в ПЗУ. Область памяти BIOS содержит данные, характеризующие состав, режим работы и текущее состояние оборудования ПЭВМ. Эти данные устанавливаются BIOS при загрузке и изменяются программами BIOS в процессе функционирования ПЭВМ. Доступ к этим данным может производиться либо через обращение к известным адресам памяти, либо (предпочтительнее) через прерывания BIOS.

Адреса с 0050:0000 до 0050:FFFF ‒ область памяти DOS, содержащая на фиксированных местах некоторые переменные DOS.

Далее вплоть до адреса 9000:FFFF (640 Кбайт) - область памяти, занимаемая компонентами DOS и распределяемая DOS для загружаемых программ (резидентных и нерезидентных).

Адресное пространство с A000:0000 по B000:FFFF носит название видеопамяти. Физически она расположена на плате дисплейного адаптера. Реально, в зависимости от типа адаптера, может иметься лишь часть этой области. Для монохромного адаптера MDA требуется только 4 Кбайт, начиная с адреса B000:0000. Для цветного - CGA - 16 Кбайт, начиная с B800:0000. Видеопамять для адаптеров EGA и VGA начинается с адреса B800:0000 в текстовом режиме и с A000:0000 - в графическом.

Память в адресном пространстве с C000:0000 по F600:0000 не обязательно присутствует в ПЭВМ. В этой адресной области размещаются расширения ПЗУ.

Во всех машинах по адресу C000:0000 размещается ПЗУ дисплейного адаптера, а в машинах типа XT также по адресу C800:0000 ‒ ПЗУ жесткого диска.

Адресное пространство с F600:0000 по FD00:0FFF предназначено для ПЗУ интерпретатора Бэйсика, имеющегося только на ПЭВМ производства фирмы IBM.

Наконец, от FE00:0000 и до конца адресного пространства расположено ПЗУ BIOS. BIOS в ПЗУ содержит программы, выполняющие следующие функции:

  • тест самопроверки;

  • начальный загрузчик;

  • обслуживание клавиатуры;

  • обслуживание дисплеев (CGA и MDA);

  • обслуживание последовательных портов;

  • служба времени;

  • печать экрана.