Вопрос или проблема
Я создал простой проект для моего задания, и единственное, что осталось, это изменить цвет ASCII-арта лягушки (который называется “Frog”) на зеленый, но я не знаю, как это сделать. Надеюсь, кто-нибудь ответит… Это мой код, кстати:
фрагмент кода
начало:
mov ax, data
mov ds, ax
mov es, ax
; Отобразить имя
mov dx, offset Jas
mov ah, 09h
int 21h
; Отобразить лягушку
mov dx, offset Frog
mov ah, 09h
int 21h
mov ax, 4C00h
int 21h
конец кода
конец начала
На самом деле, я пытался искать, но это не работает в моем проекте
Ответ или решение
Чтобы изменить цвет вашего ASCII-арта в программе emu8086, необходимо использовать BIOS-прерывания, а именно прерывание для изменения цветового фона и текста. В вашем случае, если вы хотите сделать текст зеленым, вам нужно установить соответствующий цвет в регистре AL перед выводом ASCII-арта.
В BIOS цветовая палитра представлена с помощью кодов. Например, для зеленого текста можно использовать код цвета 02h (зеленый текст на черном фоне). Следующий пример кода дает представление о том, как можно изменить цвет вашего ASCII-арта на зеленый.
Обновленный код:
code segment
start:
mov ax, data
mov ds, ax
mov es, ax
; Установить цвет текста на зеленый (код 02h)
mov ah, 0Bh ; Функция - установка текста с цветом
mov bh, 0 ; Страница дисплея (обычно 0)
mov bl, 02h ; Цвет текста (зеленый)
; Отображение имени
mov dx, offset Jas
mov ah, 09h
int 21h
; Отображение лягушки
mov dx, offset Frog
mov ah, 09h
int 21h
; Завершение программы
mov ax, 4C00h
int 21h
code ends
end start
Объяснение изменений:
-
Коды цветов: В данном примере используется цвет текста 02h, который представляет собой зеленый цвет. Обратите внимание, что фон остается черным, так как мы не меняем фон в этом коде.
-
Настройка цвета: Мы добавили установку цвета текста перед выводом вашего ASCII-арта с помощью прерывания BIOS
int 10h
. -
Функция прерывания: Мы использовали функцию
0Bh
для установки цвета. Убедитесь, что после этой команды вызываете вывод вашего текста, чтобы убедиться, что текст отображается в нужном цвете.
Заключение:
Преобразования цвета в ASCII-арте в emu8086 возможно через взаимодействие с прерываниями BIOS и указание нужных кодов цветов. Убедитесь, что код компилируется и запускается без ошибок, и вы сможете увидеть изменения. Если у вас есть другие вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться.