
- •4) Mov esi,6*2 ; 2 байта – размер элементов
- •Индексная адресация со смещением — режим адресации, при котором полный адрес формируется из двух компонентов:
- •Базовая индексная адресация со смещением — режим адресации, при котором полный адрес формируется максимум из трех компонентов:
- •Xor ecx,ecx ;обнуление есx
- •Структуры
- •Организовать обращение к элементам структуры.
- •Цепочечные команды или команды обработки строк символов
- •Организация обращения к элементам записи.
- •Работа с записями
- •1) Для выделения элемента записи необходимо:
- •2) Чтобы поместить измененный элемент на его место в запись необходимо:
- •3. В конце работы файл следует закрыть.
- •4. Признаком ошибки при выполнении функции dos является взведенный флаг с (переноса).
- •2. Создание файла с усечением существующего до нулевой длины.
- •LpFileName — указатель на asciiz-строку с именем (путем) открываемого или создаваемого файла;
- •DwDesiredAccess — тип доступа к файлу:
- •3) Создать и открыть новый файл
- •4) Чтение из файла или устройства
- •5) Переместить указатель чтения/записи
- •1) HFile – хэндл того файла, в котором перемещается указатель.
- •7) Запись в файл или устройство
- •8) Закрыть файл
- •9) Удаление файла
- •Функция 01h – ожидание ввода символа с эхопечатью
- •Функция 0ah – получение строки символов
- •1) Создать каталог
- •2) Удалить каталог
- •5) Определить текущий каталог
- •Перечень функций прерывания 21h, работающих с файлами, которые имеют длинные имена и соответствующие функции api Win32.
- •Перечислим функции api Win32, имеющие отношение к работе с файловой системой.
- •1) В Win32 получить время создания, время последнего доступа и время последней модификации файла можно с помощью функции GetFileTime.
- •3) В Win32 имеется функция GetFileInformationByHandle, с помощью которой можно получить все атрибуты файла:
- •Основные графические режимы vga
- •Int 10h ; считываем символ и его атрибут
- •Стандартные цветовые палитры в режимах 4,5,6.
- •02H/03h - Чтение/запись секторов.
- •Прямое программирование видеобуфера в текстовом режиме
Основные графические режимы vga
Номер режима |
Разрешение |
Число цветов |
11h |
640x480 |
2 |
12h |
640x480 |
16 |
13h |
320x200 |
256 |
Стандартные графические режимы SVGA могут быть 4-, 8-, 15-, 16-, 24- и 32-битными.
1) 4-битные режимы (16 цветов):
VGA
012h: 640x480 (64 Кб)
VESA VBE 1.0
102h: 800x600 (256 Кб)
104h: 1024x768 (192 Кб)
106h: 1280x1024 (768 Кб)
Каждый пиксель описывается одним битом, для вывода цветного изображения требуется программирование видеоадаптера на уровне портов ввода-вывода.
2) 8-битные режимы (256 цветов):
VGA
013h: 320x200 (64 Кб)
VBE 1.0
100h: 640x400 (256 Кб)
101h: 640x480 (320 Кб)
103h: 800x600 (512 Кб)
105h: 1024x768 (768 Кб)
107h: 1280x1024 (1,3 Мб)
VBE 2.0
120h: 1600x1200 (1,9 Мб)
Каждый пиксель описывается ровно одним байтом. Значение байта — нoмер цвета из палитры, значения цветов которой можно изменять, например вызывая подфункцию 09 видеофункции 4Fh.
3) 15-битные режимы (32 К цветов):
VBE 1.2
10Dh: 320x200 (128 Кб)
110h: 640x480 (768 Кб)
113h: 800x600 (1 Мб)
116h: 1024x768 (1,5 Мб)
119h: 1280x1024 (2,5 Мб)
VBE 2.0
121h: 1600x1200 (3,8 Мб)
Каждый пиксель описывается ровно одним словом (16 бит), в котором биты 0 – 4 содержат значение синей компоненты цвета, биты 5 – 9 — зеленой, а биты 10 – 14 — красной. Бит 15 не используется.
4) 16-битные режимы (64 К цветов):
VBE 1.2
10Eh: 320x200 (128 Кб)
111h: 640x480 (768 Кб)
114h: 800x600 (1 Мб)
117h: 1024x768 (1,5 Мб)
11Ah: 1280x1024 (2,5 Мб)
VBE 2.0
121h: 1600x1200 (3,8 Мб)
Так же как и в 15-битных режимах, каждый пиксель описывается ровно одним словом. Обычно биты 0 – 4 (5 бит) содержат значение синей компоненты, биты 5 – 10 (6 бит) — зеленой, а биты 11 – 15 (5 бит) — красной.
5) 24-битные и 32-битные режимы (16 М цветов):
VBE 1.2
10Fh: 320x200 (192 Кб)
112h: 640x480 (1 Мб)
115h: 800x600 (1,4 Мб)
118h: 1024x768 (2,3 Мб)
11Bh: 1280x1024 (3,7 Мб)
VBE 2.0
122h: 1600x1200 (7,7 Мб)
Основные функции BIOS при работе с графикой прерывания 10h
01h - Установить характеристики курсора.
С помощью этой функции вы можете установить размер и форму курсора, сделать курсор мигающим или убрать его совсем.
На входе: AH = 01h - изменение размеров курсора;
CH = верхняя граница курсора:
D3-D0 верхняя граница курсора
D5-D4 00b - обычный курсор
01b - невидимый курсор
10b - мигающий курсор
11b - быстро мигающий курсор
D7-D6 не используются;
CL = нижняя граница курсора (0-31).
На выходе: Не используются.
02h - Установить положение курсора.
Эта функция позволяет управлять расположением курсора на экране, в частности, один из способов убрать курсор - расположить его за пределами экрана, например, на несуществующей 26 строке.
На входе: AH = 02h - установка позиции курсора;
BH = номер страницы видеопамяти;
DH = номер строки (0-24);
DL = номер столбца (0-79).
На выходе: Не используются.
mov ah,2 ; запрос на установку курсора
mov dh,8 ; номер строки - 8
mov dl,12 ; номер столбца - 12
mov bh,0 ; номер страницы
int 10H
03h - Получить положение курсора.
Программа может узнать в любое время, где расположен курсор. Это может потребоваться ей, например, для того, чтобы переместить курсор в следующую позицию (вправо, вверх, вниз и т. д.)
На входе: AH = 03h - определение размеров и координат
курсора
BH = номер страницы видеопамяти.
На выходе: CH = верхняя граница курсора;
CL = нижняя граница курсора;
DH = позиция текущей строки курсора;
DL = позиция текущего столбца курсора.
04h - Получить положение светового пера.
Световое перо используется относительно редко, однако если оно есть, то функция 04h позволит вам работать с этим устройством.
05h - Выбрать активную страницу дисплейной памяти.
Компьютер хранит, как правило, не один отображаемый образ экрана, а несколько. Для этого видеопамять (память для хранения видеоизображения, находится на плате видеоконтроллера) разбивается на страницы. Отображается только активная страница видеопамяти.
На входе: AH = 05h - выбор активной страницы
видеопамяти;
AL = номер страницы видеопамяти, которая
станет активной.
На выходе: Не используются.
06h, 07h - Прокрутка (скроллинг) окна вверх/вниз.
С помощью этих функций можно переместить выбранную область окна на заданное число строк вверх или вниз. Освободившееся место будет заполняться пустыми строками. Одно из применений этой функции - полная очистка экрана.
08h, 09h - Прочитать/записать символ и атрибут.
С помощью этих функций можно прочитать или записать символ и его атрибут. При записи символа можно задать число повторений.
Атрибуты символов: мерцание, цвет фона, интенсивность, цвет символов.
На входе: AH = 08h - чтение символа и его атрибутов;
BH = номер страницы видеопамяти.
На выходе: AL = ASCII-код символа;
AH = байт атрибутов символа.
Пример: считать символ и его атрибут из текущей позиции курсора на странице page:
...
mov ah,8 ; читаем символ и его атрибуты
mov bh,page ; выбираем страницу видеопамяти page