КаталогИндекс раздела
НазадОглавлениеВперед


1. Системное программное обеспечение ПЭВМ

Видимо, нелишним будет напомнить здесь об уровнях программного доступа к средствам вычислительной системы (рис.1.1).
Под аппаратными средствами здесь понимаются только программно доступные компоненты аппаратуры ПЭВМ, а именно: регистры микропроцессора; оперативная память (с возможностью обращения по абсолютным физическим адресам); порты ввода-вывода; система прерываний (генерация прерываний и их программная обработка). Средства доступа аппаратного уровня обеспечиваются в основном системой команд микропроцессора.

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



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

Перед выполнением в программе пользователя команды INT 21H программист должен занести в регистр AH некоторый код - номер той программы из состава DOS, которую требуется выпол- нить. Остальные регистры, как и при обращении к BIOS, используются для передачи параметров. Принято говорить о "функции DOS номер NN", имея в виду обращение к прерыванию 21 с кодом NN в регистре AH. Некоторые функции созданы разработчиками системы "для внутреннего использования": они вызываются из других функций и программ DOS, их описания отсутствуют в документации фирм IBM и Microsoft и, видимо, не предполагалось обращение к ним из программ пользователя.

Несмотря на это, в некоторых источниках можно найти описание ряда недокументированных функций DOS. Для некоторых задач обращение к недокументированной функции DOS является полезным, а возможно, и единственным путем решения, но следует всегда иметь в виду, что одинаковая работа одной и той же недокументированной функции в разных версиях DOS не гарантируется.
Существуют различия между наборами функций, доступными в разных версиях DOS. Как правило, новая версия наследует все возможности предшествовавшей и расширяется дополнительными возможностями. Наиболее значительным нам представляется скачок между версиями 2 и 3. И дело тут даже не столько в существенном расширении возможностей, а в изменении самого подхода разработчиков: начиная с версии 3.0 в создании системы стали использоваться методы, применявшиеся для больших вычислительных систем. Поэтому далее в нашем пособии там, где упоминаются "старые" и "новые" ("современные") версии DOS, имеются в виду версии до 3.0 и от 3.0 включительно.

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

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


КаталогИндекс раздела
НазадОглавлениеВперед