Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга. Гуржій. 1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.53 Mб
Скачать

Void main(void){

unsigned long Time_mkc; // Time_mkc — час затримки

unsigned int LoW, HiW; // LoW, HiW - молодший

//та старший байти

clrscr(); //Очищення екрана

ргииі("Введіть час затримки мкс (1 сек=1000000 мкс - ");

scanf("%ld", &Time_mkc); //Введіть затримку

printf("\n\n"); //Пропущення рядка

LoW = (unsigned int)(Time_mkc & OxOOOOFFFF);

HiW= (unsigned int)((Time_mkc & 0xFFFF0000)»16);

asm { //Формування молодшого та

//старшого байтів затримки

pusha //Зберігаємо в стеку всі регістри

mov ah, 0x86 //Заносимо в ah номер функції 0x86

mov ex, HiW // Заносимо в сх старший байт затримки

mov dx, LoW //Заносимо в dx молодший байт затримки

asm {

int 0x15

рора

//Викликаємо оброблювач перери­вання INT 15h //Відновлюємо вміст регістрів

} printf(«4ac затримки закінчився!!! \п\п»);

//Вивід на екран повідомлення

}

2. За допомогою редактора середовища програмування Borland C++ V3.01 створіть символьний файл тексту вивченої Вами програми формування часового інтервалу та запишіть його в каталог TIME.

3. Виконайте настройку програми та запустіть її на виконання.

4. Порівняйте характеристики цієї програми з харак­теристиками попередньої (розмір використовуваного коду, точносні характеристики, можливі впливи на роботу системи). Зробіть відповідні висновки та розробіть реко­мендації по застосуванню розглянених підходів до форму­вання часових інтервалів у прикладних програмах.

Питання для самоконтролю знань

1. Назвіть засоби BIOS, що використовуються для роботи з таймером. Які функції вони реалізують?

2. Наведіть приклади використання функцій пере­ривання INT lAh для роботи з каналом 0.

3. Наведіть приклади використання функції читання таймера для організації програмної затримки.

4. Наведіть приклади використання функцій 83h та 86h переривання INT 15h. З якою метою вони використову­ються?

5. Назвіть засоби MS-DOS, що використовуються для роботи з таймером. Які функції вони реалізують?

6. Наведіть приклади використання функції 2Ah пере­ривання INT 21h. З якою метою вона використовується?

7. Наведіть приклади використання функції 2Bh пере­ривання INT 21h. З якою метою вона використовується?

8. Наведіть приклади використання функції 2Ch пере­ривання INT 21h. З якою метою вона використовується?

9. Наведіть приклади використання функції 2Dh пере­ривання INT 21h. З якою метою вона використовується?

Резюме

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

BIOS комп'ютерів IBM PC AT містить ще дві функції для роботи з таймером: 83h та 86h переривання INT 15h. Функцію 83h зручно використовувати для організації виконання яких-небудь дій паралельно з відліком часу, наприклад, можна обмежити час для вводу пароля. Функція 86h призначена для формування часових затримок. Вона дозволяє визначити час затримки в мікросекундах, що зручно для багатьох задач, які розв'язуються в реальному масштабі часу.

Оброблювач переривання INT 21h MS-DOS містить чотири функції 2Ah, 2Bh, 2Ch, 2Dh для роботи з системним таймером. Ці функції дозволяють дізнатись та встановити поточну дату та час.

Ваш наступний крок

Функції переривань INT lAh, INT 15h BIOS та INT 21h MS-DOS, розглянені у цьому занятті, дозволяють значно спростити керування таймером на прикладному рівні програмування. Але вони не вичерпують усіх функціо­нальних можливостей по керуванню обладнанням таймера. Тому на наступному занятті Ви дізнаєтесь, як примусити Ваш ПК програвати фрагменти музичних творів або формувати послідовності псевдовипадкових чисел.