ПРОГРАМА: ВВЕДЕННЯ І ВИВЕДЕННЯ ІМЕН



EXE-програма, приведена на рис. 8.2, запитує введення імені, потім відображає в середині екрана введене ім'я і включає звуковий сигнал. Програма продовжує запитувати і відображати імена, поки користувач не натисне Return у відповідь на черговий запит. Розглянемо ситуацію, коли користувач ввів ім'я TED SMITH:

1. Розділимо довжину 09 на 2 одержимо 4, і

2. Віднімемо це значення від 40, одержимо 36

Команда SHR у процедурі E10CENT зрушує довжину 09 на oдин біт вправо, виконуючи таким чином розподіл на 2. Значення біт 00001001 переходить у 00000100. Команда NEG змінює знак +4 На -4. Команда ADD додає значення 40, одержуючи у регістрі DL номер початкового стовпця - 36. При установці курсору на рядок 12 і стовпець 36 ім'я буде виведене на екран у наступному виді:

Рядок 12: TED SMITH

Стовпець: 36 40

У процедурі E10CODE існує команда, що встановлює cимвол звукового сигналу (07) в області введення безпосередньо після імені:

 

MOV NAMEFLD[BX],07

 

Попередня команда встановлює в регістрі BX значення довжини, і команда MOV потім, комбінуючи довжину в регістрі BX і адресу поля NAMEFLD, пересилає код 07. Наприклад, при довжині імені 05 код 07 буде поміщений за адресою NAMEFLD+05 (заміщаючи значення коду Return). Остання команда в процедурі E10CODE встановлює обмежувач "$" після коду 07. Таким чином, коли процедура F10CENT виводить на екран ім'я, то генеpується також звуковий сигнал.

Уведення єдиного символу Return

При введенні імені, що перевищує по довжині максимальне значення, зазначене в списку параметрів, виникає звуковий сигнал і система oчікує уведення тільки символу Return. Якщо узагалі не вводити ім'я, а тільки натиснути клавішу Return, то система прийме її і yстановить у списку параметрів нульову довжину в такий спосіб: Список параметрів (тичина.): :14:00:0D:. Для позначення кінця імен, що вводяться, користувач може просто натиснути Return у відповідь на черговий запит на введення імені. Прогpамма визначає кінець уведення по нульовій довжині.

Заміна символу Return

Значення, що вводяться, можна використовувати для самих різних цілей, наприклад: для печатки повідомлень, збереження в таблиці, запису на диск. При цьому, можливо, з'явиться необхідність заміни символу Return (тичина.0D) в області NAMEFLD на символ пробілу (тичина.20). Поле NAMELEN містить дійсну або відносну довжину адреси коду 0D. Якщо, наприклад, NAMELEN містить довжину 05, то адреса коду 0D дорівнює NAMEFLD+5. Можна занести цю довжину в регістр BX для індексної адресації в поле NAMEFLD:

 

MOV BH,00 ;Установити в регістрі BX

MOV BL,NAMELEN ; значення 0005

MOV NAMEFLD[BX],20H ;Замінити 0D на пробіл

 

Третя команда MOV заносить символ пробілу (тичина.20) по адресі, визначенній першим операндом: адреса поля NAMEFLD плюс вміст регістра BX, тобто NAMEFLD+5.

 

Керування кольором

 

БАЙТ АТРИБУТІВ

Байт атрибутів, як для монохромного, так і для графічного дисплея в текстовому (не графічному) режимі визначає характеристики кожного відображуваного символу. Атрибут-байт-атрибут має наступні 8 біт:

Фон Текст

Атрибут: BL R G B I R G B

Номер бітів: 7 6 5 4 3 2 1 0

Букви RGB представляють бітові позиції, керуючі червоним (red), зеленим (green) і синім (blue) променем у кольоровому моніторі. Біт 7 (BL) установлює миготіння, а біт 3 (I) - рівень яскравості. На монохроматичних моніторах текст висвічується зеленим чи жовтогарячим на темному фоні, хоча в даному розділі таке зображення називається чорно-білим (BW). Для модифікації атрибутів можна комбінувати біти наступним чином:

Ефект виділення Фон Текст

RGB RGB

Невідображуваний (чорний по чорному) 000 000

Підкреслення (не для кольору) 000 001

Нормальний (білий по чорному) 000 111

Інвертований (чорний по білому) 111 000

Кольорові монітори не забезпечують підкреслення; замість цього установка біт підкреслення вибирає синій колір для тексту і виходить відображення синім по чорному. Нижче приведено деякі атрибути, засновані на комбінації бітів фону, тексту, миготіння і виділення яскравістю:

Двійковий Тичина. Ефект виділення

код код

0000 0000 00 Невідображуваний (для паролів)

0000 0111 07 Білий по чорному (нормальний)

1000 0111 87 Білий по чорному (миготіння)

0000 1111 0F Білий по чорному (яскравий)

0111 0000 70 Чорний по білому (інвертований)

1111 0000 F0 Чорний по білому (инверт. миготливий)

Ці атрибути підходять для текстового режиму, як для монохромних, так і для кольорових дисплеїв. У наступній главі буде показано, як вибирати конкретні кольори. Для генерації атрибуту можна використовувати команду INT 10H. При цьому регістр BL повинен містити значення байта-атрибута, а регістр AH один з наступних кодів: 06 (прокручування нагору), 07 (прокручування вниз), 08 (уведення чи атрибута символу), 09 (виведення атрибута чи символу). Якщо програма встановила деякий атрибут, то він залишається таким, доки програма його не змінить. Якщо встановити значення байта атрибута рівним тичина.00, то символ взагалі не буде відображений.

 


Лекція 10

Переривання 10h


Дата добавления: 2019-07-15; просмотров: 227; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!