Программа создает таблицу цветов в текстовом режиме. Комприлировать fasm-ом
org 100h
mov ax, 3
int 10h ; установка видеорежима
mov ax, 1003h
mov bl, 0 ; 0 - яркие цвета, 1 - мигание
int 10h
push 0b800h
pop es ; es = сегмент видеопамяти
mov di, 0 ; di = начало сегмента
cld ; прямое направление для строковых операций
mov bx, hex_numbers ; устанавливаем таблицу для команды xlat
mov ah, 0 ; ah будет хранить текущий атрибут
next_color:
mov al, ' '
stosw ; выводим пробел
mov al, ah
shr al, 4; ; в al остаются старшие 4 бита
xlatb ; преобразуем их в шестнадцатиричную цифру
stosw ; выводим первую цифру
mov al, ah
and al, 0xf; ; в al младшие 4 бита
xlatb ; преобразуем их в шестнадцатиричную цифру
stosw ; выводим вторую цифру
mov al, ' '
stosw ; выводим пробел
inc ah ; следующий атрибут
test ah, 0xf ; если вывели 16 атрибутов
jnz @f ; заполняем строку до конца
dec ah ; пробелами
mov cx, 80 - (16 * 4) ; сколько символов заполнять
rep stosw
inc ah
@@:
test ah, ah ; если ah=0, то перебрали все атрибуты
jnz next_color ; повторяем для всех возможных атрибутов
mov ah, 0 ; ждем клавишу
int 16h
ret ; выходим
hex_numbers db '0123456789ABCDEF' ; шестнадцатиричные цифры