Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Вивід графічної інформації у мові Assembler



Питання для опрацювання

1. Особливості роботи з відеорежимами.

2. Порядок задання кольору для виведення даних.

Методичні рекомендації

Під час вивчення даної теми студенти повинні о знайомитись із особливостями створення графічних побудов у мові Асемблер, навчитись використовувати графічні побудови у власних програмах .

1. Особливості роботи з відеорежимами.

Для генерації кольорових зображень у графічному режимі використовуються мінімальні крапки растра - пікселі (pixel). Кольоровий графічний адаптер (CGA) має три ступені дозволу:

1. Низький дозвіл (не підтримується в ROM) забезпечує встановлення 100 рядків по 160 точок (тобто чотири біти на точку). Кожна точка може мати один з 16 стандартних квітів. Реалізація даного режиму включає пряму адресацію контролера Motorola 6845 CRT. Для цього використовуються два порти: чина, 3D4 і 3D5.

2. Середній дозвіл для стандартної кольорової графіки забезпечує 200 рядків по 320 точок. Кожен байт у цьому випадку представляє чотири точки (тобто два біти на крапку).

3. Високий дозвіл забезпечує 200 рядків по 640 точок. Оскільки в даному випадку потрібно 16 ДО байт пам'яті, високий дозвіл досягається тільки в чорно-білому (BW) режимі. Кожен байт тут представляє 8 точок (один біт на точку). Нульове значення біта дає чорний колір крапки, одиничне - білий.

Помітимо, що в графічному режимі ROM містить точкові вигляди тільки для перших 128 ASCII-кодів. Команда INT 1FH забезпечує доступ до 1ДО байтової області в пам'яті, визначальної інші 128 символів. (8 байт на символ). Відображення графічних байтів у відео сигнали аналогічно, як для середнього, так і для високого розширення.

2. Порядок задання кольору для виведення даних.

При середньому дозволі кожен байт представляє чотири точки, пронумерованих від 0 до 3:

Байт: :C1 C0:C1 C0:C1 C0:C1 C0:

Пікселі: 0 1 2 3

У будь-який момент для кожної точки можливі чотири кольори, від 0 до 3. Обмеження в 4 кольори означає те, що двобітова крапка має 4 комбінації значень бітів: 00, 01, 10 і 11. Можна вибpати значення 00 для кожного з 16 можливих квітів чи фону вибрати значення 01, 10, і 11 для однієї з двох палітр. Кожна палітpа має три кольори:

C1 C0 Палітра 0       Палітра 1

0    0 фон                 фон

0    1 зелений          голубий

1    0 червоний        бузковий

1              1 коричневий   білий

Для вибору кольору палітри і фону використовується INT 10H. Таким чином, якщо, наприклад, обраний фон жовтого кольору і палітра 0, то можливі наступні кольори крапки: жовтий, зелений, червоний і коричневий. Байт, що містить значення 10101010, відповідає червоним крапкам. Якщо вибрати колір фону - синій і палітру 1, то можливі кольори: синій, блакитний, бузковий і білий. Байт, що містить значення 00011011, відображає синю, блакитну, бузкову і білу крапки. Переривання BIOS INT 10H для графіка Функція AH=00 команди INT 10H встановлює графічний режим. Функція AH=11 команди INT 10H дозволяє вибрати колір палітри і вивести на екран графічний символ. Код у регіст- рі AH визначає функцію: AH=00: Установка режиму. Нульове значення в регістрі AH і 04 у pегістрі AL установлюють стандартний кольоровий графічний режим:

MOV AH,00 ;Функція установки режиму

MOV AL,04 ;Дозвіл 320х200

INT 10H

Установка графічного режиму приводить до зникнення курсору з екрана.

AH=0BH: Установка колірної палітри. Число в регістрі BH визначає призначення регістра BL: BH=00 вибирає колір фону і бордюру відповідно до змісту pегістра BL. Колір фону від 1 до 16 відповідає тичина значенням oт 0 до F;

BH=01 вибирає палітру відповідно вмісту регістра BL (0 чи 1):

MOV AH,0BH ;Функція установки кольору

MOV BH,01 ;Вибір палітри

MOV BL,00 ; 0 (зелений, червоний, корич.)

INT 10H ;Викликати BIOS

Палітра, встановлена один раз, зберігається, поки не буде скасована іншою командою. При зміні палітри весь екран змінює колірну комбінацію. При використанні функції AH=0BH у текстовому режимі, значення, установлене для кольору 0 у палітрі, визначає колір бордюру.

AH=0CH: Виведення крапки на екран. Використання коду 0C у регістрі AH дозволяє вивести на екран точку в обраному кольорі (фон і палітра). Наприклад, для дозволу 320х200 завантажимо в регістр DX вертикальну координату (від 0 до 199), а в регістр CX - горизонтальну координату (від 0 до 319). У регістр AL помістимо колір точки (від 0 до 3):

MOV AH,0CH ;Функція висновку точки

MOV AL,колір ;Колір точки

MOV CX,стовпець ;Горизонтальна координата

MOV DX,рядок ;Вертикалькая координата

INT 10H ;Викликати BIOS

AH=0DH: Читання крапки з екрана. Дана функція дозволяє прочитати точку для визначення її кольору. У регістр DX повинна бути завантажена вертикальна координата (від 0 до 199), а в регістр CX - горизонтальна (від 0 до 319). У регістрі AH повинне бути значення 0D. Функція повертає колір точки в регістрі AL.

Студент повинен

знати :

v Ступені дозволу кольорового графічного адаптера.

v Характеристику низького ступеня дозволу.

v Характеристику середнього ступеня дозволу.

v Характеристику високого ступеня дозволу.

вміти :

v Використовувати графічні побудови у власних програмах.

Питання для самоконтролю

1. Назвіть ступені дозволу кольорового графічного адаптера.

2. Дайте характеристику низького ступеня дозволу.

3. Дайте характеристику середнього ступеня дозволу.

4. Дайте характеристику високого ступеня дозволу.

 

 Література

[2] с. 151-171,[5] с. 91-93


3.5. Обмін даними з портами вводу/виводу за допомогою засобів мови Assembler


Питання для опрацювання

1. Функції для керування роботою послідовного порту

2. Функції для керування роботою паралельного порту

Методичні рекомендації

Під час вивчення даної теми студенти мають о знайомитись із командами мови Асемблера, які стосуються тестування та керування портами комп’ютера .


Поделиться:



Последнее изменение этой страницы: 2019-04-19; Просмотров: 291; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.012 с.)
Главная | Случайная страница | Обратная связь