- •Архітектура комп’ютерів методичний посібник для проведення лабораторних робіт
- •Лабораторна робота № 1 перетворення чисел в машинних кодах
- •Теоретичні відомості
- •1. Формати даних
- •1.1 Природна форма числа
- •1.2 Нормальна форма числа
- •2. Машинні коди чисел
- •2.1 Дії над числами в природній формі
- •2.2 Дії над числами в нормальній формі
- •Методичні вказівки
- •Література
- •Завдання
- •Лабораторна робота № 2 цеом нейманівської архітектури
- •Теоретичні відомості
- •1. Структура еом
- •2. Елементарні машинні операції
- •3. Формати команд та кодування операцій еом
- •Методичні вказівки
- •Література
- •Завдання
- •1. Схема алгоритма розв’язку задачі
- •2. Програма в змістовній формі
- •3. Система операцій еом
- •4. Кодування операцій еом
- •5. Адресна інформація в 16-й системі числення
- •6. Розподіл пам’яті
- •7. Програма в машинних кодах
- •1. Загальні відомості про системи прямого доступу до пам’яті
- •2. Прямий доступ до пам’яті в пеом
- •3. Призначення та формати регістрів кпдп
- •3.1 Регістр станів (stat)
- •3.2 Регістр команд (cr)
- •3.3 Регістр режиму (mod)
- •3.4 Регістр маски (mask)
- •3.5 Регістр запиту (req)
- •3.6 Регістр поточної адреси
- •3.7 Регістр поточного лічильника слів (ccr)
- •3.8 Базові регістри адрес та лічильника (bar та car)
- •3.9 Тимчасовий регістр (tr)
- •3.10 Канали системи пдп пеом
- •4. Ініціалізація кпдп
- •Методичні вказівки
- •Література
- •Завдання
- •Текст програми
- •Контрольні запитання
- •1. Принципи організації системи переривань
- •2. Стани програмованого контролера переривань.
- •3. Призначення та формати операційних слів пкп
- •3.1 Операційне слово ocw1
- •3.2 Операційне слово ocw2
- •3.3 Операційне слово ocw3
- •Методичні вказівки
- •Література
- •Завдання
- •Текст програми
- •Контрольні запитання
- •Лабораторна робота № 5
- •Генерації звуку та випадкових чисел
- •Теоретичні відомості
- •1. Призначення таймера
- •2. Архітектура та принципи функціонування таймера
- •3. Програмування таймера
- •4. Засоби bios для роботи з таймером
- •5. Генерація звукових сигналів
- •6. Генерація випадкових чисел
- •Методичні вказівки
- •Література
- •Завдання
- •Тексти програм
- •Лабораторна робота № 6 вивчення та дослідження методів програмного керування годинником реального часу
- •Теоретичні відомості
- •1. Призначення годинника реального часу
- •2. Призначення та формати регістрів кмон-пам’яті
- •3. Засоби bios для роботи з годинником реального часу
- •Методичні вказівки
- •Література
- •Завдання
- •Тексти програм
- •Лабораторна робота № 7 дослідження режимів роботи послідовних інтерфейсів пеом
- •Теоретичні відомості
- •1. Загальні відомості про інтерфейс
- •2. Використання порту rs232c
- •3. Функції апаратних засобів інтерфейса rs232c
- •4. Формати портів уапп
- •5. Ініціалізація уапп
- •6. Підтримка асинхронного адаптера в bios
- •7. Підтримка асинхронного адаптера в dos
- •Методичні вказівки
- •Література
- •Завдання
- •Тексти програм
- •1. Призначення та характеристики інтерфейса Centronics
- •2. Опис портів інтерфейса Centronics
- •3. Засоби bios для роботи з принтером
- •Методичні вказівки
- •Література
- •5. Гук м. Аппаратные средства ibm pc. Энциклопедия. – сПб.: “Издательс-тво
- •Завдання
- •Тексти програм
- •Лабораторна робота № 9 дослідження методів програмного керування контролером клавіатури
- •Теоретичні відомості
- •1. Контролер клавіатури pc/at i8042
- •2. Порти контролера клавіатури
- •3. Методи програмного керування клавіатурою
- •4. Коди відповідей клавіатури
- •5. Засоби bios та ms dos для роботи з клавіатурою
- •5.1 Засоби bios
- •5.2 Засоби ms dos
- •Методичні вказівки
- •Література
- •Завдання
- •Тексти програм
- •Лабораторна робота № 10 дослідження методів програмного керування контролером нгмд
- •Теоретичні відомості
- •1. Основні відомості про контролер нгмд
- •2. Програмування контролера нгмд
- •Методичні вказівки
- •Література
- •Завдання
- •2) Записати введений користувачем рядок у сектор s на доріжку t;
- •Контрольні запитання
- •Література
- •1. Гук м. Аппаратные средства ibm pc. – сПб.: “Питер”, 1999. – 816 с.
Текст програми
#include <dos.h>
#include <alloc.h>
#include <conio.h>
#include <stdio.h>
void wait7bit (void)
{
while ((inportb (0x3F4) & 0x80) == 0);
}
void ngmd (unsigned char byte)
{
wait7bit ();
outportb (0x3F5, byte);
}
void main (void)
{
unsigned char *buf;
int i, k;
long addrbuf;
unsigned hbuf, lbuf;
unsigned z_es, z_bx;
buf = (unsigned char*) malloc (512);
addrbuf = 16L * (long) FP_SEG (buf) + (long) FP_OFF (buf);
hbuf = addrbuf >> 16;
lbuf = addrbuf & 0xFFFF;
26
// ввімкнення електродвигуна НГМД диска A
outportb (0x3F2, 0x1C);
// затримка 0,5 с для розгону двигуна
delay (450);
// встановлення магнітної голівки НГМД:
// F – код команди пошуку
// 0 – номер накопичувача А
// 30 – номер доріжки
ngmd (0xF);
ngmd (0);
ngmd (30);
// очікування встановлення біта 7 регістра статусу НГМД
wait7bit ();
// затримка для встановлення магнітних головок на доріжку
delay (225);
outportb (0xB, 0x46);
outportb (0xC, 0x46);
outportb (0x4, (unsigned char) lbuf & 0xFF);
outportb (0xC, (unsigned char) ((lbuf & 0xFF00) >> 8));
outportb (0x5, 0xFF); outportb (0x5, 0x1); outportb (0xA, 0x2);
// вимкнення електродвигуна НГМД диска A
outportb (0x3F2, 0xC);
k = 0;
for (i = 0; i < 512; i++) {
printf (“%3d | %X\n”, i, buf[i]);
if ((k % 24) == 0) getch ();
k++;
}
}
Контрольні запитання
1. Дайте визначення системи прямого доступу до пам’яті.
2. Перелічіть основні програмно доступні регістри та лічильники КПДП
i8237A.
3. Призначення та характеристики циклічного зсуву пріоритетів каналів.
4. Вкажіть послідовність дій при ініціалізації ПКП.
5. В який функціональний елемент КПДП записується кількість байтів, що передається? Покажіть, де це передбачено в програмі.
27
Лабораторна робота № 4
ДОСЛІДЖЕННЯ МЕТОДІВ ПРОГРАМНОГО ДОСТУПУ
ДО РЕГІСТРІВ ПКП ТА РЕЖИМУ МАСКУВАННЯ ПЕРЕРИВАНЬ
Мета роботи:
вивчити методи програмного доступу до регістрів ПКП;
навчитись розробляти програми, що аналізують стан регістрів IRR, ISR, IMR контролера переривань;
навчитись ідентифікувати коди станів регістрів ПКП;
з’ясувати, яку роль відіграє режим маскування при керуванні системою переривань.
ТЕОРЕТИЧНІ ВІДОМОСТІ
1. Принципи організації системи переривань
Можливість переривання програм – важлива архітектурна властивість ЕОМ,
що дозволяє ефективно викорисовувати продуктивність процесора при наявності кількох процесів, що протікають паралельно в часі, та вимагають у довільні моменти часу керування та обслуговування з боку процесора. В першу чергу це
відноситься до організації паралельної в часі роботи процесора та периферійних пристроїв машини, а також до використання ЕОМ для керування в реальному часі технологічними процесами.
Щоб ЕОМ могла, не вимагаючи великих зусиль від програміста, реалізувати з високою швидкістю переривання програм, машині необхідно надати відповідні апаратурні та програмні засоби, сукупність яких отримала назву системи
переривань програм. Основними функціями системи переривань є:
запам’ятовування стану програми, що переривається, та здійснення переходу до перериваючої програми;
відновлення стану програми, яка переривається, та повернення до неї.
