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

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

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






Код Цвет Код Цвет
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; просмотров: 626. Нарушение авторских прав; Мы поможем в написании вашей работы!



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

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

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Условия приобретения статуса индивидуального предпринимателя. В соответствии с п. 1 ст. 23 ГК РФ гражданин вправе заниматься предпринимательской деятельностью без образования юридического лица с момента государственной регистрации в качестве индивидуального предпринимателя. Каковы же условия такой регистрации и...

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

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

Основные разделы работы участкового врача-педиатра Ведущей фигурой в организации внебольничной помощи детям является участковый врач-педиатр детской городской поликлиники...

Ученые, внесшие большой вклад в развитие науки биологии Краткая история развития биологии. Чарльз Дарвин (1809 -1882)- основной труд « О происхождении видов путем естественного отбора или Сохранение благоприятствующих пород в борьбе за жизнь»...

Этапы трансляции и их характеристика Трансляция (от лат. translatio — перевод) — процесс синтеза белка из аминокислот на матрице информационной (матричной) РНК (иРНК...

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