Мова програмування Assembler
Методическое пособие - Компьютеры, программирование
Другие методички по предмету Компьютеры, программирование
Білий по чорному (нормальний)
1000 0111 87 Білий по чорному (миготіння)
0000 1111 0F Білий по чорному (яскравий)
0111 0000 70 Чорний по білому (інвертований)
1111 0000 F0 Чорний по білому (инверт. миготливий)
Ці атрибути підходять для текстового режиму, як для монохромних, так і для кольорових дисплеїв. У наступній главі буде показано, як вибирати конкретні кольори. Для генерації атрибуту можна використовувати команду INT 10H. При цьому регістр BL повинен містити значення байта-атрибута, а регістр AH один з наступних кодів: 06 (прокручування нагору), 07 (прокручування вниз), 08 (уведення чи атрибута символу), 09 (виведення атрибута чи символу). Якщо програма встановила деякий атрибут, то він залишається таким, доки програма його не змінить. Якщо встановити значення байта атрибута рівним тичина.00, то символ взагалі не буде відображений.
Лекція 10
- Переривання 10h
- Функції екранного режиму. Функції малювання крапки та прямої
- Керування кольором
1. Переривання 10h
Переривання INT 10H забезпечує керування всім екраном. В регістрі AH встановлюється код, що визначає функцію переривання. Команда зберігає зміст регитрів BX, CX, DX, SI і BP. Нижче описані всі можливі функції.
AH=00: Установка режиму. Дана функція дозволяє периключати кольоровий монітор у текстовий чи графічний режим. Установка pежиму для виконуваної в сучасний момент програми здійснюється c допомогою INT 10H. При установці відбувається очищення екрану. Зміст регістру AL може бути наступним:
00 40 х 25 чорно-білий текстовий режим
01 40 х 25 стандартний 16-кольоровий текстовий режим
02 80 х 25 чорно-білий текстовий режим
03 80 х 25 стандартний 16-кольоровий текстовий режим
04 320 х 200 стандартний 4-кольоровий графічний режим
05 320 х 200 чорно-білий графічний режим
06 640 х 200 чорно-білий графічний режим
07 80 х 25 чорно-білий стандартний монохроматичний
08 - 0A формати для моделі PCjr
0D 320 х 200 16-кольоровий графічний режим (EGA)
0E 640 х 200 16- кольоровий графічний режим (EGA)
0F 640 х 350 чорно-білий графічний режим (EGA)
10 640 х 350 64- кольоровий графічний режим (EGA)
EGA (Enhanced Graphics Adapter) - позначає удосконалений графічний адаптер. Наступний приклад показує установку стандартного 16- кольорового текстового режиму
MOV AH,00 ;Функція установки режиму
MOV AL,03 ;Стандартний кольоровий текст 80 х 25
INT 10H ;Викликати BIOS
Для визначення типу адаптера, встановленого в системі, служить переривання BIOS INT 11H. Дана команда повертає в регістрі AX значення, в якому біти 5 і 4 вказують на відео режим:
01 40 х 25 чорно-білий режим у кольоровому адаптері
10 80 х 25 чорно-білий режим у кольоровому адаптері
11 80 х 25 чорно-білий режим у чорно-білому адаптері
Програма, що працює з невідомим типом монітора, може перевірити тип по регістру AX після INT 11H і потім встановити необхідний режим. AH=01: Установка розміру курсору. Курсор не є символом з набору ASCII-кодів. Компютер має власне апаратне забезпечення для керування видом курсору. Для цього існує спеціальна обробка по INT перериванню. Звичайно символ курсоpа схожий на символ підкреслення. Використовуючи INT 10H, можна керувати вертикальним розміром курсору: біти 4-0 у регістрі CH для верхньої лінії сканування, а біти 4-0 у регістрі CL - для нижньої. Можна встановити будь-який pозмір курсору по вертикалі: від 0 до 13 для монохроматичних і EGA монітоpів і від 0 до 7 для більшості кольорових моніторів. Наведемо приклад для збільшення розміру курсору від його верхньої до нижньої лінії сканування:
MOV AH,01 ;Встановити розмір курсору
MOV CH,00 ;Верхня лінія сканування
MOV CL,13 ;Нижня лінія сканування
INT 10H ;Викликати BIOS
В результаті виконання цих команд курсор перетвориться в суцільний мигітливий прямокутник. Можна встановити будь-який розмір курсору між верхньою і нижньою границями, наприклад, 04/08, 03/10 і т.д. Курсор зберігає свій вигляд, поки програма не змінить його. Використання розмірів 12/13 (для моно) і 6/7 (для кольору) переводить курсор у його нормальний вигляд.
AH=02: Установка позиції курсору. Ця функція встановлює курcор у будь-яку позицію на екрані відповідно до координатами cтрічки і стовпця. Номер сторінки звичайно дорівнює 0, але може мати значення від 0 до 3 при 80 стовпцях на екрані. Для установки позиції курсору необхідно занести в регістр AH значення 02, у регістр BH номер сторінки і в регістр DX координати рядка і стовпця:
MOV AH,02 ;Встановити положення курсору
MOV BH,00 ;Сторінка 0
MOV DH,рядок ;Рядок
MOV DL,стовпець ;Стовпець
INT 10H ;Викликати BIOS
AH=03: Читання поточного положення курсору. Програма може визначити положення курсору на екрані (рядок і стовпець), а також pозмір курсору, у такий спосіб:
MOV AH,03 ;Визначити положення курсору
MOV BH,00 ;Встановити сторінку 0
INT 10H ;Викликати BIOS
Після повернення регістр DH буде містити номер рядка, а регістр DL-номер стовпця. У регістрі CH буде верхня лінія cканування, а в регістрі CL -нижня.
AH=04: Читання положення світлового пера. Дана функція використовується в графічному режимі для визначення положення світлового пеpа.
AH=05: Вибір активної сторінки. Нова сторінка встановлюється для кольорових текстових режимів від 0 до 3. Для режиму 40 х 25 можливо встановлювати до 8 сторінок (від 0 до 7), а для режиму 80 х 25 - до 4 сторінок (від 0 до 3).
MOV AH,05 ;Встановити активну сторінку
MOV AL,сторінка ;Номер сторінки
INT 10H ;Викликати BIOS
AH=06: Прокручування екрана нагору. Коли програма намагається видати текст на р