Приклад 1. Функції операційної системи MS-DOS: визначення версії ОС

Лабораторна робота №1

Функції операційної системи MS-DOS: визначення версії ОС

Мета роботи: Практичне вивчення роботи основних функцій операційної системи MS-DOS.

1.1 Короткі теоретичні відомості

Звернення до функцій DOS та BIOS здійснюється за допомогою програмних переривань (команда INT). Система переривань машин типу IBM РС в принципі не відрізняється від любої іншої системи векторизованих переривань. Самий початок оперативної пам’яті від адреси 0000h до 03FFh відводиться під вектори переривань – чотирьох байтові області, в яких зберігаються адреси програм обробки переривань (ПОП). У два старші байти кожного вектору записується сегментний адрес ПОП, а у два молодші - відносний адрес точки входу в ПОП у сегменті (зміщення). Вектори, як і відповідні їм переривання, мають номера, що називаються типами, причому вектор з номером 0 (вектор типу 0) розміщується з адреси 0, вектор типу 1- з адреси 4, вектор типу 2 - з адресу 8 і т.д. ( від ( N*4 до ...)). Всього у виділеній під вектори області пам’яті розміщується 256 векторів. Отримавши сигнал на виконання ПОП з визначеним номером, процесор зберігає в стеку програми, що виконується, слово флагу, а також сегментний та відносний адрес сегменту команд (CS та IP) та загружає CS та IP з відповідного вектора переривань, здійснюючи перехід на ПОП. ПОП звичайно закінчується командою повернення з переривання IRET, що виконує зворотні дії - загрузку IP та CS і регістру флагів із стеку, що приводить до повернення в основну програму у точку, де вона була перервана.

Вимоги на виконання векторів переривань можуть мати різну природу. Незалежно від джерела, ПОП завжди виконується однаково. Більша частина векторів переривань зарезервована для виконання визначених дій; частина з них автоматично заповнюється адресами системних програм при завантаженні програми.

У системі передбачено переривання, що повертає номер версії MS-DOS. Це число може використовуватися для перевірки виконання програми, програма може при старті видавати звістку про помилку, якщо їй потрібна інша версія MS-DOS.

Призначенням функції 3306h переривання 21h є отримання версії DOS. Функція повертає номер версії MS-DOS, що використовується.

При виклику:

AH=3306h

При поверненні:

BL= номер основної версії

BH= номер підверсії

DL= ревізія (біти 2-0, інші – 0)

DH= прапорці версії

Біт 3: DOS у ROM

Біт 4: DOS у HMA

AL=FFh якщо версія DOS < 5.0

Приклад 1.

Реалізація визначення версії MS-DOS.

......

MOV AH,30h

INT 21h

CMP BL,5; перевірка на версію 5.x

JL Wrong_DOS; якщо версія менша 5.0, то видати повідомлення

......

Використане переривання змінює зміст регістрів ВХ та СХ, в які повертається значення 0.

1.2 Домашнє завдання

Використовуючи конспект лекцій, рекомендовану літературу, вивчити роботу функції 3306h INT 21h, структуру та образ пам’яті програм типу .ЕХЕ та .СОМ, структуру та завантаження ОС MS DOS, основи програмування на мові асемблеру, роботу простих функцій вводу з клавіатури та виводу на екран текстової інформації. Ознайомитися зі змістом та порядком виконання роботи.

1.3 Хід виконання роботи

Написати та відлагодити програму, що визначає версію MS-DOS.

1.4 Зміст звіту

1.4.1 Сформульована мета роботи.

1.4.2 Алгоритм функціонування програми.

1.4.3 Лістінг готової програми.

1.4.4 Карти розподілу пам’яті.

1.5 Контрольні запитання

1.5.1 Структура та образ пам’яті програми *.ЕХЕ.

1.5.2 Структура та образ пам’яті програми *.СОМ.

1.5.3 Використання утиліти MS-DOS EXE2BIN. Порядок трансляції, компоновки (редагування зв'язків) та запуску на виконання.

1.5.4 Як відбувається звернення до функцій DOS та BIOS.

1.5.5 Пояснити склад карти пам’яті (файл типу *.MAP).

1.5.6 Пояснити роботу функції 3306h INT 21h. Принцип та джерело отримання необхідної інформації.

1.5.7 Структура PSP.

1.5.8 Визначення операційної системи. Завантаження ОС.


Наши рекомендации