- •Московский институт электронной техники
- •Лабораторная работа 1.
- •Краткие теоретические сведения
- •Определение типа э в м.
- •Определение объема оперативной памяти.
- •Определение типа адаптера дисплея.
- •Ревизия периферийных устройств.
- •Домашнее задание.
- •Пример вызывающей программы
- •Управление выводом символов в си
- •Режим графики
- •Определение времени работы программы
- •Домашнее задание
- •Порядок выполнения работы
- •Лабораторная работа n4 Методы защиты программ и данных краткие теоретические сведения
- •1. Шифрование путем замены.
- •2. Шифрование путем перестановок.
- •3. Шифрование с помощью ключа.
- •Домашнее задание
- •Порядок выполнения работы
- •Лабораторная работа n 5 Отладчик d e b u g. Краткие теоретические сведения
- •Что такое debug
- •Команды debug
- •Некоторые команды ассемблера
- •Небольшие примеры
- •Домашнее задание
- •Порядок выполнения работы
- •Лабораторная работа 6 Вывод точечной графики для ega адаптера. Циклы и процедуры в ассемблере. Краткие сведения о видеосистемах ibm pc.
- •Программа на ассемблере
- •Пример программы
- •Порядок выполнения работы
- •Лабораторная работа 7 Генерация звука краткие теоретические сведения
- •Пример программы
- •Домашнее задание
- •Небольшие примеры Создание файла
- •Домашнее задание
- •Порядок выполнения работы
- •Литература
Московский институт электронной техники
С.А. ЛУПИН
СБОРНИК ЛАБОРАТОРНЫХ РАБОТ
по курсу
ОПЕРАЦИОННЫЕ СИСТЕМЫ ЭВМ
Кафедра “Информационно-управляющих вычислительных систем”
МИЭТ 1998
Автор выражает благодарность студентам кафедр ИУВС и МЭ, принявшим активное участие в подготовке лабораторных работ, а также преподавателям кафедры Максимчук Т.Н. и Березиной Н.В. за полезные советы и замечания.
Для выполнения лабораторных работ Вам потребуются следующие программные средста:
- транслятор Си (работы 1 - 4);
- отладчик Debug (работа 5);
- транслятор ассемблера (работы 6-8).
Описание лабораторных работ в формате MS WORD и тексты примеров программ в формате MS DOS можно получить у преподавателя.
Список литературы приведен в конце сборника. Если Вы хотите более глубоко изучить рассматриваемые в работах вопросы, то необходимо прочитать и дополнительную литературу.
Студенты, имеющие дома компьютер могут выполнить лабораторные работы самостоя-тельно, согласовав условия сдачи работ с преподавателем.
Лабораторная работа 1.
Определения конфигурации вычислительной системы для IBM PC.
Краткие теоретические сведения
При выполнении программы пользователя зачастую необходимо уметь определить какие системные ресурсы могут быть ей доступны.
Под системными ресурсами будем понимать следующее:
1 - тип ЭВМ;
2 - объем оперативной памяти;
3 - номер версии MS-DOS;
4 - тип адаптера дисплея;
5 - состав и параметры периферийного оборудования.
Существует несколько методов, которые позволяют провести ревизию системных ресурсов:
1 - использование соответствующих функций языка программирования;
2 - использование средств операционной системы;
3 - использование функций BIOS;
4 - непосредственный анализ содержимого ячеек памяти, в которых хранятся интере-сующие нас значения.
В настоящей лабораторной работе мы рассмотрим последние три.
Определение типа э в м.
Определение типа ЭВМ необходимо из-за того, что существует проблема программной совместимости различных типов IBM.
Информация о типе ЭВМ хранится в ПЗУ BIOS по адресу F000:FFFC.
Для доступа к ячейке памяти (байту) воспользуемся функцией языка Си peekb, которая возвращает содержимое байта памяти, расположенного по указанному адресу.
Функция peekb имеет следующий вид:
unsigned char peekb (unsigned int seg, unsigned int offset) , где
seg - сегмент памяти,
offset - смещение.
Для различных типов IBM определены следующие константы:
FF - ЭВМ типа IBM PC;
FE - ЭВМ типа IBM PC/XT;
FD - ЭВМ типа IBM PCjr;
FC - ЭВМ типа IBM PC/AT.
ОПРЕДЕЛЕНИЕ ВЕРСИИ MS-DOS.
По мере развития MS-DOS ее возможности расширялись. Программы, использующие функции старших версий операционной системы могут не работать под управлением началь-ных версий.
Для определения версии операционной системы служит функция 30h прерывания 21h. Вызов прерывания в Си производится с помощью функции geninterrupt (int intr_num), опреде-ленной в файле dos.h ( intr_num - номер прерывания).
Для получения номера версии DOS в регистр _ AH необходимо послать номер функции ( 30h ) и выполнить прерывание 21h. После выполнения прерывания старший номер версии DOS возвращается в регистр _AL, а младший в _AH.
В языке Си зарезервированы переменные osmajor и osminor, которые возвращают стар-ший и младший номер версии DOS, а также переменная version, возвращающая полный номер версии DOS. Эти переменные имеют тип - unsigned char.