Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Коды цветов стандартной палитры





Код Цвет Код Цвет
0h Чёрный 8h Серый
1h Синий 9h Голубой
2h Зелёный 0Ah Салатовый
3h Бирюзовый 0Bh Светло-бирюзовый
4h Красный 0Ch Розовый
5h Фиолетовый 0Dh Светло-фиолетовый
6h Коричневый 0Eh Жёлтый
7h Белый 0Fh Ярко- белый

 

Двухбайтовые коды символов записываются в видеобуфер в том порядке, в каком они должны появиться на экране: первые 80*2 байт соответствуют первой строке экрана, вторые 80*2 байт – второй и т.д. При этом переход на следующую строку экрана определяется не управляющими кодами возврата каретки и перевода строки, а размещением кода в другом месте видеобуфера. Для того чтобы из программы получить доступ к видеобуферу, надо занести в один из сегментных регистров данных сегментный адрес видеобуфера. После этого, задавая те или иные смещения, можно выполнить запись в любые места (ячейки) видеобуфера. Вычислить смещение ячейки в координатах " строка-столбец" (row, clm) можно так:

VidAdd r= (row*160) + (clm*2)

При большом объёме выводимых данных, информационный кадр формируется заранее в буфере пользователя, располагающегося в сегменте данных программы.

Листинг 3.1. Запись строки в видеобуфер 0- страницы.

; Очистка экрана

; Настроим сегментный регистр ES на страницу 0 видеобуфера, а ds на сегмент данных

mov ax, 0B800h

mov es, ax

; Перешлём в видеобуфер строку символов, настроив соответствующим образом

; регистры si, di и cx

mov si, offset msg; Смещение источника

mov di, 160*12+36*2; Смещение приёмника (36 столбец 13 -ой строки),

mov cx, msglen; Число пересылаемых байт

cld; Просмотр вперёд

rep movsb;)*; Переслать строку символов с атрибутами в видеобуфер

; Остановим программу для наблюдения результата (иначе после завершения программы

; запрос DOS на ввод команды может затереть выведенную информацию)

mov ah, 01h

int 21h

; Поля данных в сегменте данных программы. Символы и атрибуты: 0B0h – cветло-

; бирюзовый по чёрному, 0E4h –красный по жёлтому

msg db ‘*’, 0B0h, ’T’, 0E4h, ’E’, 0E4, ’S’, 0E4, ’T’, 0E4, ’*’, 0B0h

msglen = $-msg

В данном фрагменте программы символьные коды выводимого сообщения перемежаются с их атрибутами. Такой способ формирования полей данных, предназначенных для прямой записи в видеопамять, становится громоздким, однако его можно существенно упростить, если выводимые символы имеют одни и те же атрибуты. Так, если мы хотим осуществить вывод символов текста из сегмента данных с единственным атрибутом 0E4h, то нам нужно просто заменить одну командную строку, отмеченную в выше приведённом фрагменте символом " *)", на три. При этом задание строки данных приобретёт привычный для нас вид.

mov si, offset msg; Смещение источника

mov di, 160*12+36*2; Смещение приёмника (36 столбец 13 -ой строки),

mov cx, msglen; Число пересылаемых байт

cld; Просмотр вперёд

mov ah, 0E4h; Атрибут выводимых символов 0E4h – красный по жёлтому

cycle: lodsb; Загрузка в al очередного символа (al ← ds: si)

stosw; Выгрузка “символ + атрибут” из ах в видеобуфер (ax→ es: di)

loop cycle; Повторить msglen раз

; Поля данных в сегменте данных программы.

msg db ‘*TEST*’

msglen = $-msg

Изложенный выше способ вывода текста форматируется длиной видеостроки без учёта символов переноса или отступов от левой границы. Внесение элементарных правил текстового редактора в процедуру вывода сильно усложнит программу. В этом случае для вывода сообщений целесообразно использовать функции BIOS.

Разработка структуры программ, осуществляющих просмотр произвольных видеостраниц, на которые предварительно записана информация способом прямого программирования видеобуфера, удобно производить с применением функции 05h int 10h BIOS (п. 8.2.3.2).







Дата добавления: 2014-11-10; просмотров: 651. Нарушение авторских прав; Мы поможем в написании вашей работы!




Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

Седалищно-прямокишечная ямка Седалищно-прямокишечная (анальная) ямка, fossa ischiorectalis (ischioanalis) – это парное углубление в области промежности, находящееся по бокам от конечного отдела прямой кишки и седалищных бугров, заполненное жировой клетчаткой, сосудами, нервами и...

Основные структурные физиотерапевтические подразделения Физиотерапевтическое подразделение является одним из структурных подразделений лечебно-профилактического учреждения, которое предназначено для оказания физиотерапевтической помощи...

Почему важны муниципальные выборы? Туристическая фирма оставляет за собой право, в случае причин непреодолимого характера, вносить некоторые изменения в программу тура без уменьшения общего объема и качества услуг, в том числе предоставлять замену отеля на равнозначный...

Объект, субъект, предмет, цели и задачи управления персоналом Социальная система организации делится на две основные подсистемы: управляющую и управляемую...

Законы Генри, Дальтона, Сеченова. Применение этих законов при лечении кессонной болезни, лечении в барокамере и исследовании электролитного состава крови Закон Генри: Количество газа, растворенного при данной температуре в определенном объеме жидкости, при равновесии прямо пропорциональны давлению газа...

Ганглиоблокаторы. Классификация. Механизм действия. Фармакодинамика. Применение.Побочные эфффекты Никотинчувствительные холинорецепторы (н-холинорецепторы) в основном локализованы на постсинаптических мембранах в синапсах скелетной мускулатуры...

Studopedia.info - Студопедия - 2014-2025 год . (0.013 сек.) русская версия | украинская версия