русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Если файл уже существует, функция 3Ch все равно открывает его, присваивая ему нулевую длину. Чтобы этого не произошло, следует пользоваться функцией 5Bh.


Дата добавления: 2013-12-23; просмотров: 933; Нарушение авторских прав


Функция DOS 3Ch — Создать файл

Создание файла с усечением существующего до нулевой длины.

Запрещений нет

Чтение запрещено

Запись запрещена

Все операции запрещены

Режим совместимости (остальные процессы также должны открывать этот файл в режиме совместимости)

Чтение и запись

Запись

Чтение

биты 2 – 3: зарезервированы (0)

биты 6 – 4: режим доступа для других процессов

бит 7: файл не наследуется порождаемыми процессами

DS:DX = адрес ASCIZ-строки с полным именем файла

CL = маска атрибутов файлов

Вывод:

CF = 0 и АХ = идентификатор файла, если не произошла ошибка.

CF = 1 и АХ = код ошибки (02h — файл не найден, 03h — путь не найден, 04h — слишком много открытых файлов, 05h — доступ запрещен, 0Ch — неправильный режим доступа)

 

Пример:

LEA DX,PATH ; сегменте данных путь: С:\ПУТЬ\ИМЯФАЙЛА, 0;

; если краткое имя, то берется текущий каталог

MOV AL,2 ; открыть для чтения и записи, если 0 для чтения,

; 1 – для записи

MOV АН,3DН ; функция открытия файла

INT 21H ; открываем файл

JC ERRO ; ошибка, если поднят флаг СF, в АХ код ошибки,

; если ошибки нет, то в АХ описатель файла для

; будущей работы следует его сохранить

При этом обязательно будет ошибка, если такого файла не существует (в указанном каталоге).


Ввод:

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, если доступ запрещен

 

Функция 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




<== предыдущая лекция | следующая лекция ==>
Функция DOS 3Dh — Открыть существующий файл | Лекция №8. Массивы, структуры, записи, объединения


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.