File 在指定的目录程序集中查找文件
我正在尝试制作一个程序来查找小于一定大小的文件。程序需要搜索的文件夹在开头指定。我用的是DOSBOX、TASM和TLINK。 以下是一些相关代码:File 在指定的目录程序集中查找文件,file,assembly,x86,dos,File,Assembly,X86,Dos,我正在尝试制作一个程序来查找小于一定大小的文件。程序需要搜索的文件夹在开头指定。我用的是DOSBOX、TASM和TLINK。 以下是一些相关代码: mov ax, @data mov ds, ax PrepDTA: mov dx,OFFSET DTA ; DS:DX points to DTA mov ah,1AH ; function 1Ah - set DTA int 21h ; call DOS service WorkWithFiles: FindFirs
mov ax, @data
mov ds, ax
PrepDTA:
mov dx,OFFSET DTA ; DS:DX points to DTA
mov ah,1AH ; function 1Ah - set DTA
int 21h ; call DOS service
WorkWithFiles:
FindFirst:
mov cx,3fh
mov si, offset DTA
mov ah, 4eh
mov dx, offset Folder
int 21h
cmp al, 0FFh
je NeraFailu
jmp FileSize
FindNext:
mov si, offset DTA
mov ah, 4fh
mov cx,3fh
mov dx, offset Folder
int 21h
jc NoMoreFiles
jmp FileSize
FileSize:
mov si, offset DTA+26
mov bh, 4
因此,当我运行程序时,
FindFirst
之后的DTA
被设置为非存在,在FindNext
上,它跳到NoMoreFiles
。在我指定的目录中有2个文件,但无论我指定哪个目录DTA
都是相同的。最后我尝试添加*.
,更改属性中文件的安全性,但没有任何效果。有什么想法吗?您需要在21/4e之前重置al
al
是一个参数。你为什么要这么做?它在一个真正的项目中是无用的,如果你在学习,它什么也教不了你。