SlideShare a Scribd company logo
1 of 11
Работа с каталогами диска
для П ЭВМ типа IBM PC
в операционной системе MS
DOS.
Общие принципы
Уровни:
BIOS (нижний).
Обращение идёт непосредственно к драйверу диска.
Файловая система DOS не используется и требуемая
информация отыскивается не по имени файла, а по
номерам поверхности, цилиндра, сектора
DOS (верхний)
Реализуется с помощью прерывания DOS int 21h.
Программист работает не с драйвером диска, а с файловой
системой DOS, получая возможность оперировать с
понятиями логический диск, каталог, файл.
• При работе с диском рекомендуется по возможности
использовать функции DOS. Только в редких случаях,
например при нестандартном форматировании дискеты,
целесообразнее использовать прерывания BIOS.
Применение функций DOS для
работы с каталогами диска.
1. Организация файлов: древовидная иерархическая
структура.
Корень - корневой каталог, который расположен в
определённых секторах диска.
Каждая запись корневого каталога указывает на файлы или
другие подкаталоги.
Подкаталоги – это обычные файлы, которые хранятся в
любом месте диска.
Записи подкаталогов содержат ссылки на файлы и
подкаталоги более низкого уровня. Кроме этого,
подкаталоги содержат две записи, содержащие в поле
имени '.' и '..' и указывающих на сам подкаталог и на
подкаталог - родитель .Если в каталоге есть запись,
указывающая на подкаталог более низкого уровня, то в
этой записи в байте атрибута будет установлен бит 4,
а поле длины файла равно 0.
Метод дескриптора файла.
Файл в программе указывается с помощью ASCIIZ-строки, т.е. строки,
состоящей из символов ASCII и заканчивающейся кодом 0. Файл
должен обозначаться в виде, принятом в MS DOS.
Пример.
file db 'A:  SYSTEM  MY  data.txt', 0 ; имя файла
DIRICT db 'C:  SYS  DAT ', 0 ; ASCIIZ-строка для каталога.
File1 db ‘my.dat’,0 ; файл в текущем каталоге.
«джокеры» – символы заполнители в имени файла
«?» заменяет конкретный символ,
«*» – целое имя.
Примеры.
*.COM – все файлы типа .COM;
PROG?.PAS – все файлы типа PROG1. PAS, PROG2.PAS, PROGA.PAS и
т.п.
В программе, для того, чтобы прочитать (записать) данные в файл
(каталог), в регистры DS:DX необходимо поместить адрес ASCIIZ-
строки с именем файла (каталога).
Основные операции над
каталогами
• Создание подкаталога (корневой
каталог создаётся автоматически при
форматировании диска)
• Удаление подкаталога
• Чтение корневого каталога или
подкаталога
Создание подкаталога
Функция 39h прерывания int 21h.
DS:DX указывает на ASCIIZ-строку с именем каталога и пути к нему
В случае ошибки CF=1 и AX содержит код ошибки
Создать подкаталог невозможно, если
• родительский каталог является корневым и он переполнен;
• неправильно указан путь к каталогу;
• каталог с таким же именем уже существует.
Пример.
…
lea dx, name_file
mov ah, 39h
int 21h
jс error
…
Удаление подкаталога
Функция 3Аh DOS прерывания int 21h.
DS:DX указывает на ASCII-строку с обозначением
удаляемого подкаталога. При ошибке CF=1 и AX
содержит код ошибки.
Операция невозможна, если:
• удаляемый подкаталог является текущим;
• удаляемый подкаталог содержит файлы;
• имя каталога задано неправильно.
Пример.
…
mov ah, 3ah
lea dx, file-name
int 21h
jc error
Чтение корневого каталога или
подкаталога
1.Используются две функции: 4eh и 4fh прерывания int 21h.
4eh - позволяет найти первое имя файла в каталоге
4fh – позволяет найти все последующие имена
файлов.
2. Содержимое регистров:
DS:DX – должны содержать указатель на ASCII-строку с
именем файла.
Строка может содержать «джокеры».
Например, для получения списка всех файлов
каталога B:SYSMY ASCIIZ- строка должна
иметь вид
DB file 'B: SYS  MY *.* ', 0.
СХ - атрибут файла (0 – обычный).
3. Перед выполнением функции 4eh с помощью функции 1Ah
должен быть установлен буфер передачи данного диска
DTA, в который будет помещено имя первого найденного
файла.
Содержимое регистров для функции 1ah:
DS:DX –указатель на область памяти, куда будет помещено
найденное имя (буфер DTA). Если 1ah не используется, то
по умолчанию DTA длиной 128 байт устанавливается в
PSP программы по смещению 0080h.
4. Если функция 4eh находит файл, то информация об этом
файле помещается в буфер DTA, в том числе по смещению
30 начинается полное имя найденного файла и его
расширение в виде ASCIIZ-строки. В случае ошибки CF=1
и в AX – код ошибки (02 – не найден файл, 18 – конец
поиска).
5. Для того, чтобы получить следующий файл каталога
можно использовать функцию 4Fh (после успешного
выполнения 4eh). Между функциями 4eh и 4fh область
DTA не должна меняться. DS:DX адресует ту же ASCIIZ-
строку, что и 4eh. Результат поиска возвращается в DTA.
Если файлов больше нет, то AX=18 и CF=1.
Пример.
Печать списка файлов каталога.
…
files db 'A:SYSMY*.* ', 0
DTA db 256 DUP(?)
……………..
; установить DTA
mov ah,1ah
lea dx, dta
int 21h
; найти первый файл каталога
lea dx, files
mov ah, 4eh
mov cx, 0 ; обычные файлы
int 21h
jc error
; выводим имя файла
NEXT: lea bx, dta
аdd bx, 30 ; смещение для имени файла
Next_ch: mov dl, [bx] ; взять символ
CMP dl, 0 ; конец ASCII-строки?
JE END_N
MOV ah, 2 ; вывод символа
int 21h
inc bx ; bx=bx+1
JMP Next_ch
END_N: mov ah, 2
mov dl, 13 ; код <Enter>
int 21h
mov ah,2
mov dl,10 ; код <LF>
int 21h
; ищем следующий файл
lea dx, files
mov ah, 4fh
int 21h
Jc finish
JMP next
………
Error:
……..
finish:

More Related Content

Similar to НуП_Лекция 7. Работа с каталогами диска.ppt

файлы и файловые структуры
файлы и файловые структурыфайлы и файловые структуры
файлы и файловые структурыAnastasiya1234
 
файлы и файловые структуры
файлы и файловые структурыфайлы и файловые структуры
файлы и файловые структурыazharkova951
 
Fajlovye sistemy
Fajlovye sistemyFajlovye sistemy
Fajlovye sistemy1nlp
 
05 хранение информации
05 хранение информации05 хранение информации
05 хранение информацииSergey Lomakin
 
Linux files, file systems, block devices.
Linux files, file systems, block devices.Linux files, file systems, block devices.
Linux files, file systems, block devices.Vikentsi Lapa
 
структура данных на магнитных дисках
структура данных на магнитных дискахструктура данных на магнитных дисках
структура данных на магнитных дискахmasik22
 
Файлы и файловые структуры
Файлы и файловые структурыФайлы и файловые структуры
Файлы и файловые структурыkvlar
 
Анализ и оценка систем адресации данных в современных ЭВМ
Анализ и оценка систем адресации данных в современных ЭВМАнализ и оценка систем адресации данных в современных ЭВМ
Анализ и оценка систем адресации данных в современных ЭВМSergey Gerasimov
 
файлы и файловая система
файлы и файловая системафайлы и файловая система
файлы и файловая системаsviridovane
 
File system7 (1)
File system7 (1)File system7 (1)
File system7 (1)VitusKK
 
Презентация на тему: Файлы и файловая система
Презентация на тему: Файлы и файловая системаПрезентация на тему: Файлы и файловая система
Презентация на тему: Файлы и файловая система2berkas
 
презентация файлы и папки
презентация файлы и папкипрезентация файлы и папки
презентация файлы и папкиANSevrukova
 

Similar to НуП_Лекция 7. Работа с каталогами диска.ppt (20)

файлы и файловые структуры
файлы и файловые структурыфайлы и файловые структуры
файлы и файловые структуры
 
файлы и файловые структуры
файлы и файловые структурыфайлы и файловые структуры
файлы и файловые структуры
 
Команды Ms dos
Команды Ms dosКоманды Ms dos
Команды Ms dos
 
файлова система
файлова системафайлова система
файлова система
 
Sistema
SistemaSistema
Sistema
 
Fajlovye sistemy
Fajlovye sistemyFajlovye sistemy
Fajlovye sistemy
 
05 хранение информации
05 хранение информации05 хранение информации
05 хранение информации
 
Linux files, file systems, block devices.
Linux files, file systems, block devices.Linux files, file systems, block devices.
Linux files, file systems, block devices.
 
структура данных на магнитных дисках
структура данных на магнитных дискахструктура данных на магнитных дисках
структура данных на магнитных дисках
 
Файлы и файловые структуры
Файлы и файловые структурыФайлы и файловые структуры
Файлы и файловые структуры
 
Анализ и оценка систем адресации данных в современных ЭВМ
Анализ и оценка систем адресации данных в современных ЭВМАнализ и оценка систем адресации данных в современных ЭВМ
Анализ и оценка систем адресации данных в современных ЭВМ
 
файлы и файловая система
файлы и файловая системафайлы и файловая система
файлы и файловая система
 
ЛР 3.docx
ЛР 3.docxЛР 3.docx
ЛР 3.docx
 
Administrarea DSpace
Administrarea DSpaceAdministrarea DSpace
Administrarea DSpace
 
File system7 (1)
File system7 (1)File system7 (1)
File system7 (1)
 
Файл
ФайлФайл
Файл
 
Презентация на тему: Файлы и файловая система
Презентация на тему: Файлы и файловая системаПрезентация на тему: Файлы и файловая система
Презентация на тему: Файлы и файловая система
 
презентация файлы и папки
презентация файлы и папкипрезентация файлы и папки
презентация файлы и папки
 
Berezin
BerezinBerezin
Berezin
 
File system7
File system7File system7
File system7
 

More from dinarium2016

НуП_Лекция 5. Управление видеосистемой.ppt
НуП_Лекция 5. Управление видеосистемой.pptНуП_Лекция 5. Управление видеосистемой.ppt
НуП_Лекция 5. Управление видеосистемой.pptdinarium2016
 
НуП_Лекция 2. Управление программами.ppt
НуП_Лекция 2. Управление программами.pptНуП_Лекция 2. Управление программами.ppt
НуП_Лекция 2. Управление программами.pptdinarium2016
 
Проектирование_и_архитектура_ПС_2022_L09s.ppt
Проектирование_и_архитектура_ПС_2022_L09s.pptПроектирование_и_архитектура_ПС_2022_L09s.ppt
Проектирование_и_архитектура_ПС_2022_L09s.pptdinarium2016
 
Проектирование_и_архитектура_ПС_2022_L08s.ppt
Проектирование_и_архитектура_ПС_2022_L08s.pptПроектирование_и_архитектура_ПС_2022_L08s.ppt
Проектирование_и_архитектура_ПС_2022_L08s.pptdinarium2016
 
Проектирование_и_архитектура_ПС_2022_L07s.ppt
Проектирование_и_архитектура_ПС_2022_L07s.pptПроектирование_и_архитектура_ПС_2022_L07s.ppt
Проектирование_и_архитектура_ПС_2022_L07s.pptdinarium2016
 
Проектирование_и_архитектура_ПС_2022_L06.ppt
Проектирование_и_архитектура_ПС_2022_L06.pptПроектирование_и_архитектура_ПС_2022_L06.ppt
Проектирование_и_архитектура_ПС_2022_L06.pptdinarium2016
 
Проектирование_и_архитектура_ПС_2022_L05s.ppt
Проектирование_и_архитектура_ПС_2022_L05s.pptПроектирование_и_архитектура_ПС_2022_L05s.ppt
Проектирование_и_архитектура_ПС_2022_L05s.pptdinarium2016
 
Проектирование_и_архитектура_ПС_2022_L04s.ppt
Проектирование_и_архитектура_ПС_2022_L04s.pptПроектирование_и_архитектура_ПС_2022_L04s.ppt
Проектирование_и_архитектура_ПС_2022_L04s.pptdinarium2016
 
Проектирование_и_архитектура_ПС_2022_L03s.ppt
Проектирование_и_архитектура_ПС_2022_L03s.pptПроектирование_и_архитектура_ПС_2022_L03s.ppt
Проектирование_и_архитектура_ПС_2022_L03s.pptdinarium2016
 
Проектирование_и_архитектура_ПС_2022_L02s.ppt
Проектирование_и_архитектура_ПС_2022_L02s.pptПроектирование_и_архитектура_ПС_2022_L02s.ppt
Проектирование_и_архитектура_ПС_2022_L02s.pptdinarium2016
 
Проектирование_и_архитектура_ПС_2022_L01.ppt
Проектирование_и_архитектура_ПС_2022_L01.pptПроектирование_и_архитектура_ПС_2022_L01.ppt
Проектирование_и_архитектура_ПС_2022_L01.pptdinarium2016
 

More from dinarium2016 (11)

НуП_Лекция 5. Управление видеосистемой.ppt
НуП_Лекция 5. Управление видеосистемой.pptНуП_Лекция 5. Управление видеосистемой.ppt
НуП_Лекция 5. Управление видеосистемой.ppt
 
НуП_Лекция 2. Управление программами.ppt
НуП_Лекция 2. Управление программами.pptНуП_Лекция 2. Управление программами.ppt
НуП_Лекция 2. Управление программами.ppt
 
Проектирование_и_архитектура_ПС_2022_L09s.ppt
Проектирование_и_архитектура_ПС_2022_L09s.pptПроектирование_и_архитектура_ПС_2022_L09s.ppt
Проектирование_и_архитектура_ПС_2022_L09s.ppt
 
Проектирование_и_архитектура_ПС_2022_L08s.ppt
Проектирование_и_архитектура_ПС_2022_L08s.pptПроектирование_и_архитектура_ПС_2022_L08s.ppt
Проектирование_и_архитектура_ПС_2022_L08s.ppt
 
Проектирование_и_архитектура_ПС_2022_L07s.ppt
Проектирование_и_архитектура_ПС_2022_L07s.pptПроектирование_и_архитектура_ПС_2022_L07s.ppt
Проектирование_и_архитектура_ПС_2022_L07s.ppt
 
Проектирование_и_архитектура_ПС_2022_L06.ppt
Проектирование_и_архитектура_ПС_2022_L06.pptПроектирование_и_архитектура_ПС_2022_L06.ppt
Проектирование_и_архитектура_ПС_2022_L06.ppt
 
Проектирование_и_архитектура_ПС_2022_L05s.ppt
Проектирование_и_архитектура_ПС_2022_L05s.pptПроектирование_и_архитектура_ПС_2022_L05s.ppt
Проектирование_и_архитектура_ПС_2022_L05s.ppt
 
Проектирование_и_архитектура_ПС_2022_L04s.ppt
Проектирование_и_архитектура_ПС_2022_L04s.pptПроектирование_и_архитектура_ПС_2022_L04s.ppt
Проектирование_и_архитектура_ПС_2022_L04s.ppt
 
Проектирование_и_архитектура_ПС_2022_L03s.ppt
Проектирование_и_архитектура_ПС_2022_L03s.pptПроектирование_и_архитектура_ПС_2022_L03s.ppt
Проектирование_и_архитектура_ПС_2022_L03s.ppt
 
Проектирование_и_архитектура_ПС_2022_L02s.ppt
Проектирование_и_архитектура_ПС_2022_L02s.pptПроектирование_и_архитектура_ПС_2022_L02s.ppt
Проектирование_и_архитектура_ПС_2022_L02s.ppt
 
Проектирование_и_архитектура_ПС_2022_L01.ppt
Проектирование_и_архитектура_ПС_2022_L01.pptПроектирование_и_архитектура_ПС_2022_L01.ppt
Проектирование_и_архитектура_ПС_2022_L01.ppt
 

НуП_Лекция 7. Работа с каталогами диска.ppt

  • 1. Работа с каталогами диска для П ЭВМ типа IBM PC в операционной системе MS DOS.
  • 2. Общие принципы Уровни: BIOS (нижний). Обращение идёт непосредственно к драйверу диска. Файловая система DOS не используется и требуемая информация отыскивается не по имени файла, а по номерам поверхности, цилиндра, сектора DOS (верхний) Реализуется с помощью прерывания DOS int 21h. Программист работает не с драйвером диска, а с файловой системой DOS, получая возможность оперировать с понятиями логический диск, каталог, файл. • При работе с диском рекомендуется по возможности использовать функции DOS. Только в редких случаях, например при нестандартном форматировании дискеты, целесообразнее использовать прерывания BIOS.
  • 3. Применение функций DOS для работы с каталогами диска. 1. Организация файлов: древовидная иерархическая структура. Корень - корневой каталог, который расположен в определённых секторах диска. Каждая запись корневого каталога указывает на файлы или другие подкаталоги. Подкаталоги – это обычные файлы, которые хранятся в любом месте диска. Записи подкаталогов содержат ссылки на файлы и подкаталоги более низкого уровня. Кроме этого, подкаталоги содержат две записи, содержащие в поле имени '.' и '..' и указывающих на сам подкаталог и на подкаталог - родитель .Если в каталоге есть запись, указывающая на подкаталог более низкого уровня, то в этой записи в байте атрибута будет установлен бит 4, а поле длины файла равно 0.
  • 4. Метод дескриптора файла. Файл в программе указывается с помощью ASCIIZ-строки, т.е. строки, состоящей из символов ASCII и заканчивающейся кодом 0. Файл должен обозначаться в виде, принятом в MS DOS. Пример. file db 'A: SYSTEM MY data.txt', 0 ; имя файла DIRICT db 'C: SYS DAT ', 0 ; ASCIIZ-строка для каталога. File1 db ‘my.dat’,0 ; файл в текущем каталоге. «джокеры» – символы заполнители в имени файла «?» заменяет конкретный символ, «*» – целое имя. Примеры. *.COM – все файлы типа .COM; PROG?.PAS – все файлы типа PROG1. PAS, PROG2.PAS, PROGA.PAS и т.п. В программе, для того, чтобы прочитать (записать) данные в файл (каталог), в регистры DS:DX необходимо поместить адрес ASCIIZ- строки с именем файла (каталога).
  • 5. Основные операции над каталогами • Создание подкаталога (корневой каталог создаётся автоматически при форматировании диска) • Удаление подкаталога • Чтение корневого каталога или подкаталога
  • 6. Создание подкаталога Функция 39h прерывания int 21h. DS:DX указывает на ASCIIZ-строку с именем каталога и пути к нему В случае ошибки CF=1 и AX содержит код ошибки Создать подкаталог невозможно, если • родительский каталог является корневым и он переполнен; • неправильно указан путь к каталогу; • каталог с таким же именем уже существует. Пример. … lea dx, name_file mov ah, 39h int 21h jс error …
  • 7. Удаление подкаталога Функция 3Аh DOS прерывания int 21h. DS:DX указывает на ASCII-строку с обозначением удаляемого подкаталога. При ошибке CF=1 и AX содержит код ошибки. Операция невозможна, если: • удаляемый подкаталог является текущим; • удаляемый подкаталог содержит файлы; • имя каталога задано неправильно. Пример. … mov ah, 3ah lea dx, file-name int 21h jc error
  • 8. Чтение корневого каталога или подкаталога 1.Используются две функции: 4eh и 4fh прерывания int 21h. 4eh - позволяет найти первое имя файла в каталоге 4fh – позволяет найти все последующие имена файлов. 2. Содержимое регистров: DS:DX – должны содержать указатель на ASCII-строку с именем файла. Строка может содержать «джокеры». Например, для получения списка всех файлов каталога B:SYSMY ASCIIZ- строка должна иметь вид DB file 'B: SYS MY *.* ', 0. СХ - атрибут файла (0 – обычный).
  • 9. 3. Перед выполнением функции 4eh с помощью функции 1Ah должен быть установлен буфер передачи данного диска DTA, в который будет помещено имя первого найденного файла. Содержимое регистров для функции 1ah: DS:DX –указатель на область памяти, куда будет помещено найденное имя (буфер DTA). Если 1ah не используется, то по умолчанию DTA длиной 128 байт устанавливается в PSP программы по смещению 0080h. 4. Если функция 4eh находит файл, то информация об этом файле помещается в буфер DTA, в том числе по смещению 30 начинается полное имя найденного файла и его расширение в виде ASCIIZ-строки. В случае ошибки CF=1 и в AX – код ошибки (02 – не найден файл, 18 – конец поиска). 5. Для того, чтобы получить следующий файл каталога можно использовать функцию 4Fh (после успешного выполнения 4eh). Между функциями 4eh и 4fh область DTA не должна меняться. DS:DX адресует ту же ASCIIZ- строку, что и 4eh. Результат поиска возвращается в DTA. Если файлов больше нет, то AX=18 и CF=1.
  • 10. Пример. Печать списка файлов каталога. … files db 'A:SYSMY*.* ', 0 DTA db 256 DUP(?) …………….. ; установить DTA mov ah,1ah lea dx, dta int 21h ; найти первый файл каталога lea dx, files mov ah, 4eh mov cx, 0 ; обычные файлы int 21h jc error
  • 11. ; выводим имя файла NEXT: lea bx, dta аdd bx, 30 ; смещение для имени файла Next_ch: mov dl, [bx] ; взять символ CMP dl, 0 ; конец ASCII-строки? JE END_N MOV ah, 2 ; вывод символа int 21h inc bx ; bx=bx+1 JMP Next_ch END_N: mov ah, 2 mov dl, 13 ; код <Enter> int 21h mov ah,2 mov dl,10 ; код <LF> int 21h ; ищем следующий файл lea dx, files mov ah, 4fh int 21h Jc finish JMP next ……… Error: …….. finish: