- •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, с помощью которой можно получить все атрибуты файла:
- •Обзор прерываний bios
- •Int 10h, функция 0Dh. Чтение пиксела.
- •02H/03h - Чтение/запись секторов.
- •Прямое программирование видеобуфера в текстовом режиме
- •Текстовый режим. Доступ к памяти
- •Организация памяти в графическом режиме 12h
- •Вычисление адреса Пикселя по экранным координатам.
- •Рисование с помощью регистров Графического Контроллера
- •Установка цвета отдельных пикселей.
- •Прокрутка областей экрана, копирование областей экрана.
- •Чтение отдельных пикселей с экрана.
- •Рисование с помощью регистров Указателя Последовательности
- •Установка цвета ячейки пикселей.
Цепочечные команды или команды обработки строк символов
Цепочечные команды позволяют проводить действия над блоками памяти, представляющими собой последовательности элементов следующего размера:
-
8 бит, то есть байт;
-
16 бит, то есть слово;
-
32 бита, то есть двойное слово.
Особенность всех цепочечных команд в том, что они, кроме обработки текущего элемента цепочки, осуществляют ещё и автоматическое продвижение к следующему элементу данной цепочки.
В системе команд микропроцессора имеются семь операций примитивов обработки цепочек:
1) пересылка цепочки:
– movs адрес приёмника, адрес_источника
-
movsb
-
movsw
-
movsd
2) сравнение цепочек:
– cmps адрес_приёмника, адрес_источника
– cmpsb
-
cmpsw
-
cmpsd
3) сканирование цепочки:
– scas адрес_приёмника
– scasb
-
scasw
-
scasd
4) загрузка элемента из цепочки:
– lods адрес_источника
– lodsb
-
lodsw
-
lodsd
5) сохранение элемента в цепочке:
– stos адрес_приёмника
-
stosb
-
stows
-
stosd
6) получение єлементов цепочки из порта ввода-вывода:
– ins адрес_приёмника, номер_порта
– insb
– insw
– insd
-
вывод элементов цепочки в порт ввода-вывода:
– outs номер_порта, адрес_источника
– outsbs
– outws
– outds
Направление продвижения в цепочке определяется значением флага направления df в регистре eflags/flags.
– если df=0, то значения индексных регистров esi/si и edi/di будут автоматически увеличиваться (операция инкремента) цепочечными командами, то есть обработка будет осуществляться в направлении возрастания адресов;
– если df=1, то значения индексных регистров esi/si и edi/di будут автоматически уменьшаться (операция декремента) цепочечными командами, то есть обработка будет идти в направлении убывания адресов.
Состоянием флага df можно управлять с помощью двух команд, не имеющих операндов:
– cld – очистить флаг направления. Команда сбрасывает флаг направления df в 0.
– std – установить флаг направления. Команда устанавливает флаг направления df в 1.
Цепочечные команды часто используются совместно с префиксами повторения:
– rep;
-
repe или repz;
-
repne или repnz.
Данные префиксы могут анализировать состояние регистра ecx/cx или флаг нуля zf.
1) Префикс rep заставляет цепочечные команды выполняться, пока содержимое в есх/сх не станет равным 0. При этом цепочечная команда, перед которой стоит префикс, автоматически уменьшает содержимое есх/сх на единицу.
2) Префиксы repe или repz заставляют цепочечную команду выполняться до тех пор, пока содержимое есх/сх равно 0 или флаг zf равен 1. Как только одно из этих условий нарушается, управление передаётся следующей команде программы.
3) Префиксы repne или repnz заставляют цепочечную команду циклически выполняться пока содержимое есх/сх не равно 0 или флаг zf равен 0. При невыполнении одного из этих условий работа команды прекращается.
______________________________________________________
Самостоятельно на практике:
Создать массив структур mas_sotr2 worker 7 dup (<>). Инициализировать массив структур в программе. На экран выдать сообщение в окне MessageBoxA. Сообщение должно содержать все данные структуры для самого старшего сотрудника.
Записи
Запись — структурный тип данных, состоящий из фиксированного числа элементов длиной от одного до нескольких бит.
Суммарный размер записи определяется суммой размеров ее полей и не может быть более 8, 16 или 32 бит. Если суммарный размер записи меньше указанных значений, то все поля записи «прижимаются» к младшим разрядам.
Использование записей в программе организуется в три этапа: