Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 在指定的目录程序集中查找文件_File_Assembly_X86_Dos - Fatal编程技术网

File 在指定的目录程序集中查找文件

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

我正在尝试制作一个程序来查找小于一定大小的文件。程序需要搜索的文件夹在开头指定。我用的是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:
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
是一个参数。你为什么要这么做?它在一个真正的项目中是无用的,如果你在学习,它什么也教不了你。