Как мне написать текст в DOS, настраивая каждый символ на свой цвет?
Зависит от вашего языка программирования.
Вы можете сделать это из командного файла:
В качестве альтернативы уже предложенным методам (1. с использованием ansi.sys или 2. с использованием прерывания 10h), если вы используете CGA-карту или видеокарту в CGA-совместимом текстовом режиме, видеобуфер имеет адрес 0xB800 и вы можете написать прямо там. Каждый символ на экране представлен двумя байтами в буфере, первый представляет собой код символа ASCII, а второй - атрибут видео символа (цвет переднего плана - 4 бита, цвет фона - 3 бита и (ужас) мигающий бит).
ansi.sys
Вы можете использовать функцию 10H Подфункция 10h
ah = 10h al = 10h bx = color register ch = green cl = blue dh = red
Я набираю функцию, потому что она помечена ассемблером, однако вам всегда нужно иметь полную книгу обо всех функциях DOS.
Вы можете использовать Экранирующие коды ANSI , как описано в в этом вопросе , который в основном был тем же вопросом для C ++. Этот ответ должен четко показывать, как использовать escape-коды.
Ваш вопрос не очень понятен, но если вы пытаетесь записать текст в терминале разных цветов, Коды ESC ANSI - это то, на что вы хотите посмотреть.
Вы действительно хотите сделать это в сборке? (согласно вашему тегу)