Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторні роботи Степаненко.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
2.5 Mб
Скачать

3.3 Операційне слово ocw3

Слово наказів, яке дозволяє встановити та відмінити режим спеціальної

маски, перевести контролер у режим опитування та прочитати вміст IRR та ISR. Після виконання команд читання регістра ISR та IRR вміст регістрів зчитується за адресою 20h або A0h. Для отримання вмісту регістра IMR необхідно виконати читання портів за адресами 21h або A1h.

Таблиця 3 Формат слова OCW3

Біт

Призначення

D2 – D0

010 – читання IRR

011 – читання ISR

111 – режим опитування

D3

Завжди 1

D4

Завжди 0

D6, D5

10 – відмінити режим спеціальної маски

11 – встановити режим спеціальної маски

D7

Завжди 0

A0

Завжди 0

Методичні вказівки

В даній роботі пропонується дослідити і протестувати програму, яка використовує контролер переривань. Програма дозволяє маскувати/розмаско- вувати переривання заданого рівня, виводити вміст регістрів IRR та ISR на дисплей.

30

При роботі з програмою слід уникати маскування переривань контроле-

ра клавіатури та відеосистеми!

Для виконання даної роботи потрібні знання та навички програмування

мовою С, грунтовні знання архітектури та принципів функціонування ПКП, а також знання та навички програмування ПКП.

Література

1. Гук М. Аппаратные средства IBM PC. Энциклопедия. – СПб.: “Издательс-

тво Питер”, 1999. – 816 с.

2. Гуржій А. М., Коряк С. Ф., Самсонов В. В., Скляров О. Я. Архітектура, принципи функціонування і керування ресурсами IBM PC: Навч. посібник. Харків: ТОВ. “Компанія СМІТ”, 2003. – 512 с.

3. Зубков С. В. Ассемблер для DOS, Windows и Unix. – М.: ДМК, 1999. –

640 с.

Завдання

1. Дослідити текст програми.

2. За текстом програми зарисувати схему алгоритму.

3. На вінчестері створити каталог PKP.

4. За допомогою середовища Borland C++ 3.1 створити символьний файл тексту програми і записати його в каталог DMA.

5. Виконати налагодження програми та запустити її на виконання. Зробити висновки про власний досвід з маскування переривань.

6. Розробити пропозиції з модернізації програми таким чином, щоб з її

допомогою можна було б ідентифікувати та отримувати на екрані список контролерів замаскованих пристроїв.

7. Зробити відповідні зміни в програмі, що дозволять визначат вміст програмно доступних регістрів веденого ПКП.

8. Зробити висновки.

Текст програми

#include <conio.h>

#include <stdio.h>

void main (void)

{

unsighed i;

int mask;

char c = „y‟;

clrscr ();

printf (“Ведучий контролер (MASTER):\n”);

outp (0x20, 0x0A);

31

printf (“Стан регістра IRR: %02.2X\n”, inp (0x20));

outp (0x20, 0x0B);

printf (“Стан регістра ISR: %02.2X\n”, inp (0x20));

printf (“Стан регістра IMR: %02.2X\n”, inp (0x21));

while (c != „n‟) {

printf (“Введіть 16-ий код маски або розмаскування: ”);

scanf (“%X”, &mask);

outp (0x21, mask);

printf (Стан регістра IMR: %02.2X\n”, inp (0x21));

printf (“Бажаєте ще (y/n)?”);

c = getch ();

}

}