Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > Помогите задать нужный цвет в консоле


Автор: Bart_Simpson 17.6.2007, 18:56
Короче ребята вот такая проблема нужно сделать цвет букв жёлтый вот код там есть константа для синиего и зеоеного как их смещать правильно чтобы жёлтый вышел а то синий получается и всё

.code
_start:
    call AllocConsole                                     ; назначает для данного процесса консоль
    push    STD_OUTPUT_HANDLE        ; назначаем конслоь для вывода и её дескриптор
    call    GetStdHandle               ; возвращает идентификатор STDOUT в eax
    mov    ebx,eax               ; храним его в ebx
            mov eax,BACKGROUND_WHITE      ; цвет фона белый  
            or eax,FOREGROUND_GREEN  
            or  eax,FOREGROUND_BLUE      ; цвет текста 
    push    eax                   ; заносим дескриптор котрый хранился в eax
    push    ebx
    call    SetConsoleTextAttribute    ; вызываем ф-цию

Автор: JAPH 17.6.2007, 19:51
Из синего и зелёного получается голубой. Попробуйте смешать красный и зелёный smile

Автор: Mikl__ 18.6.2007, 03:40
Bart_Simpson
FOREGROUND_BLUE                      equ 1h
FOREGROUND_GREEN                     equ 2h
FOREGROUND_RED                       equ 4h
FOREGROUND_INTENSITY                 equ 8h
BACKGROUND_BLUE                      equ 10h
BACKGROUND_GREEN                     equ 20h
BACKGROUND_RED                       equ 40h
BACKGROUND_INTENSITY                 equ 80h
Желтый это 8+2+4=0Eh
коричневый=4+2
черный=0
синий=1
ярко синий=9 и т.д всего 16 комбинаций 

Автор: JAPH 18.6.2007, 18:59
Да, кстати, вместо
Код

mov eax,BACKGROUND_WHITE    
or  eax,FOREGROUND_GREEN  
or  eax,FOREGROUND_BLUE     

лучше
Код

mov  eax, BACKGROUND_WHITE or FOREGROUND_RED or FOREGROUND_GREEN

или даже
Код

mov  eax, 0FEh

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)