Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Абель.docx
Скачиваний:
13
Добавлен:
26.11.2018
Размер:
569.84 Кб
Скачать

Int 21h ;Вызов dos

При указании неправильного номера дисковода операция возвращает в

регистре AX шест.FFFF, иначе следующие значения:

в AX число секторов на кластер,

в BX число доступных кластеров,

в CX число байтов на сектор,

в DX общее число кластеров на дисководе.

В версии DOS младше 2.0 для получения информации о дисковой памяти

следует использовать функцию шест.1B (получить информацию из таблицы FAT).

Удаление файла: шест.41

-------------------------

Для удаления файлов из программы (за исключением файлов с атрибутом

"только чтение") используется функция шест.41. При этом в регистре DX

необходимо загрузить ASCIIZ строку, содержащую путь доступа и имя файла:

MOV AH,41H ;Запрос на удаление

LEA DX,PATHNAM ;ASCIIZ-строка

Int 21h ;Вызов dos

В случае ошибки в регистре AX возвращается код 02 (файл не найден)

или 05 (нет доступа).

Управление файловым указателем: шест.42

-----------------------------------------

Система DOS имеет файловый указатель, который при открытии файла

устанавливается в 0 и увеличивается на 1 при последовательных операциях

записи или считывания. Для доступа к любым записям внутри файла можно

менять файловый указатель с помощью функции шест.42, получая в результате

прямой доступ к записям файла.

Для установки файлового указателя необходимо поместить в регистр BX

файловый номер и в регистровую пару CX:DX требуемое смещение в байтах. Для

смещений до 65.535 в регистре CX устанавливается 0, а в DX - смещение. В

регистре AL должен быть установлен один из кодов, который определяет точку

отсчета смещения:

0 - смещение от начала файла.

1 - смещение текущего значения файлового указателя, которое может

быть в любом месте, включая начало файла.

2 - смещение от конца файла. Размер файла (и следовательно смещение

до конца файла) можно определить, установив регистровую пару

CX:DX в 0 и используя код 2 в регистре AL.

В следующем примере устанавливается файловый указатель на смещение

1024 Байта от начала файла:

MOV AH,42H ;Установка указателя

MOV AL,00 ; от начала файла

LEA BX,HANDLE1 ;Установка файлового номера

MOV CX,00 ;

MOV DX,1024 ;Смещение 1024 байта

Int 21h ;Вызов dos

JC error

Правильно выполненная операция сбрасывает флаг CF и возвращает новый

указатель в регистровой паре DX:AX. Неправильная операция устанавливает

флаг CF в 1 и возвращает в регистре AX код 01 (ошибка кода отсчета) или 06

(ошибка файлового номера).

Проверка или изменение атрибута: шест.43

------------------------------------------

Для проверки или изменения файлового атрибута в оглавлении диска

используется функция шест.43H. При этом в регистре DX должен быть

установлен адрес ASCIIZ строки. Для проверки атрибута регистр AL должен

содержать 00. Для изменения атрибута регистр AL должен содержать 01, а

регистр CX - новое значение атрибута. Следующий пример устанавливает

нормальный атрибут:

MOV AH,43H ;Запрос на установку

MOV AL,01 ; нормального

MOV CX,00 ; атрибута

LEA DX,PATHNM2 ;ASCIIZ-строка