Функция 4eh находит первый файл, соответствующий некоторым атрибутам, которые хранятся в cx
по следующей схеме:
bit 0 = 1 read-only file
bit 1 = 1 hidden file
bit 2 = 1 system file
bit 3 = 1 volume (ignored)
bit 4 = 1 reserved (0) - directory
bit 5 = 1 archive bit
bits 6-15 reserved (0)
ds:dx
должен содержать адрес (с нулевым символом в конце) имени файла (допускаются символы подстановки). Так, например, чтобы перечислить все exes в c: \ имя файла будет c:\*.exe
.
По возвращении, если флаг переноса установлен в 1, файлов не было, в противном случае DTA заполняется следующим образом:
Offset Size in bytes Meaning
0 21 Reserved
21 1 File attributes
22 2 Time last modified
24 2 Date last modified
26 4 Size of file (in bytes)
30 13 File name (ASCIIZ)
Вы можете указать DOS, где вы хотите разместить DTA, с помощью этого простого фрагмента:
mov dx,OFFSET youChoose ; DS:DX points to DTA
mov ah,1AH ; function 1Ah - set DTA
int 21h ; call DOS service