- •Методичні рекомендації і контрольні завдання до виконання лабораторних робіт
- •Лабораторна робота №1
- •1. Теоретичні відомості
- •2. Порядок виконання лабораторної роботи.
- •3. Контрольні питання
- •Лабораторна робота № 2
- •1. Теоретичні відомості
- •2. Порядок виконання лабораторної роботи.
- •3. Контрольні питання
- •Лабораторна робота № 3 Системні функції для роботи з пристроями вводу інформації в системах управління
- •1. Теоретичні відомості
- •1.1. Апаратна реалізація пристроїв введення інформації
- •1.2. Введення даних із клавіатури
- •1.3. Системна підтримка клавіатури
- •1.4. Контролер клавіатури
- •Призначення регістрів контролера клавіатури
- •2. Порядок виконання лабораторної роботи.
- •3. Контрольні питання
- •Лабораторна робота № 4
- •1. Теоретичні відомості
- •Значения бітів порта 61h
- •Абетка Морзе
- •2. Порядок виконання лабораторної роботи.
- •3. Контрольні питання
- •Перелік літератури
- •Додаток а
- •Додаток б Короткий опис команд отладчика
- •Додаток в Використання лічильника тактів для визначення тактової частоти процесора [5]
- •Додаток г Засоби виводу на екран
- •Додаток д
- •Скан-коди основної клавіатури
- •Додаток ж Загальні команди контролера 8042
- •Додаток з введення даних із клавіатури
- •Додаток е інтерфейс клавіатури
- •Додаток і Використання убудованого динамику
Лабораторна робота №1
Керування виводом інформації про стан системи управління на систему відображення інформації та збереження її на носіях
Мета роботи: Дослідити організацію і можливість виводу на екран системними засобами.
1. Теоретичні відомості
Відеосистема обчислювальних систем містить у собі ряд апаратних і програмних засобів, що дозволяють одержувати на екрані термінала текстові і графічні зображення.
До апаратних засобів можна віднести сам відеотермінал (монітор), відеоконтролер, або відеоадаптер, а також програмне управління відеосистемою.
У текстовому режимі зображення звичайне складається з 25 рядків по 80 символів у рядку, хоча мається можливість збільшувати число рядків до 40 за рахунок зменшення висоти відображуваних символів. Кожен символ і фон під ним можуть приймати кожне з 16 кольорів.
Програмні засоби обслуговування екрана містять у собі відеодрайвер BIOS, до якого можна звернутися з прикладної програми за допомогою переривання INT 10h, і яке забезпечує нижній рівень управління (вивід символів, робота з курсором, переключення режимів відеоадаптера і т.д.), а також програми DOS, що активуються за допомогою переривання INT 21h і представляють більш високий рівень сервісу в текстовому режимі.
Вивід на екран у базовій версії DOS вимагає визначення текстового повідомлення в області даних, установки в регістрі AH значення 09 (виклик функції DOS) і вказівки команди DOS INT 21H. У процесі виконання операції кінець повідомлення визначається по обмежнику ($), як це показано в прикладі нижче:
NAMPRMP DB 'Ім'я студента?','$'
...
MOV AH,09 ;Запит виводу на екран
LEA DX,NAMPRMP ;Завантаження адреси повідомлення.
INT 21H ;Виклик DOS
Знак обмежника "$" можна кодувати безпосередньо після символьного рядка (як показано в прикладі), усередині рядка: 'Ім'я студента?$', або в наступному операторі DB '$'. Використовуючи дану операцію, не можна вивести на екран символ долара "$". Крім того, якщо знак долара буде відсутній наприкінці рядка, то на екран будуть виводитися всі наступні символи, поки знак "$" не зустрітися в пам'яті. Команда LEA завантажує адресу області NAMPRMP у регістр DX для передачі в DOS адреси виведеної інформації. Адреса поля NAMPRMP, що завантажується в DX по команді LEA, є відносна, тому для обчислення абсолютної адреси даних DOS складає значення регістрів DS і DX (DS:DX).
Консольні выкна дають наступні можливості виводу текстової інформації на екран:
звертання до екрана як до файлу, за допомогою переривання DOS INT 21h з функцією 40h;
використання групи функцій DOS з діапазону 1...Ch (переривання INT 21h), що реалізують посимвольний вивід, а також вивід рядків.
Вивід на екран засобами файлової системи (INT 21h, функція 40h) здійснюється точно також, як і запис у файл. Використовуються визначені дескриптори 1 або 2, закріплені за стандартними пристроями виводу і помилки, відповідно (за замовчуванням - екраном). Число виведених символів вказується в регістрі СХ, а адреса рядка, що виводиться – у регістрі DX.
Для виводу на екран використовується функція DOS 40h, що має наступні параметри:
Вхід: AH = 40h
BX = дескриптор
CX = довжина повідомлення
DX = адреса виведеного повідомлення
Вихід: AX = код помилки або кількість реально виведених символів
Другий спосіб виводу на екран текстової інформації реалізується за допомогою трьох функцій переривання INT 21h:
02h – вивід символу;
06h – прямий вивід;
09h – вивід рядка.
Функція 09h широко використовується в системних програмах для виводу на екран інформаційних і діагностичних повідомлень. Перед викликом переривання адреса повідомлення засилається в регістр DX; закінчується повідомлення символом “$”. При натисканні Ctrl/C спрацьовує стандартна процедура обробки цього переривання і вивід завершується.
Функція 02h викликає передачу на екран одного символу, що поміщається в регістр DX. Для виводу рядка функцію варто використовувати в циклі. В іншому вона не відрізняється від функції 09h.
Функції 06h використовується в тих випадках, коли треба виключити стандартну реакцію системи на введення з клавіатури Ctrl/C. В іншому вона діє також як функції 09h і 02h, однак забезпечує не тільки вивід але і введення. У випадку виводу код ASCII символу, що передається записується в регістр DL; при введенні DL=FFh.
Маються засоби виводу на екран, реалізовані драйверами BIOS, програмне звертання до якого здійснюється за допомогою переривання INT 10h. При роботі в текстовому режимі звичайно використовуються наступні функції драйвера:
02h - установити позицію курсору;
03h - одержати позицію курсору;
05h - установити відеосторінку;
06h – ініціанувати або прокрутити нагору вікно;
07h - ініціанувати або прокрутити униз вікно;
08h - прочитати символ і атрибут у позицію курсору;
09h - вивести символ і атрибут у позицію курсору;
0Ah - вивести символ у позицію курсору;
0Eh - вивести символ у режимі телетайпа;
10h - підфункция 03h - переключити біт мерехтіння/яскравості;
13h - вивести рядок у режимі телетайпа.
Більш детальний опис цих функцій наведено у додатку Г.