Сборка Masm x86 16 битный текстовый режим изменения цвета - PullRequest
0 голосов
/ 18 января 2019
mov  byte PTR es:[bx], '*'                    
mov  byte PTR es:[bx+1], 00000111B 

Почему это означает 00000111B - синий на черном фоне

Как я могу заменить желтый текст на синем фоне?

1 Ответ

0 голосов
/ 21 января 2019

Почему это означает 00000111B - синий на черном фоне

Это не так! Если регистры цвета / палитры не были изменены, атрибут байта 00000111b (07h) означает Белый OnBlack.

В байте атрибута цвет переднего плана (FGC) сохраняется в младших 4 битах, а цвет фона (BGC) сохраняется в старших 4 битах.

    FGC
    vvvv
00000111b
^^^^
 BGC

Как я могу заменить желтый текст на синем фоне?

Зная, как хранятся цвета и глядя на таблицу ниже, мы получаем
00011110b (1Eh) для атрибута YellowOnBlue.

0000b Black
0001b Blue
0010b Green
0011b Cyan
0100b Red
0101b Magenta
0110b Brown
0111b White
1000b Gray
1001b LightBlue
1010b LightGreen
1011b LightCyan
1100b LightRed
1101b LightMagenta
1110b Yellow
1111b BrightWhite
...