как изменить цвет моего ASCII-арта в emu8086?

Вопрос или проблема

Я создал простой проект для моего задания, и единственное, что осталось, это изменить цвет 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

Объяснение изменений:

  1. Коды цветов: В данном примере используется цвет текста 02h, который представляет собой зеленый цвет. Обратите внимание, что фон остается черным, так как мы не меняем фон в этом коде.

  2. Настройка цвета: Мы добавили установку цвета текста перед выводом вашего ASCII-арта с помощью прерывания BIOS int 10h.

  3. Функция прерывания: Мы использовали функцию 0Bh для установки цвета. Убедитесь, что после этой команды вызываете вывод вашего текста, чтобы убедиться, что текст отображается в нужном цвете.

Заключение:

Преобразования цвета в ASCII-арте в emu8086 возможно через взаимодействие с прерываниями BIOS и указание нужных кодов цветов. Убедитесь, что код компилируется и запускается без ошибок, и вы сможете увидеть изменения. Если у вас есть другие вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться.

Оцените материал
Добавить комментарий

Капча загружается...