МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ
Державний університет "Львівська політехніка"
Кафедра САПР
Звіт
з лабораторної роботи № 11
“ПРОГРАМУВАННЯ ВИВОДУ ІНФОРМАЦІЇ НА ЕКРАН НА ЕОМ З МІКРОПРОЦЕСОРОМ Intel 8086(80286)”
МЕТА РОБОТИ
Вивчити основні можливості керування екраном в текстовому та графічному режимах.
КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ
Однією з основних складових будь-якого персонального комп’ютера є монітор. Усі дисплеї можна розділити на монохромні та кольорові (графічні).
Для роботи монохромного монітора задіяно 4 Кбайти оперативної пам'яті, яка розміщена з адреси В0000Н. Дану область пам’яті називають дисплейним буфером. Два Кбайти з 4-х використано для збереження кодів символів (25 стрічок по 80 позицій в кожній) і 2 Кбайти для байтів-атрибутів, які забезпечують підкреслення, виділення яскравістю, інвертування та мигання.
Для роботи стандартного кольорового графічного монітора використано 16 Кбайт пам'яті, яка починається з адреси В8000. Такий дисплей може працювати в кольоровому чи чорно-білому режимі. Дисплейний буфер забезпечує екранні сторінки (0-3) для екрана на 80 стовпчиків та 8 сторінок (0-7) для екрана на 40 стовпчиків. Байт-атрибут містить таку інформацію для символу, який відображається на дисплеї:
1111 Фон Текст
Атрибут: BL R G В І R G В
Номер бітів: 7 6 5 4 3 2 1 0
де R, G, В - бітові позиції, які керують відповідно червоним, зеленим та синім променем в кольоровому моніторі. Біт 7 (BL) - встановлює мигання, а біт З (І) - інтенсивність світіння. Дана структура байта-атрибута справедлива для моногамного та графічного дисплея в текстовому режимі.
Усі екранні операції виконуються за допомогою команди переривання INT 10Н, яка передає керування BIOS.
При використанні цього переривання в регістр АН заноситься код, який визначає функцію переривання.
АН=00: Встановлення режиму. Вміст регістра AL може бути таким:
00 - 40x25 чорно-білий текстовий режим;
01 - 40x25 стандартний 16-кольоровий текстовий режим;
02 - 80x25 чорно-білий текстовий режим;
03 - 80x25 стандартний 16-кольоровий текстовий режим;
04 - 320x200 стандартний 4-кольоровий графічний режим;
05 - 320x200 чорно-білий графічний режим;
06 - 640x200 чорно-білий графічний режим;
07 - 80x25 чорно-білий стандартний монохромний;
OD - 320x200 16-кольоровий графічний режим (EGA);
ОЕ - 640x200 16-кольоровий графічний режим (EGA);
OF - 640x350 чорно-білий графічний режим (EGA);
10 - 640x350 64-кольоровий графічний режим (EGA);
Наступний приклад встановлює чорно-білий стандартний монохромний режим 80x25:
MOV AH, 00
MOV AL, 07
INT 10Н
АН=01: Встановлення розміру курсору. Біти 4-0 в регістрі СН визначають розмір у вертикальному напрямку, а біти 4-0 у регістрі CL - для горизонтального напрямку. Можна встановити будь-який розмір курсору по вертикалі: від 0 до 14 для монохромних та від 0 до 7 для більшості кольорових моніторів.
АН=02: Встановлення позиції курсору. Ця функція встановлює курсор на екрані у відповідності з координатами стрічки та стовпчика. В регістр ВН - номер сторінки (0-3) DH - стрічка, DL - стовпчик.
Наведемо приклад:
MOV AH, 02
MOV ВН, 01
MOV DH, 10
MOV DL, 10
INT 10Н
АН=03: Читання теперішнього місця знаходження курсору. Функція повертає в DH - номер стрічки, а в DL - номер стовпчика. (Виконуючи цю функцію, необхідно в регістр ВН занести номер сторінки.)
АН=04: Читання місцезнаходження світлового пера.
АН=05: Вибір активної сторінки.
Приклад:
MOV AH, 05
MOV AL, сторінка
INT 10Н
АН=06: Прокрутка екрана вверх. В регістр AL заносять кількість стрічок, ВН - атрибут, DX - координати. Подальші команди виконують прокрутку всього екрана на одну стрічку вверх:
MOV АН, 0602 Н
MOV ВН, 07
MOV СХ, 0000
MOV DX, 184FH
INT 10Н
АН=07: Прокрутка екрана вниз.
АН=08: Читання атрибута / символу в біжучій позиції курсору. Приклад:
MOV AH, 09
MOVAL, символ
MOV BH, сторінка
MOV BL, атрибут
MOV CX, повторення
INT 10Н
АН=0А: Вивід символу в біжучу позицію курсору. Приклад:
MOV AH, OAH
MOVAL, символ
MOV BH, сторінка
MOV CX, повторення
INT 10Н
АН=13: Вивід символьної стрічки (лише для AT). Дана функція дозволяє виводити на екран символьні стрічки з встановленням і переміщенням курсору:
MOV AH, 13H
MOV AL, сервіс
MOV BH, сторінка
MOV BP, адреса
MOV CX, довжина
MOV DX, екран
INT 10H
Значення в регістрі AL вказують:
0 - використати атрибут і не перемістити курсор;
1 - використати атрибут і перемістити курсор;
2 - вивести символ, потім атрибут і не перемістити курсор;
3 - вивести символ, потім атрибут і перемістити курсор.
Організувати вивід на екран, окрім використання десятого переривання BIOS, можна за допомогою двадцять першого переривання DOS. Для цього необхідно в регістрі АН записати 09 та присвоїти ім'я масиву даних, який необхідно вивести на термінал. В кінці стрічки даних необхідно записати знак долара $, цей знак дасть змогу припинити вивід. Наведемо приклад виводу на екран стрічки даних:
NAME DB 'ККК?', '$'
MOV AH, 09
LEA DX, NAME
для чорно-білих та кольорових моніторів. Текстовий режим забезпечує роботу з повним набором ASCII- кодів (256 символів). Кожний символ на екрані може відображатися в одному з 16 кольорів на одному з восьми кольорів фону. Бордюр екрана може мати також один з 16 кольорів.
Для побудови 16 кольорів використовують три основні (червоний, зелений, синій) .
Отже, будь-які символи можна відобразити на екрані в одному з 16-кольорів. Фон будь-якого символу може мати один з перших восьми кольорів. Окрім того, використовуючи байт-атрибут можна отримати мигаючі символи. Для прикладу, наведено типові значення атрибутів:
Текст по фону: Біт: 7 6 5 4321 0
BL R G В І R G В
Чорний по білому 00 0 0000 0
Синій по чорному 00 0 0000 1
Червоний по синьому 00 0 1010 0
При використанні графічного режиму весь монітор розбивається на уявні точки, а саме - пікселі. Кольоровий графічний адаптер CGA має три ступені роздільної здатності:
- низька роздільча здатність, яка забезпечує 100 стрічок по 160 пікселів ;
- середня роздільча здатність, 200 стрічок на 320 точок по два біти на піксел;
- висока роздільча здатність (200x640).
При середній роздільчій здатності кожний байт забезпечує чотири пікселі, які пронумеровані від 0 до 3:
Біт
С1 C0
С1 C0
С1 C0
С1 C0
Пікселі
0
1
2
3
Кожний піксел може бути зафарбований в один з чотирьох кольорів. Дане обмеження зумовлене тим, що у двох бітах можна розмістити чотири комбінації з нулів та одиниць. Для комбінації 00 можна вибрати будь-який колір фону з 16 можливих або вибрати 01, 10 та 11 для однієї з двох можливих палітр. Кожна палітра може мати три кольори:
С1
C0
Палітра 0
Палітра 1
0
0
фон
фон
0
1
зелений
голубий
1
0
червоний
бузковий
1
1
коричневий
білий
Для вибору кольору палітри та фону використовують переривання INT 10Н.
Розглянемо детальніше текстовий та графічний режими для кольорового монітора. Текстовий режим призначений для звичайних обчислень з виводом букв та цифр на екран. Цей режим однаковий
MOV AL, колір точки (0-3)
MOV CX, стовпчик (0-319)
MOV DX, стрічка (0-199)
INT 10H
Функція ODH - читання точки з екрана. Функція до попередньої, а в AL повертається номер точки.
ЗАВДАННЯ
КОД ПРОГРАМИ
ВИСНОВКИ
В ході даної лабораторної роботи ми вивчили основні можливості керування екраном в текстовому та графічному режимах.