【发布时间】:2013-01-16 05:59:24
【问题描述】:
机器问题是在不同目录中查找并显示文件名相似的文件,使用汇编语言..使用tasm&tlink或emulator 8086编译的控制台程序...
这是我尝试过的代码,它只显示文件列表。我的问题是我不知道如何让它只显示那些具有相似文件名的文件..关于我的问题的任何想法都将不胜感激。谢谢..
.model small, c
.stack
.data
file_spec db "*.*", 0
DTA db 128h dup(0)
buffer db 30 dup(0)
.code
main proc
mov ax, @Data
mov ds, ax
mov dx,offset DTA
mov ah,1Ah
int 21h ; set DTA location
mov dx,offset file_spec
xor cx, cx
mov ah,4Eh
int 21h
jc quit
print_name:
lea si, DTA + 30
next_char:
lodsb
int 29h
test al, al
jnz next_char
mov al, 13
int 29h
mov al, 10
int 29h
mov dx, offset file_spec
xor cx, cx
mov ah, 4fh
int 21h
jnc print_name
quit:
mov ax, 4c00h
int 21h
main endp
end main
这是我尝试过的另一个源代码,这次我使用了 int 21h 、 4eh 、 4fh (在 MS Dos 中) .. 请有人帮我增强此代码以仅显示具有相似文件名的文件?任何形式的帮助将不胜感激。提前谢谢..
.model small, c
.stack
.data
file_spec db "*.*", 0
DTA db 128h dup(0)
.code
main proc
mov ax, @Data
mov ds, ax
mov dx,offset DTA
mov ah,1Ah
int 21h
mov dx,offset file_spec
xor cx, cx
mov ah,4Eh
int 21h
jc quit
print_name:
lea si, DTA + 1eh
next_char:
lodsb
int 29h
test al, al
jnz next_char
mov al, 13
int 29h
mov al, 10
int 29h
mov dx, offset file_spec
xor cx, cx
mov ah, 4fh
int 21h
jnc print_name
quit:
mov ax, 4c00h
int 21h
main endp
end main
【问题讨论】:
-
帖子缺少问题部分和您遇到问题的示例代码...否则不适合雇人为您做这件事。
-
gcc -S... 或者干脆放弃课程;)。通过汇编进行文件系统交互是痛苦的。这样做没有合理的理由 - 高级语言的存在是有原因的。
-
您甚至没有提到将使用哪个操作系统。假设是 DOS,你应该看看 INT 21H 列表:ctyme.com/intr/int-21.htm 例如,AH=4EH (FindFirst) 和 AH=4FH (FindNext)。
-
我真的很感谢任何可以帮助我解决这个机器问题的人......我承认我在汇编语言编程方面没有扎实的基础,这就是为什么我很难实现这个 MP .我确实希望有人可以帮助我...感谢上帝保佑!
标签: assembly