Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_СистПрогр_ЛР.DOC
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
2.16 Mб
Скачать

19.3 Завдання на роботу

1 Написати програму на Turbo Assembler для виконання завдання відповідно до заданого варіанту в табл.19.3.

Таблиця 19.3 – Варіанти завдань

Варіант

Завдання

1

2

1

Створити папку, створити в ньому файл та записати в цей файл ваше ім’я

2

Вивести на екран поточний диск та папку, поміняти його на інший та знову вивести на екран

Продовження таблиці 19.3

1

2

3

Вивести на екран кількість кластерів на диску, кількість секторів в кластері та кількість байт в секторі. Підрахувати та вивести на екран загальний об’єм диску в байтах

4

Вивести на екран об’єм вільного місця на диску

5

Створити каталог. Перейменувати його

6

Вивести на екран список всіх файлів у каталозі

7

Створити файл в поточній папці. Записати в нього свою дату народження. Перемістити файл в корінь диску С:

8

Відкрити заданий файл. Записати його вміст в зворотньому порядку (1-ий байт замість останнього і т.д.)

9

Змінити атрибути файлу тільки для читання та схований, виставити дату на рік меншу від існуючої

10

Записати файл у перший сектор дискети

11

Написати програму, яка загружається з дискети та виводить повідомлення на екран і після натискання клавіші здійснює перезагрузку (int 19h)

12

Написати загрузчик, який витирає заданий файл на дискеті

13

Написати загрузчик, який чекає натискання клавіші і по натисканню загружається з HDD

14

Написати програму, яка форматує доріжку на дискеті і записує туди довільний текст

15

Написати програму, яка читає вміст заданого сектору дискети та виводить його на екран

2 Здійснити компіляцію програм.

3 Виконати трасування програми за допомогою Turbo Debugger.

4 Зробити висновки за результатами роботи.

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

  1. Вкажіть розмір сектору для FDD та HDD в байтах.

  2. Вкажіть мінімальний розмір кластера для операційної системи MS-DOS.

  3. Пояснити структуру та методи функціонування FDD.

ЛАБОРАТОРНА РОБОТА №20

РОБОТА ІЗ СИСТЕМНИМ ТАЙМЕРОМ (ЗВУКОМ)

20.1 Мета роботи

Навчитися визначати поточну дату і час, реалізовувати затримку, генерувати звукові сигнали, використовуючи порти вводу/виводу, BIOS та засоби DOS, для роботи з годинником реального часу та системним таймером.

20.2 Теоретичні відомості

У кожному комп'ютері є мікросхема, що відповідає за підтримку поточної дати і часу, вона живиться від акумулятора, розташованого на материнській платі, і не відключається при вимиканні комп'ютера. Для збереження часу використовується чотирнадцять байт енергонезалежної пам'яті, інша її частина використовується BIOS для збереження різної інформації, необхідної для коректного запуску комп'ютера.

Доступ до годинника реального часу (RTC) може здійснюватися через комірки CMOS-пам'яті, функції BIOS та DOS. Для роботи з CMOS і регістрами RTC виділяються порти вводу/виводу від 70h до 7Fh, проте тільки порти 70h і 71h мають однакове призначення для всіх материнських плат.

Набір функцій для роботи з годинником реального часу через BIOS реалізовано за допомогою переривання 1Аh. Деякі функції переривання 1Аh подано в наступній таблиці:

Таблиця 20.1 –Функції переривання 1Ah

Функція

Опис

02h

Зчитування показів з годинника реального часу

03h

Установка годинника реального часу

04h

Зчитування дати з годинника реального часу

05h

Установка дати в годиннику реального часу

06h

Установка будильника

07h

Скидання будильника

Набір функцій для роботи з годинником реального часу через DOS реалізовано за допомогою переривання 21h. Деякі функції переривання 21h подано в наступній таблиці:

Таблиця 20.2 –Функції переривання 21h

Функція

Опис

2ah

Отримання поточної дати

2bh

Установка дати

2ch

Визначення поточного часу

2dh

Установка часу

Крім годинника реального часу комп’ютер оснащений пристроєм, який називається системний таймер. Даний пристрій (під’єднано до лінії IRQ0 запиту на переривання) формує переривання 08h орієнтовно 18,2 раз на секунду. При ініціалізації BIOS встановлює свою програму обробник для переривання таймера, яка кожного разу збільшує на одиницю поточне значення 4-ох байтової змінної, що знаходиться в області даних BIOS за адресою 0000:047Сh (лічильник коливань таймера). Системному таймеру виділена область від 40h до 5Fh в зоні портів вводу/виводу (табл.20.3):

Таблиця 20.3 – Виділена область системного таймера

Адреса порту

Призначення

40h

Канал 0 (генерує IRQ0)

41h

Канал 1 (підтримує поновлення пам’яті)

42h

Канал 2 (керує динаміком)

43h

Керуючий регістр першого таймера

44h - 47h

Другий таймер комп’ютерів із шиною MicroChannel

48h – 4Вh

Другий таймер комп’ютерів із шиною EISA

Набір функцій для роботи з годинником реального часу через BIOS реалізовано за допомогою переривання 1Аh та 15h. Деякі функції переривання 1Аh подано в наступній таблиці:

Таблиця 20.4 –Функції переривання 1Аh

Функція

Призначення

00h

Зчитування поточного вмісту лічильника таймера

01h

Зміна (установка) нового значення лічильника таймера

Програмуванні каналу 2 таймеру так, щоб він видавав прямокутний імпульс, заданої частоти в звуковому діапазоні (20Гц – 20кГц) дозволяє реалізувати найпростіший спосіб генерування звуку.

Для цього використовується режим таймеру 3 з початковими значеннями лічильника. Якщо потім встановити біти “0” і “1” порту РВ, то імпульс почне поступати на вхід звукового генератора. Для скидання звуку треба скинути біти “0” і “1” в РВ. Інший спосіб генерації звуку полягає в тому, щоб генерувати звукові імпульси не виходом таймера, а встановленням і скиданням першого біту в регістрі РВ.