Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
 
Don_Selester
0 / 0 / 0
Регистрация: 28.11.2016
Сообщений: 3
#1

Вывести начальные кластеры всех файлов указанного каталога - Assembler

28.11.2016, 19:25. Просмотров 335. Ответов 4
Метки нет (Все метки)

Помогите, не могу, понять сути задания, и, собственно, как его делать.
Задание: Вывести начальные кластеры всех файлов указанного каталога.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2016, 19:25
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вывести начальные кластеры всех файлов указанного каталога (Assembler):

Вычислить размер произвольного, указанного каталога
Вычислить размер произвольного, указанного каталога нужно под дос на тасм

Вывести на экран размер текущей папки (сумма всех файлов)
Вывести на экран размер текущей папки (сумма всех файлов). помогите...

Вывести в файл содержимое указанного объекта
Разработать ассемблер-программу, выводящую в файл содержимое указанного...

Вывести скрытые файлы каталога на экран
День добрый, товарищи программисты. Нужна программа которая выводит сообщение о...

Вывод списка имен всех файлов из указанного каталога
Написать программу вывода списка имен всех файлов из указанного каталога и...

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

4
alexcoder
1557 / 702 / 145
Регистрация: 03.06.2009
Сообщений: 4,029
Завершенные тесты: 1
30.11.2016, 11:04 #2
Открываете диск, читаете с него файловые структуры, находите нужный каталог. В нем будет список записей, каждая запись описывает один файл: имя, размер, атрибуты, дата.... и начальный кластер FAT вот эти значения и нужно вывести
2
Jin X
❗❗ RTFM 👈
4009 / 1153 / 151
Регистрация: 14.12.2014
Сообщений: 2,297
Записей в блоге: 5
Завершенные тесты: 2
01.12.2016, 20:24 #3
Случайно нашёл интересную функцию, так что всё гораздо проще:
Код
--------D-21440DCX0871-----------------------
INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - GET FIRST CLUSTER
	AX = 440Dh
	CX = 0871h / 4871h
	    (category code 08h for FAT12/16, 48h for FAT32; minor code 71h)
	BX = filename character set (see #01578)
	DS:DX -> ASCIZ pathname for file or directory
Return: CF set on error
	    AX = error code (01h,02h,etc.) (see #01680 at AH=59h/BX=0000h)
	CF clear if successful
	    DX:AX = first cluster number
Note:	this function finds any file or directory regardless of attributes,
	  except that it will not find volume labels
SeeAlso: AX=440Dh"DOS 3.2+",AX=440Dh/CX=086Ch,#01352

(Table 01578)
Values for character set:
 00h	Windows ANSI
 01h	current OEM character set
 02h	Unicode
И возможно вот это ещё пригодится:
Код
--------D-217302-----------------------------
INT 21 - Windows95 - FAT32 - "Get_ExtDPB" - GET EXTENDED DPB
	AX = 7302h
	DL = drive number (00h=default, 01h=A:, etc.)
	ES:DI -> buffer for returned data (see #01786)
	CX = length of buffer (003Fh for Windows95)
	SI = signature (undocumented, must be F1A6h to get device driver
	      address and next-DBP pointer) (see #01787)
Return: CF clear if successful
	    ES:DI buffer filled
	CF set on error
	    AX = error code
	       0018h bad buffer length
SeeAlso: AX=7303h,AX=7304h,AH=1Fh,AH=32h

Format of Get_ExtDPB data buffer:
Offset	Size	Description	(Table 01786)
 00h	WORD	(call) length of following data (003Dh)
 02h 61 BYTEs	(ret) drive parameter block (DPB) (see #01787)
 
Format of Extended Drive Parameter Block:
Offset	Size	Description	(Table 01787)
 00h 24 BYTEs	standard DOS 4+ DPB
 18h	BYTE	"dpb_flags" (undocumented)
		FFh force media check
 19h	DWORD	pointer to next DPB (see note)
 1Dh	WORD	cluster at which to start search for free space when writing,
		usually the last cluster allocated
 1Fh	WORD	number of free clusters on drive, FFFFh = unknown
 21h	WORD	high word of free cluster count
 23h	WORD	active FAT/mirroring
		bit 7: do not mirror active FAT to inactive FATs
		bits 6-4: reserved (0)
		bits 3-0: the 0-based FAT number of the active FAT
		    (only meaningful if mirroring disabled)		
 25h	WORD	sector number of file system information sector, or
		  FFFFh for none (see also #01788)
 27h	WORD	sector number of backup boot sector, or FFFFh for none
 29h	DWORD	first sector number of the first cluster
 2Dh	DWORD	maximum cluster number
 31h	DWORD	number of sectors occupied by FAT
 35h	DWORD	cluster number of start of root directory
 39h	DWORD	cluster number at which to start searching for free space
Notes:	except for offset 18h, all of the first 33 bytes are identical to
	  the standard DOS 4-6 DPB
	unless the proper value is given in SI on entry to "Get_ExtDBP", the
	  next-DPB pointer and device driver address are set to 0000h:0000h
SeeAlso: #01786,#01395 at AH=32h,#01664

Format of File System Information structure:
Offset	Size	Description	(Table 01788)
 00h	DWORD	signature 61417272h
 04h	DWORD	number of free clusters (FFFFFFFFh if unknown)
 08h	DWORD	most recently allocated cluster
 0Ch 12 BYTEs	reserved
SeeAlso: #01787
2
ФедосеевПавел
Модератор
3423 / 1920 / 815
Регистрация: 01.02.2015
Сообщений: 6,457
01.12.2016, 22:45 #4
А эти функции реализованы в DOSBox или FreeDOS?
1
Jin X
❗❗ RTFM 👈
4009 / 1153 / 151
Регистрация: 14.12.2014
Сообщений: 2,297
Записей в блоге: 5
Завершенные тесты: 2
01.12.2016, 23:18 #5
ФедосеевПавел, не знаю, надо пробовать...
1
01.12.2016, 23:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2016, 23:18
Привет! Вот еще темы с решениями:

Копирование из текущего каталога всех файлов с расширением .txt, кроме одного указанного, в указанный каталог
Очень нужна помощь в написании бат файла или даже в исправлении. ниже задание и...

Для всех файлов из указанного каталога создать подкаталоги с именем, равным дате создания файла...
Написать и отладить пакетный файл, который для всех файлов из указанного...

Вывести имена всех файлов во всех подкаталогах данного каталога
Задание: собрать в один файл имена всех файлов во всех подкаталогах данного...

Вывести имена всех файлов из текущего каталога
При нажатии на левую кнопку мыши вывести имена всех файлов из текущего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru