Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Assembler (Уч_пос_Лаб_Ч1).doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.43 Mб
Скачать

Параметры Esc-последовательности

Код

Назначение

0

Нормальное изображение (чёрные символы на белом фоне)

1

Выделение яркостью

4

Включено подчёркивание

5

Выделение мерцанием

7

Инверсное изображение (белые символы на чёрном фоне)

8

Всё включено, символы невидимы (скрытый текст)

Код символа

Назначение

Код фона

Назначение

30

Чёрные

40

Чёрный фон

31

Красные

41

Красный фон

32

Зелёные

42

Зелёный фон

33

Жёлтые

43

Жёлтый фон

34

Синие

44

Синий фон

35

Фиолетовые

45

Фиолетовый фон

36

Бирюзовые (голубые)

46

Бирюзовый (голубой) фон

37

Белые

47

Белый фон

Листинг 2.5. Демонстрация_1 Esc-последовательности

Ideal

Model small

Stack 256

Dataseg

;Сообщение, оконтуренное рамкой

mes db 27,'[2J',27,'[5;31;46m' ;Очистка экрана и задание цвета (красные на

;бирюзовом фоне)

db 27,'[12;30H',0C9h,22 dup (0CDh),0BBh ;Позиционирование (строка, столбец) и

;символы

db 27,'[13;30H',0BAh,'ESC-последовательности',0BAh ;Позиционирование и символы

db 27,'[14;30H',0C8h,22 dup (0CDh),0BCh ;Позиционирование и символы

db 27,'[0m',27,'[01;01H','$' ;Отмена цвета и позиционирование

Codeseg

Start: mov ax,@data ;Установка в ds адреса

mov ds,ax ;сегмента данных

mov ah,09h ;Функция вывода

mov dx,offset mes

int 21h

Exit: mov ax,04C00h ;Функция DOS 4Сh:выход из программы

int 21h ;Вызов DOS. Останов

End Start ;Конец программы/точка входа

Как известно, кроме обычных символов и других знаков, имеющихся на клавиатуре, на экран можно выводить символы псевдографики, которым соответствуют коды от 0B0h до 0DFh. В приведённой выше программе для формирования двойной рамки используются следующие коды:

0BAh ╗ 0BBh ╝ 0BCh ╚ 0C8h ╔ 0C9h ═ 0CDh

Можно предложить и другой способ использования ESC-последовательностей при выводе на экран сообщений функцией 09h int 21h с использованием атрибутов цвета для фона и символов. Данный способ иллюстрируется следующим фрагментом программы.

Листинг 2.6. Демонстрация_2 Esc-последовательности

Macro outstr message ;макрос вывода строки

mov ah,09h

mov dx,offset message

int 21h

Endm outstr

DATASEG

mes1 db 'Афанасьев В.А.',10,13,'$'

mes2 db '*** Кафедра ВТ ***$'

red_blue db 27,'[31;44m$' ;Задание атрибутов цвета "Красный по синему"

;для изображения текста на экране, выводимого с помощью функции 09h int 21h

green_white db 27,'[32;47m$' ;"Зелёный по белому"

cancel db 27,'[0m$' ;Восстановление атрибутов цвета по умолчанию

CODESEG

Start: mov ax,@data ;Установка в ds адреса

mov ds,ax ;сегмента данных

outstr red_blue ;Установка атрибутов цвета

outstr mes1 ;Вывод сообщения mes1

outstr green_white ;Установка атрибутов цвета

outstr mes2 ;Вывод сообщения mes2

outstr cancel ;Восстановление атрибутов цвета

....

Назначения атрибутов цвета будут действовать на все последующие команды вывода (включая функции BIOS прерывания 10h) до тех пор, пока не будут сделаны другие назначения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]