Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SP_MET_2.DOC
Скачиваний:
20
Добавлен:
02.05.2019
Размер:
689.66 Кб
Скачать

2. Приемы системного программирования 57

2.1. Управляющие структуры 57

1.1.26. Структуры IF... THEN... ELSE 57

1.1.27. Структуры CASE 57

1.1.28. Конечные автоматы 58

1.1.29. Циклы 59

2.2. Процедуры и функции 60

1.1.30. Передача параметров 60

1.1.31. Локальные переменные 64

Рис. 5. Стек при вызове процедуры foobar 65

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

Рис. 6. Процедура обслуживания прерывания 66

1.1.32. Обработчики прерываний 66

Функция DOS 25h — Установить вектор прерывания 67

Функция DOS 35h — Получить содержимое вектора прерывания 67

1.1.33. Прерывания от внешних устройств 68

1.1.34. Взаимодействие прикладных и системных обработчиков прерываний 68

2.4. Резидентные программы 70

1.1.35. Системные средства организации резидентных программ 70

1.1.36. Взаимодействие с резидентной программой 71

2.5. Драйверы устройств в DOS 72

ЛИТЕРАТУРА 77

Введение

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

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

Кроме того, значительную роль при практическом программировании играет эффективность непосредственно процесса программирования, которую можно рассматривать как некоторую функцию качества конечных программ и времени, затраченного на их создание. Лишь небольшая часть возникающих на практике задач действительно требует использования исключительно машинных команд. При решении остальных разумно воспользоваться готовым стандартным инструментарием, предоставляемым базовой системой ввода-вывода (BIOS) и операционной системой (ОС). Это не только значительно ускорит процесс создания и отладки программ, но и, вероятнее всего, во многом обеспечит совместимость с последующими версиями данной ОС.

Вообще, среда подготовки и выполнения программ, особенно системных, играет очень важную роль для системного программиста. BIOS предоставляет процедуры и драйверы для работы со стандартными устройствами компьютера, а ОС, помимо предоставления сервисных функций, определяет целый ряд свойств и особенностей программы. К ним, в частности, относятся способы обращения к ресурсам, как аппаратным (пространство памяти и процессорное время), так и программным (сервисным службам ОС, библиотекам функций и т. п.), возможность и механизмы взаимодействия программ между собой и реагирования на возникающие в системе события, форматы объектного и исполнимого модулей и пр. Как следствие, каждая из распространенных на сегодня ОС приносит свою идеологию создания и поведения программ, а во многом также и цели, которые имеет смысл решать с помощью системных программ.

Одним из популярных семейств ОС, использующихся сегодня на ПК, является семейство дисковых операционных систем DOS (Disk Operating System). Имеется несколько вариантов этой системы, разработанных различными фирмами и совместимых между собой — MS-DOS, DR-DOS, Novell DOS и др. Кроме того, система DOS поставляется в виде части систем Microsoft Windows 95 и 98. DOS предоставляет программам максимальную свободу действий, практически никак не ограничивая доступ к процессору, памяти и внешним устройствам. По этой причине система DOS хорошо подходит для того, чтобы близко познакомиться с устройством компьютера и возможностями, которые может использовать программа на ассемблере, но которые часто скрываются компиляторами с языков высокого уровня и более совершенными операционными системами.

Таким образом, в данной методической разработке рассматриваются часто используемые средства создания работоспособных системных программ, а именно: сервисные функции DOS и BIOS, предназначенные для решения различных задач; методы работы с такими устройствами, как клавиатура, экран, мышь, таймер, последовательный и параллельный порты компьютера; работа с файлами и управление памятью и процессами в различных условиях; организация программ обработки прерываний, резидентных программ и драйверов. Кроме того, уделено внимание вопросам технологии модульного программирования и организации управляющих структур.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]