- •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
- •Вычисление адреса Пикселя по экранным координатам.
- •Рисование с помощью регистров Графического Контроллера
- •Установка цвета отдельных пикселей.
- •Прокрутка областей экрана, копирование областей экрана.
- •Чтение отдельных пикселей с экрана.
- •Рисование с помощью регистров Указателя Последовательности
- •Установка цвета ячейки пикселей.
2. Создание файла с усечением существующего до нулевой длины.
Функция DOS 3Ch — Создать файл
Ввод:
Ah = 3Ch
СХ = атрибут файла
Бит 7: файл можно открывать разным процессам в Novell Netware
бит 6: не используется
бит 5: архивный бит (1, если файл не сохранялся)
бит 4: каталог (должен быть 0 для функции 3Ch)
бит 3: метка тома (игнорируется функцией 3Ch)
бит 2: системный файл
бит 1: скрытый файл
бит 0: файл только для чтения
Вывод:
DS:DX = адрес ASCIZ-строки с полным именем файла (ASCIZ-строка ASCII-символов, оканчивающаяся нулем).
CF = 0 и АХ = идентификатор файла, если не произошла ошибка
CF = 1 и АХ = 03h, если путь не найден
CF = 1 и АХ = 04h, если слишком много открытых файлов
CF = 1 и АХ = 05h, если доступ запрещен
Если файл уже существует, функция 3Ch все равно открывает его, присваивая ему нулевую длину. Чтобы этого не произошло, следует пользоваться функцией 5Bh.
Функция 5ВН создаёт файл, но если файл уже существует, содержимое его не уничтожается, а взводится флаг ошибки СF.
Пример:
LEA DX,PATH ; в сегменте данных путь: С:\ПУТЬ\ИМЯФАЙЛА, 0
; если краткое имя, то берется текущий каталог
MOV СХ,0 ; создать только для чтения, если 0 - для чтения, 1 –
; для записи
MOV АН,3СН ; функция создания файла
INT 21h ; открываем файл
JC ERRO ; ошибка, если поднят флаг СF, в АХ код ошибки,
; если ошибки нет, то в АХ описатель файла, для
; будущей работы следует его сохранить
Пример 10.1. Создание файла и запись в него строки 'Файл номер 1'.
; В сегменте данных
.data
bufout db 'Файл номер 1' ; Данные для записи в файл
buflen=$-bufout ; строка длиной в 12 байт
handle dw 0 ; Ячейка для дескриптора
fname db 'MYFILE.txt',0 ;Имя файла в формате ASCIIZ
;В сегменте команд создадим файл
.code
mov АН,3Ch ; Функция создания файла
mov CX, 0 ; Без атрибутов
mov DX, offset fname ; Адрес имени файла
int 21h
mov handle,AX ; Сохраним дескриптор файла
; Запишем в файл данные (в данном
; примере – текстовую строку)
mov AH,40h ; Функция записи в файл
mov BX,handle ; Дескриптор
mov CX,buflen ; Число записываемых байтов
mov DX,offset bufout ; Адрес данных
int 21h
; Закроем файл
mov АН,3Eh ; Функция закрытия файла
mov BX,handle ; Дескриптор
int 2lh
Функция WinAPI для создания файла
HANDLE CreateFile(
CLPCTSTR lpFileName, (1)
DWORD dwDesiredAccess, (2)
DWORD dwShareMode, (3)
LPSECURITY_ATTRIBUTES IpSecurityAttributes, (4)
DWORD dwCreationDistribution, (5)
DWORD dwFlagsAndAttributes, (6)
HANDLE hTemplateFile); (7)