Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2011, 21:44   #1
dima-intro
Пользователь
 
Аватар для dima-intro
 
Регистрация: 11.12.2010
Сообщений: 43
Вопрос Вывод цветного текста на экран

есть код

Код:
.model	small
.stack	256
.data
Laba2        db 0c9h, 28 dup (0cdh), 0bbh,0ah,0dh,\
             0bah, 11 dup (' '), 'LAB#2', 12 dup (' '), 0bah,0ah,0dh,\
             0bah, 3 dup (' '), 'for', ' ', 'System-Programming', 3 dup (' '), 0bah,0ah,0dh,\
             0cch, 28 dup (0cdh), 0b9h, 0ah,0dh,\
             0bah, 8 dup (' '), 'group-KI-104', 8 dup (' '),0bah,0ah,0dh,\
             0bah, 2 dup (' '), 'student:*********-******', 2 dup (' '),0bah,0ah,0dh,\
             0c8h, 28 dup (0cdh), 0bch,0ah,0dh,'$'
.code
begin:
mov ax,@data
mov ds,ax

mov ah,09h
mov dx, offset Laba2
int 21h

mov ah, 4ch
int 21h
end begin
подскажите как вывести эту табличку на экран в разных цветах (например текст одним цветом, а саму таблицу другим)
заранее спасибо.

Последний раз редактировалось rpy3uH; 16.10.2011 в 22:42.
dima-intro вне форума Ответить с цитированием
Старый 16.10.2011, 22:05   #2
Ang15
Пользователь
 
Регистрация: 02.07.2011
Сообщений: 38
По умолчанию

1. Выбрать видеорежим (текстовый, графический).
2. Перейти в него (использование программного прерывания).
3. Настроить видеопамять как отдельный сегмент (его начальный адрес прописать к какой-нибудь регистр es).
4. Составить процедуру, которая бы записывала в видеобуфер отдельный символ как два байта (для текстового режима) (байт кода и атрибутов; байт атрибутов будет отвечать за цвет символа и его фон).
Ang15 вне форума Ответить с цитированием
Старый 16.10.2011, 22:28   #3
dima-intro
Пользователь
 
Аватар для dima-intro
 
Регистрация: 11.12.2010
Сообщений: 43
По умолчанию

спасибо,Ang15

еще вопрос - как найти начальный адрес?

Последний раз редактировалось rpy3uH; 16.10.2011 в 22:43.
dima-intro вне форума Ответить с цитированием
Старый 16.10.2011, 22:44   #4
Ang15
Пользователь
 
Регистрация: 02.07.2011
Сообщений: 38
По умолчанию

Для каждого видеорежима свой. Например, если брать видеорежим 03h, то начальный адрес его буфера - 0B8000h. В реальном режиме перед тем, как загрузить в es его следует разделить на 10h.
Ang15 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод на экран текста из файла Snegovic Помощь студентам 4 16.09.2010 08:08
Создание цветного окна на экране Pecherni Общие вопросы C/C++ 0 11.04.2009 20:20
Вывод русского текста на экран Ildarets Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 25.01.2009 18:08
си++ вывод текста на экран Sjava Помощь студентам 1 25.12.2008 20:03