Функции работы с экраном средствами DOS. (2 Билет)

Регистры МП i 80x86 (1 Билет)

Регистры общего назначения - EAX, EBX, ECX, EDX 32 битные регистры младшая часть которых называется AX, BX, CX, DX они 16 битные, каждый регистр делится на 2 части: младшие AL, BL, CL, DL, старшие AH, BH, CH, DH Регистры общего назначения используются для операций с данными, такими, как сравнение, математические операции или запись данных в память. Регистр СХ(ECX) чаще всего используется как счетчик в циклах.

Регистры сегментов - это CS, DS, ES, FS, GS, SS. Эти регистры 16-ти битные, и содержат в себе первую половину адреса "оффсет:сегмент". Адреса я вам поясню в следующем уроке. Регистры оффсета - EIP, ESP, EBP, ESI, EDI. Эти регистры 32-х битные, нижняя половина которых доступна как регистры IP, SP, BP, SI, DI. EIP - указатель команд, и содержит указатель на линию кода, которая будет исполняться следующей. То есть полный адрес на следующую исполняемую линию кода будет CS:IP (CS:EIP).
Регистр ESP указывает на адрес вершины стека. Регистр ЕВР содержит адрес, начиная с которого в стек вносится или забирается информация (или "глубина" стека). Параметры функций имеют положительный сдвиг относительно ЕВР, локальные переменные - отрицательный сдвиг, а полный адрес этого участка памяти будет SS:EBP. Регистр ESI - адрес источника, и содержит адрес начала блока информации для операции "переместить блок" (полный адрес DS:SI), а регистр EDI- адрес назначения в этой операции (полный адрес ES:EDI). А кое-что забыл, я не объяснил вам, что такое стек. Представьте, что одна подпрограмма вызывает другую, вызываемая подпрограмма завершила свое выполнение, теперь ей надо передать управление подпрограмме, которая её вызвала, как раз адрес следующей команды после вызова подпрограммы находится на верхушке стека.

 

Функции работы с экраном средствами DOS. (2 Билет)

Вывод на экран средствами DOS

DOS предоставляет следующие возможности вывода текстовой информации на экран:

- обращение к экрану как файлу, с помощью прерывания DOS INT 21h с функцией 40h;

- использование группы функций DOS из диапазона 1…Ch (прерывание INT 21h), реализующих посимвольный вывод, а так же вывод строк.

Вывод на экран средствами файловой системы (INT 21h, функция 40h) осуществляется точно так же, как и запись в файл.

Второй способ вывода на экран текстовой информации реализуется с помощью трех функций прерывания int 21h:

02h - вывод символа;

06h -прямой ввод-вывод;

09h- вывод строки.

2. Прерывание int 10h. Очистка экрана. Байт-атрибут.(1 Билет)

ПРЕРЫВАНИЕ INT 10H обеспечивает управление всем экраном. В регистре AH устанавливается код, определяющий функцию прерывания. Команда сохраняет содержимое регистров BX, CX, DX, SI и BP. Ниже описывается все возможные функции.

AH=00: Установка режима. Данная функция позволяет переключать цветной монитор в текстовый или графический режим. При установке происходит очистка экрана.

AH=01: Установка размера курсора.

AH=02: Установка позиции курсора.

AH=03: Чтение текущего положения курсора.

AH=04: Чтение положения светового пера.

AH=05: Выбор активной страницы. AH=06: Прокрутка экрана вверх.

AH=07: Прокрутка экрана вниз.

AH=08: Чтение атрибута/символа в текущей позиции курсора.

AH=09: Вывод атрибута/символа в текущую позицию курсора.

AH=0A: Вывод символа в текущую позицию курсора. Единственная разница между функциями 0A и 09 состоит в том, что функция 0A не устанавливает атрибут.

AH=0E: Вывод в режиме телетайпа. Данная функция позволяет использовать монитор, как простой терминал.

AH=0F: Получение текущего видео режима.

AH=13: Вывод символьной строки (только для AT).

БАЙТ АТРИБУТОВ, как для монохромного, так и для графического дисплея в текстовом (не графическом) режиме определяет характеристики каждого отображаемого символа. Байт-атрибут имеет следующие 8 бит:

Атрибут: BL R G B I R G B
Номер битов: 7 6 5 4 3 2 1 0
Буквы RGB представляют битовые позиции, управляющие красным (red),
зеленым (green) и синим (blue) лучем в цветном мониторе. Бит 7 (BL)
устанавливает мигание, а бит 3 (I) - уровень яркости.