Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
METODIchka4.DOC
Скачиваний:
5
Добавлен:
04.05.2019
Размер:
940.03 Кб
Скачать

Вопросы по теме работы.

1.Назначение таблицы размещения файлов (FAT).

2. Схема получения списка кластеров, отведенных файлу.

3. Какие функции имеет подпрограмма обслуживания прерывания 13Н ?

4. В чем состоит процесс форматирования дискеты?

5. Как защитить дискету от копирования функция­ми BIOS ?

6. Как восстановить удаленный с дискеты файл ?

7. Какова структура записи о файле в корневом каталоге ?

8. Что и как изменяет на дискете команда DELETE ( ERASE ) DOS ?

Приложение а. Функция disk_status

- получает код ошибки в регистре AL

- если произошла ошибка - выводится соответству­ющее сообщение и программа завершается

- если ошибки нет - возвращает управление в вы­звавшую программу

disk_status proc near

push ax ; сохраняем

push сx ; используемые

push dx ; регистры

push di ;

push ds ;

push cs ; устанавливаем в DS

pop ds ; сегмент из CS

cmp al,0 ; ошибки нет ?

je st_ok ; выход из подпрограммы

xor di,di ; смещение в списке кодов

mov cx,8 ; рассматриваем 8 возможных кодов ошибки

st_l: cmp al,cs:fs_kod[di] ;найден код в таблице?

je st_out ; да - вывести сообщение

inc di ; иначе - к следующему коду

loop st_l ;

mov di,8 ; если код не опознан

st_out: mov ax,di ; содержимое DI, умно-

mul cs:fs_len ; женное на длину строки

lea dx,fs ; дает смещение соотв.

add dx,ax ; сообщения в таблице fs

mov ah, 9 ; вывод сообщения

int 21h ;

mov ax,4c00h ; завершение программы

int 21h ;

st_ok: pop ds ;

pop di ; восстанавливаем

pop dx ; сохраненные

pop cx ; регистры

pop ax

ret

fs db 10,13, "Неправильная команда",10,13,"$"

db 10,13,"Не найдена адресная метка",10,13, "$"

db 10,13,"Диск защищен от записи", 10,13, "$"

db 10,13,'Сектор не найден ",10,13,"$'

db 10,13, "Произошла замена дискеты ",10,13,"$'

db 10,13, "Неправильный номер дорожки', 10,13,'$'

db 10,13,'Сбой контроллера ",10,13,"$'

db 10,13,'Сбой при поиске дорожки ",10,13,"$'

db 10,13,'Нераспознанная ошибка ",10,13,"$'

fs_len db 31

fs_kod db 1.2,3,4,6,0ch,20h,40h

disk_status endp

Приложение в. Параметры 360к дискеты.

Дискета имеет две стороны (0-1), по 40 дорожек ( 0-39 ) и по 9 секторов на каждой дорожке ( 1-9 ). Любая дискета содержит загрузочный (BOOT ) сектор, две копии FAT и корневой каталог ( ROOT-DIR ). Для 360К дискеты FAT содержит 2 сектора, корневой каталог - 7 секторов.

Распределение пространства дискеты

Сторона

Сектор

Дорожка

Содержимое

0

0

1

BOOT

0

0

2

FAT1

0

0

3

FAT1

0

0

4

FAT2

0

0

5

FAT2

0

0

6

ROOT-DIR

0

0

7

ROOT-DIR

0

0

8

ROOT-DIR

0

0

9

ROOT-DIR

1

0

1

ROOT-DIR

1

0

2

ROOT-DIR

1

0

3

ROOT-DIR

1

0

4

данные

данные

Первый байт FAT - идентификатор носителя (me­dia ID), два других всегда FFH, FFH. Для 360К дискеты ID=FDH, под каждый кластер выделяется полтора байта (12 бит). Последний кластер файла содержит значение FF8H - FFFH. Плохой кластер отмечается в FAT значением FF7H. Нумерация кластеров с 2. В каждом кластере по 2 сектора. Корневой каталог состоит из 32 байтных записей о файле. Запись имеет следующую структуру: (см. рисунок -->)

0 ..........………………….….….……..... 31

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]